Camera libgdx tiledmap闪烁,带最近过滤

Camera libgdx tiledmap闪烁,带最近过滤,camera,libgdx,Camera,Libgdx,我用夹在播放器(box2d机身)上的相机滚动时,在平铺贴图上出现了奇怪的瑕疵 在得到这个问题之前,我对tileMap使用了线性过滤器,它可以防止那些奇怪的瑕疵发生,但会导致纹理出血(我直接从.tmx文件加载tileMap,而不填充tiles) 然而,现在我使用的是最近的过滤器,它消除了出血,但是当滚动地图时(通过在角色身上夹住摄像头行走),它就像很多像素一样在闪烁。闪烁的结果可能更好,也可能更差,这取决于相机的缩放值。 但是当我使用libgdx实用程序中的“OrthoCamController”

我用夹在播放器(box2d机身)上的相机滚动时,在平铺贴图上出现了奇怪的瑕疵

在得到这个问题之前,我对tileMap使用了线性过滤器,它可以防止那些奇怪的瑕疵发生,但会导致纹理出血(我直接从.tmx文件加载tileMap,而不填充tiles)

然而,现在我使用的是最近的过滤器,它消除了出血,但是当滚动地图时(通过在角色身上夹住摄像头行走),它就像很多像素一样在闪烁。闪烁的结果可能更好,也可能更差,这取决于相机的缩放值。 但是当我使用libgdx实用程序中的“OrthoCamController”类时,它允许通过鼠标/手指平移来滚动地图,我根本没有得到这些工件。 我假设闪烁可能是由box2d主体位置接收到的错误摄影机位置值引起的。 这里我还要补充一点:游戏实例在1280*720显示模式下运行,而我的gamecam仅渲染800*480。如果我把游戏摄像头的渲染解决方案改为1280*720,我就不会得到那些人工制品,但是瓷砖太小了


是否有人遇到过此问题或知道如何解决此问题?:)

关于tilesets,我在这里发布了一个解决方案:

我一直在对平铺本身使用这种方法。在“平铺”中导入平铺集时,必须调整“边距”和“间距”,以使效果生效


它100%适用于我:)

我对此也有类似的问题,并发现这是由于相机位置的十进制值太小

我认为可能发生的情况是在tilemap渲染器中对某些平铺列/行进行某种舍入

我通过四舍五入到设定的精度来解决这个问题,如下所示:

camera.position.x = Math.round(player.entity.getX() * scalePosition) / scalePosition;

使用各种值进行实验,但我通过使用“平铺大小”作为“缩放位置”值来实现它。

这对我来说是可行的,当输入到相机时,我将浮动位置转换为int