itu*_*tun 5 opengl textures multitexturing
如何关闭多个纹理单元,因为它们会影响其他渲染部件.我激活他们:
glActiveTexture(GL_TEXTURE0 + index);
glBindTexture(GL_TEXTURE_2D,
((MaterialSampler2D)specular).texture.getTOB());
shader.setTexture2(index);
Run Code Online (Sandbox Code Playgroud)
有没有类似glDeactivateTexture的东西?
ltj*_*jax 10
glActiveTexture不激活纹理单位.它只选择你当前修改的纹理单元(是的,OpenGL的对象状态管理是可怕的).用glEnable(<texture-target>)和激活纹理glDisable(<texture-target>).在你的情况下,目标将是GL_TEXTURE_2D.
因此,要回答你的问题:选择纹理单元i使用glActiveTexture(GL_TEXTURE0+i),然后用禁用它glDisable(GL_TEXTURE_2D).
请注意,对于着色器,所有这些都是多余的 - 您无法访问那里的值.