【问题标题】:libgdx - resizing a texture in memorylibgdx - 调整内存中的纹理大小
【发布时间】:2014-08-25 20:33:42
【问题描述】:

在处理不同的屏幕尺寸时,我会为 SD、MD 和 HD 手机/平板电脑使用 3 包资产。 但是这样做有点烦人,并且会使 APK 变大。 我只想使用我想使用的最大包,例如 HD。 但是如果有人有一部 3.2 英寸的手机,我不想在 320x480 手机上渲染 1280x768 背景......

所以我只是想知道..libGDX 是否可以调整纹理的大小? 我的意思不是调整大小,用特定大小绘制……我的意思是,在 Texture Packer GUI 中,我可以添加最大的资产包并选择导出 HD 或 MD 包。 是否可以在运行时调整纹理的大小? 因此,如果我在小型手机上玩游戏,纹理会变小。

我希望你们明白我想说什么。

【问题讨论】:

  • 您可以在运行时生成 mipmap,但这些分辨率甚至不是相同的纵横比。所以你需要一些更复杂的东西。不过,真正令人不安的是,较小的手机可能也会降低 CPU / GPU 的能力,因此动态重新缩放图像可能会增加相当多的加载时间。

标签: java android opengl-es libgdx textures


【解决方案1】:

在低端手机上使用额外的存储空间可能是最好的选择。替代品的吸引力较小:

  1. 加载图像时缩小图像。这将延长已经电量不足的手机的加载时间。缩放必须在 CPU 上完成,因为 GPU 可能不支持屏幕尺寸倍数的纹理。另外,您需要将这些大图像加载到内存中,这将对小型手机造成更多负担。 (您可以这样做一次并缓存结果,因此您不会惩罚每次启动,但您不妨将文件放入 .APK 中)(您可以将高清图像分成几部分以避免压倒低端手机,但这只会进一步增加启动延迟。)如果您仍然想尝试它,可以使用 LibGDX 使用FrameBuffer 在运行时从更高分辨率的图像创建低分辨率图像。

  2. 在渲染图像时缩小图像。这不太可能可靠地工作,并且需要大量内存来保持图像加载。

要真正了解您在此处优化的内容,请尝试使用所有分辨率构建您的 APK,然后再次仅使用高清图像。我敢打赌差异不会那么大(根据定义,低端图像相对而言并没有那么大。)

【讨论】:

    猜你喜欢
    • 2013-05-28
    • 2014-10-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 2012-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多