在 OpenGL ES 1.1 中,我想采用多个纹理 ID 并将它们组合成一个纹理 ID。然后我将来可以多次使用这个生成的纹理。我的纹理源可能是我想要堆叠在一起的透明 PNG。这将是一个巨大的优化,因为我不必每帧渲染多个纹理。
我见过像 wiki Texture_Combiners这样的例子,但结果似乎不是可重用的。
此外,如果有一种方法可以将一个图像与另一个图像掩蔽成可重复使用的纹理,那也将非常有帮助。
在 OpenGL ES 1.1 中,我想采用多个纹理 ID 并将它们组合成一个纹理 ID。然后我将来可以多次使用这个生成的纹理。我的纹理源可能是我想要堆叠在一起的透明 PNG。这将是一个巨大的优化,因为我不必每帧渲染多个纹理。
我见过像 wiki Texture_Combiners这样的例子,但结果似乎不是可重用的。
此外,如果有一种方法可以将一个图像与另一个图像掩蔽成可重复使用的纹理,那也将非常有帮助。
你想要做的是渲染到纹理。如果您正在为 iOS 编写代码,则可以保证OES 帧缓冲区扩展可用,因此您可以使用它。如果您正在为 Android 或其他平台编写,则该扩展可能可用,但不能保证。如果它不可用,您可以重新使用glCopyTexImage2D
.
因此,在第一种情况下,您将创建一个帧缓冲区,其中有一个纹理作为其颜色缓冲区。渲染到那个然后切换到另一个帧缓冲区,你以后可以从纹理中绘制。
在第二个中,您将绘制到您拥有的任何帧缓冲区,然后用于glCopyTexImage2D
从当前颜色缓冲区复制到纹理中。这会慢一些,因为它是一个副本,但它仍然可能比读回渲染的内容然后自己上传要快得多。
ES 2.0 强制包含在帧缓冲区扩展中的函数,因此支持 ES 2.0 的 GPU 很可能支持该扩展。