我在 Libgdx 中创建了一个基于等距图块的游戏。我使用的纹理是 64x64 并使用 TexturePacker 打包到 TextureAtlas 中。然后将它们绘制到屏幕上。然而,在 64x64 纹理的像素化边缘移动时,它们会闪烁并且扭曲,如下图所示。我已经使用了 texturepacker 中可用的所有过滤器,您可以在下面看到线性和最近过滤器的结果。除了闪烁之外,线性滤镜还为纹理添加了黑色轮廓。如果不是因为相机移动时闪烁,我会很好。
瓷砖应该如何显示:
线性过滤(可以清楚地看到黑线扭曲):
最近的过滤(更难看到,但像素化线不直):
最容易发现它的地方是棕色立方体的顶部和底部。根据相机的移动,失真发生在不同的地方(这会导致闪烁)。
有谁知道是什么原因造成的,或者有可能的解决方案吗?我不确定是否需要任何代码片段。
还值得一提的是,相机设置为 windowHeight/ppm (ppm = 64) 和 windowWidth/ppm,然后将纹理绘制到投影矩阵设置为 camera.combined 的批次上。
编辑:以某种方式将窗口高度从 800 降低到 710(最近)会更好: