当相机夹在玩家(一个 box2d-Body)上滚动时,我在平铺 map 上出现了奇怪的伪影。
在遇到这个问题之前,我对平铺贴图使用了线性过滤器,这可以防止这些奇怪的伪影发生,但会导致纹理渗色(我直接从 .tmx 文件加载平铺贴图,而不填充平铺图)。
但是现在我使用最近的过滤器来消除出血,但是当滚动 map 时(通过将凸轮夹在角色上行走),它看起来就像很多像素在周围闪烁。根据相机变焦值,闪烁结果可能会变得更好或更差。 但是,当我使用 libgdx-Utilities 中的“OrthoCamController”类(允许通过使用鼠标/手指平移来滚动 map )时,我根本没有得到这些工件。 我认为闪烁可能是由 box2d-Body 位置收到的错误相机位置值引起的。 我还应该在这里补充一件事:游戏实例在 1280*720 显示模式下运行,而我的游戏摄像头仅渲染 800*480。当我将游戏摄像头的渲染解决方案更改为 1280*720 时,我没有得到这些伪影,但瓷砖太小了。
有人遇到过这个问题或者知道如何解决这个问题吗? :)
最佳答案
我也遇到了类似的问题,发现这是由于相机位置的小数值太小造成的。
我认为可能发生的情况是tilemap渲染器中某些tile列/行的某种舍入。
我通过舍入到设定的精度来解决这个问题,如下所示:
camera.position.x = Math.round(player.entity.getX() * scalePosition) / scalePosition;
尝试使用各种值,但我通过使用图 block 大小作为scalePosition值来使其工作。
关于camera - libgdx 平铺 map 闪烁与最近过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18984955/