【发布时间】:2012-11-12 16:35:35
【问题描述】:
在我目前制作的游戏中,我有两个着色器:
- 一个用于纹理图集上的精灵和
- 一个单独加载的粒子形状纹理。 (我决定将此纹理保留在图集中,因为我的生成器中的粒子是 GL_POINTS)。
目前,我将它们中的每一个绑定到一个单独的纹理单元,然后将每个着色器的统一设置为各自的纹理单元。我发现以这种方式绑定纹理一次是干净的,但想知道是否有任何理由说明这是一种不好的方法。
我已经广泛搜索了有关此方法的任何讨论,但似乎没有多少人这样做,我自己对它的安全性产生了怀疑。
有没有人自己使用过这种方法,或者知道为什么它可能不是一个好主意?
【问题讨论】:
-
我认为这是安全的。您正在做的是: 1. 将 2 个纹理绑定到 2 个纹理单元。形成文档:'使用 glBindTexture 创建的纹理绑定保持活动状态,直到将不同的纹理绑定到同一目标,或者直到使用 glDeleteTextures 删除绑定的纹理。 2.设置着色器的纹理单元。在您再次设置此制服之前,这不会改变。 AFAIK 统一值存储在程序对象中。
标签: iphone ios optimization opengl-es textures