在opengl es中,当我将两个纹理放在一起时,有一个细微的缝,你可以在其中看到它们后面的绘制对象。基本上看上去是个小差距。我把范围缩小到mipmapping
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_LINEAR);glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
如果我把它们都设置为GL_NEAREST,缝线就会消失,但是纹理看起来很糟糕。我还有别的选择吗?
发布于 2014-07-26 05:02:01
纹理边缘的取样行为取决于纹理包装设置,可以使用glTexParamteri()设置,使用GL_TEXTURE_WRAP_S和GL_TEXTURE_WRAP_T作为参数名。它们分别控制两个纹理方向的包装模式。
这些参数的默认值是GL_REPEAT,它创建了纹理的重复模式。这意味着,当你接近纹理的左边边缘,并到达后半纹理,线性插值将发生在最左和最右像素之间。这很可能导致你的情况下的接缝。
ES2.0中的其他有效值是GL_MIRRORED_REPEAT和GL_CLAMP_TO_EDGE。两者都应该更适合您的情况,但是GL_CLAMP_TO_EDGE是最直接的。它将简单地使用在边缘的纹理,同时接近边缘,没有任何插值的最后一半纹理。
可以使用以下方法设置这些参数值:
glTexParamteri(GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParamteri(GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);https://stackoverflow.com/questions/24967202
复制相似问题