gpt4 book ai didi

android - OpenGL ES 1.1 将两个纹理合并为一个可重复使用的纹理

转载 作者:行者123 更新时间:2023-11-29 13:59:44 26 4
gpt4 key购买 nike

在 OpenGL ES 1.1 中,我想获取多个纹理 ID 并将它们组合成一个 textureId。然后我就可以在未来多次使用这个生成的纹理。我的纹理源可以是我想要堆叠在一起的透明 PNG。这将是一个巨大的优化,因为我不必每帧都渲染多个纹理。

我看过像 wiki Texture_Combiners 这样的例子,但结果似乎不可重复使用。

此外,如果有一种方法可以将一张图像与另一张图像屏蔽成可重复使用的纹理,那也会非常有帮助。

最佳答案

您要做的是渲染到纹理。如果你正在为 iOS 编写,你可以保证 OES framebuffer extension将可用,因此您可以使用它。如果您正在为 Android 或其他平台编写,则扩展可能可用,但不能保证。如果它不可用,您可以求助于 glCopyTexImage2D .

因此,在第一种情况下,您将创建一个帧缓冲区,它具有一个纹理作为其颜色缓冲区。渲染到那个然后切换到另一个帧缓冲区,您以后可以从纹理中绘制。

在第二个时刻,您将绘制到您拥有的任何帧缓冲区中,然后使用 glCopyTexImage2D 将当前颜色缓冲区复制到纹理中。这会慢一点,因为它是一个副本,但它仍然可能比读回呈现的内容然后自己上传要快得多。

ES 2.0 强制包含在帧缓冲区扩展中的函数,因此支持 ES 2.0 的 GPU 很可能支持该扩展。

关于android - OpenGL ES 1.1 将两个纹理合并为一个可重复使用的纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10051247/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com