你如何在opengl中平铺

时间:2012-09-29 12:56:22

标签: opengl

我正在尝试制作RPG游戏,我想展示一张平铺地图。

我现在正在做的是每个瓷砖我计算它的位置,如果它在可见区域,我绑定纹理,设置纹理坐标并使用2个三角形绘制正方形。

一切都很好但我发现我经常在一些瓷砖之间出现黑线,非常烦人。你如何摆脱那些黑线,或者是否有更好的方法使用opengl进行平铺

1 个答案:

答案 0 :(得分:2)

我很难在没有任何代码或截图的情况下知道导致问题的原因,但我可以给出最好的猜测。首先,如果您的坐标在瓷砖之间紧密堆积,则瓷砖之间不应出现任何裂缝。通过紧密打包,我的意思是拼贴的底部具有与下面拼贴的顶部完全相同的Y坐标值。

但是,也可能是因为纹理重复和线性过滤会在图块的边缘出现问题。如果是这种情况,您可以使用以下方法解决它:

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);

如果转动纹理,裂缝是否仍会出现?如果是这样,您的瓷砖之间必须有一些几何间距。也许某些内容在代码中的某处或某处被舍入到int?

这些是我最好的猜测,但我建议上传问题的屏幕截图,以获得更好的答案。祝你好运!