-1

我必须在 OpenGL 中使用矩形纹理细分一些表面。为简单起见,让它成为一个三角形。纹理相互接触,不重叠。这是通过将 GL_TEXTURE_WRAP_S 和 GL_TEXTURE_WRAP_T 设置为 GL_CLAMP_TO_BORDER 并正确调整纹理坐标来完成的。当 GL_TEXTURE_MIN_FILTER 和 GL_TEXTURE_MAG_FILTER 设置为 GL_NEAREST 时,一切正常,但是当我想应用 GL_LINEAR 文件和/或各向异性过滤时,纹理边界像素的 alpha 逐渐变为透明,因此在相邻纹理之间可以看到背景颜色线。

在保留线性过滤的同时,如何在不将多个纹理合并为一个的情况下避免这种伪影?

4

1 回答 1

0

您可能想要GL_CLAMP_TO_EDGE而不是GL_CLAMP_TO_BORDER. Clamp to border 将边缘像素与初始化为 (0,0,0,0) 的边框颜色混合。这就是您的透明度的来源。

要么将纹理夹在实际边缘,要么设置不透明的边框颜色。

于 2012-10-02T20:44:11.087 回答