2016-12-14 60 views
0

我需要创建一个OpenGL ES 2.0应用程序使用以下规格的纹理:创建的OpenGL ES纹理具有两个float16值(初级)

  • 每个像素具有两个组件(允许调用它们R和G在片段着色器)。
  • 每个像素分量都是16位浮点数。
  • 这意味着纹理中的每个像素都有4个字节(每个组件2个字节/ 16位)。
  • 片段着色器应该能够将纹理作为2个float16组件进行采样。
  • 所有格式必须在OpenGL ES 2.0上支持并尽可能高效。

相应的glTexImage2D调用如何显示?

问候

回答

0

无论浮点纹理也不浮点渲染目标在OpenGL ES 2.x的支持因此简短的回答是“你不能做你想做的事情”,至少不是在本地。

您可以通过将成对值装入RGBA8纹理或渲染目标(例如,一对RG值是一个值,BA是另一个值,但是您必须打包/解包8位组件,才能使用自己的着色器代码。例如,在延迟渲染G缓冲区中,这是相当常见的解决方案,但在一些低端移动GPU部件上可能相对昂贵(因为它基本上只是开销,而不是有用的渲染)。