2012-10-02 95 views
-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文件环和/或各向异性过滤之后的arifact apperas:纹理边界像素的alpha逐渐降至透明,以便背景颜色的线在相邻纹理之间可见。OpenGL多纹理镶嵌

如何在不保留线性过滤的情况下将多个纹理合并为一个而避免此工件?

回答

0

您可能需要GL_CLAMP_TO_EDGE而不是GL_CLAMP_TO_BORDER。钳位到边界将边缘像素与边界颜色混合,边界颜色初始化为(0,0,0,0)。这就是你的透明度来自哪里。

将纹理固定到实际边缘,或设置不透明的边框颜色。

+0

重点是在表面上渲染纹理作为单个矩形块(块的外部空间必须保持透明),尽管相邻纹理应该无间隙地彼此相邻。 – user1715296