我正在尝试制作RPG游戏,我想展示一张平铺地图。
我现在正在做的是每个瓷砖我计算它的位置,如果它在可见区域,我绑定纹理,设置纹理坐标并使用2个三角形绘制正方形。
一切都很好但我发现我经常在一些瓷砖之间出现黑线,非常烦人。你如何摆脱那些黑线,或者是否有更好的方法使用opengl进行平铺
答案 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?
这些是我最好的猜测,但我建议上传问题的屏幕截图,以获得更好的答案。祝你好运!