我们正在尝试在 Android 上从单个纹理渲染天空盒/立方体贴图(请参见图像,立方体的每个面都是一种颜色),但我们看到大部分边缘有强烈的接缝。
我们已将 GL_TEXTURE_WRAP_S 和 GL_TEXTURE_WRAP_T 设置为 GL_CLAMP_TO_EDGE,这会从某些边缘移除接缝,但这对纹理内部的边缘没有影响。
我们最初认为这只是插值伪影,因为这些边缘上的线性插值,但在设置GL_TEXTURE_MAG_FILTER
和GL_TEXTURE_MIN_FILTER
时我们仍然看到 1-2px 尖锐的接缝GL_NEAREST
。请参阅线性和最近邻的示例。
多维数据集的角落GLES30.GL_LINEAR
和GLES30.GL_NEAREST
我们正在从 Android SurfaceTexture 读取纹理,因此输入纹理必须是GL_TEXTURE_EXTERNAL_OES
. 我们知道这个问题应该可以通过使用本机GL_TEXTURE_CUBE_MAP
和来解决glEnable(GL_TEXTURE_CUBE_MAP_SEAMLESS)
,但不支持GL_TEXTURE_EXTERNAL_OES
.
有人对我们如何解决这个问题有想法吗?是否可以在着色器代码中设置过滤限制?使用屏幕外帧缓冲区进行两次渲染,我们可以使用它来将其GL_TEXTURE_EXTERNAL_OES
转换为常规的 2D 纹理(并将其绑定到立方体贴图),这是一个很好的尝试解决方案吗?