libGDX纹理质量缩小

3

我是新手,正在学习libGDX,我只想把一张图片放到屏幕上。我有一张红色球形图像,尺寸为800x800,当我尝试绘制这个纹理时:

batch.draw(ball,50,50,50,50);

球的质量实在是太差了,但是当我不缩小它时,质量很好。 这是我在屏幕上看到的图像:http://prntscr.com/55oars。 有什么办法可以使图像更加清晰流畅吗?

2
如果你要缩小纹理,就需要使用mip-mapping。在Texture构造函数中有一个useMipmaps选项。此外,纹理的过滤器应设置为(MipMapLinearNearest, Linear)或(MipMapLinearLinear, Linear)。第二个选项在更广泛的设备上看起来更好,但性能较差。 - Tenfour04
1个回答

0
据我所知,您有两个选项。
其中一个选项是使用FitViewport并不断维护屏幕大小,从而最终保留图像的质量。在这种情况下,FitViewport类将通过在屏幕上添加黑色条来处理额外的空间。例如:
private Viewport viewport;
private Camera camera;

public void create() {
    camera = new PerspectiveCamera();
    viewport = new FitViewport(800, 480, camera);
}

public void resize(int width, int height) {
    viewport.update(width, height);
}

另一个选择是使用TexturePacker并加载与给定屏幕成比例的图像。

总的来说,虽然这些方法可能有点繁琐,但它们确实是在不同屏幕尺寸下保持“清晰和流畅”图片的更好方式。

值得记住的是,通过调整图像大小,您实际上会减少照片的像素数量。因此,当您尝试调整图像大小时,一些像素会“丢失”,原始纹理无法再现,从而导致失真。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接