【发布时间】:2012-04-28 16:32:20
【问题描述】:
我正在使用 WebGL (≈ OpenGL ES 2.0)。目前,我的应用程序使用纹理单元 0 作为每个模型的纹理,并将 1 和 2 作为着色器使用的常量纹理。
为了加载和设置纹理,我这样做了
var texture = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, texture);
gl.texImage2D(...);
gl.texParameteri(...);
但是,这会影响纹理绑定到当前纹理单元的状态。为了避免这个程序,我添加了
gl.activeTexture(gl.TEXTURE0);
到上述代码的开头,这样它只会影响纹理单元 0 的绑定,无论如何在绘制任何几何图形之前都会重置它。
有没有更好的方法,即不涉及碰巧有可用的“临时”纹理单元?是否有针对此状态管理问题的既定最佳实践?
【问题讨论】:
标签: opengl-es-2.0 webgl