我们正在尝试从单个纹理在Android上渲染天空盒/立方体贴图(参见图像,立方体的每个面都是一种颜色),但我们在大多数边缘都看到了强烈的接缝。
我们设置了GL_TEXTURE_WRAP_S& GL_TEXTURE_WRAP_T到GL_CLAMP_TO_EDGE,可以从某些边缘移除接缝,但这对纹理内的边缘没有影响。
我们最初认为这只是插值伪影,这是跨越这些边缘的线性插值的结果,但在将GL_TEXTURE_MAG_FILTER
和GL_TEXTURE_MIN_FILTER
设置为GL_NEAREST
时,我们仍然看到1-2px尖锐的接缝。请参阅线性和最近邻居的示例。
立方角的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纹理(并将其绑定到立方体贴图),这是一个很好的尝试解决方案吗?