[英]OpenGL: Turn off multiple texture units
如何關閉多個紋理單元,因為它們會影響其他渲染部件。 我激活他們:
glActiveTexture(GL_TEXTURE0 + index);
glBindTexture(GL_TEXTURE_2D,
((MaterialSampler2D)specular).texture.getTOB());
shader.setTexture2(index);
有像glDeactivateTexture的東西嗎?
glActiveTexture
不會激活紋理單元。 它只選擇你當前修改的紋理單元(是的,OpenGL的對象狀態管理是可怕的)。 使用glEnable(<texture-target>)
和glDisable(<texture-target>)
激活紋理。 在您的情況下,目標將是GL_TEXTURE_2D
。
所以回答你的問題:使用glActiveTexture(GL_TEXTURE0+i)
選擇紋理單元i
,然后用glDisable(GL_TEXTURE_2D)
禁用它。
請注意,對於着色器,所有這些都是多余的 - 您無法訪問那里的值。
你的意思是像glDisable? http://www.opengl.org/sdk/docs/man/xhtml/glEnable.xml
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.