【问题标题】:libGDX texture quality scaling downlibGDX 纹理质量按比例缩小
【发布时间】:2015-01-09 15:23:35
【问题描述】:

我是 libGDX 的新手,我只是想将图像放到屏幕上。我有一个 800x800 的红球图像,当我尝试绘制纹理时:

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

球的质量真的很差,但是当我不按比例缩小时,质量很好。

这是我在屏幕上看到的图像:http://prntscr.com/55oars

对如何使图像更清晰、更流畅有任何帮助吗?

【问题讨论】:

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

标签: libgdx textures scale image-quality


【解决方案1】:

据我所知,您有两种选择。

一种选择是拥有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 并加载与给定屏幕成比例的图像。

总而言之,虽然这些方法可能看起来有点乏味,但它们确实是在不同屏幕尺寸下保持“清晰流畅”图片的更好方法。

值得记住的是,通过调整图像大小,您实际上会减少照片的像素数。因此,当您尝试调整图像大小时,某些像素会“丢失”,并且无法再现原始纹理,因此会失去清晰度。

【讨论】:

    猜你喜欢
    • 2015-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-18
    • 2023-03-28
    相关资源
    最近更新 更多