libgdx - 在内存中调整纹理大小

时间:2014-08-25 20:33:43

标签: java android opengl-es libgdx textures

当处理不同的屏幕尺寸时,我使用3包资产用于SD,MD和HD手机/平板电脑。 但这样做有点烦人,并使APK更大。 我想只使用我想要使用的最大包,比如HD。 但如果有人拿到一部3.2英寸手机,我不想在320x480手机上呈现1280x768背景..

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

我希望你们明白我想说的话。

1 个答案:

答案 0 :(得分:1)

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

  1. 加载图像时缩小图像。这将延长已经功耗不足的手机的加载时间。缩放必须在CPU上完成,因为GPU可能不支持屏幕大小倍数的纹理。此外,您需要将这些大图像加载到内存中,这将使小型手机的价格更高。 (您可以执行此操作并缓存结果,因此您不会惩罚每个启动,但您可能只是将文件放在.APK中)(您可以将高清图像切成部分以避免压倒低端手机,但这只会增加启动延迟。)如果您仍想尝试使用LibGDX,您可以使用FrameBuffer在运行时从更高分辨率的图像创建低分辨率图像。

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

  3. 要真实处理您在此处优化的内容,请尝试使用所有分辨率构建APK,然后再使用高清图像再次构建。我敢打赌,差异不是那么大(根据定义,低端图像不是那么大。)