2

我有一个纹理,绑定到 GL_TEXTURE_EXTERNAL_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_TEXTURE_2D 目标? GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, textures[0]);提供错误

4

1 回答 1

3

你不能。纹理目标是纹理对象的基本部分。如果你有一个外部纹理,你不能把它当作一个GL_TEXTURE_2D. 完全没有。

这意味着如果要绑定它,则必须将其绑定为GL_TEXTURE_EXTERNAL_OES纹理。如果您想在采样器中使用它,该采样器必须是类型samplerExternalOES而不是sampler2D(并且您的着色器必须启用适当的扩展)。等等。

于 2016-05-16T16:30:14.433 回答