我有一个纹理,绑定到gl_纹理_外部_oes目标
GLES20.glBindTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, textures[0]);
GLES20.glTexParameteri(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE);
GLES20.glTexParameteri(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE);
GLES20.glTexParameteri(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_NEAREST);
GLES20.glTexParameteri(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_NEAREST);
如何将其重新绑定到gl_纹理_2d目标?
GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, textures[0]);
提供错误 最佳答案
不能。纹理目标是纹理对象的基本部分。如果你有一个external texture,你不能把它当作GL_TEXTURE_2D
。完全。
这意味着如果要绑定它,必须将其绑定为GL_TEXTURE_EXTERNAL_OES
纹理。如果要在采样器中使用它,则该采样器的类型必须为samplerExternalOES
而不是sampler2D
(并且材质球必须启用适当的扩展)。等等。
关于android - 从GL_TEXTURE_EXTERNAL_OES将GLES纹理绑定(bind)到GL_TEXTURE_2D,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37258251/