ARCore绑定纹理与GL_TEXTURE_2D不兼容

问题描述:

我试图将ARCore与我的自定义3D渲染引擎一起使用。ARCore绑定纹理与GL_TEXTURE_2D不兼容

我期待着配置我的背景(照相机的图片流)像往常一样进行渲染(因为我已经将其与其他AR库一起使用):创建OpenGL纹理,平面,将纹理设置为材质,并要求ARCore绑定纹理在更新,但似乎只有GLES11Ext.GL_TEXTURE_EXTERNAL_OES可以使用(我用GL_TEXTURE_2D

它这是唯一的方式来绑定一个OpenGl渲染器的纹理?

是的,这是唯一的方法。 纹理必须是GL_TEXTURE_EXTERNAL_OES。 另外请注意,您需要修改片段着色器太:

#extension GL_OES_EGL_image_external : require 
    precision mediump float; 
    uniform samplerExternalOES texture; 
    varying vec2 v_textureCoords; 
    void main() { 
     gl_FragColor = texture2D(texture, v_textureCoords); 
    })"; 

你看看样品中的背景渲染器实现: https://github.com/google-ar/arcore-android-sdk/blob/master/samples/hello_ar_c/app/src/main/cpp/background_renderer.cc