从已绑定的纹理中检索像素 - OpenGL

3
在OpenGL中,是否可以仅通过纹理ID从先前创建的纹理中检索像素数组?
1个回答

2
是的。
重新绑定并调用glGetTexImage()
如果您不想操作当前绑定的纹理,可以将其绑定到不同的纹理单元。纹理单元是一个容器,其中包含一个绑定的纹理。您可以将一个纹理绑定到每个纹理单元。OpenGL 2.1 要求实现至少有两个纹理单元。您通常使用的默认纹理单元是单元0。要切换当前纹理单元,请调用glActiveTexture()
glActiveTexture(GL_TEXTURE1);
glBindTexture(texid);
glGetTexImage(...);
glActiveTexture(GL_TEXTURE0); // don't forget to switch it back

在我看来,一个更加一致的“不搞砸”当前绑定纹理的方法是使用glPushAttrib或glGet与GL_TEXTURE_BINDING_2D一起使用,以便在需要时保留它。切换和弄乱单元1与弄乱单元0一样随意... - rotoglup

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接