【发布时间】:2011-09-25 19:33:13
【问题描述】:
如何关闭纹理单元,或者至少在绑定纹理时防止其状态发生变化?我正在使用着色器,所以我认为没有 glDisable 。问题是事件链可能看起来像这样:
Create texture 1 (implies binding it)
Use texture 1 with texture unit 1
Create texture 2 (implies binding it)
Use texture 2 with texture unit 2
,但是考虑到 glActiveTexture 语义,这似乎是不可能的,因为纹理 2 的创建将与纹理单元 1 的状态相关联,因为那是我调用 glActiveTexture 的最后一个单元。即你必须写:
Create texture 1
Create texture 2
Use texture 1 with texture unit 1
Use texture 2 with texture unit 2
我当然已经简化了这个例子,但是创建和绑定纹理可能会偶然影响当前活动的纹理单元,即使您只是将纹理绑定作为创建过程的一部分,这让我有点不舒服.当然,除非我在这里犯了一个错误,并且我可以做些什么来禁用当前 glActiveTexture 中的状态更改?
感谢您在这里给我的任何帮助。
【问题讨论】: