我已阅读以下here:
使用不受支持的纹理压缩格式时 目标平台,纹理被解压缩为RGBA 32并存储 在压缩纹理旁边的内存中。当这发生时,时间 失去了解压缩纹理,因为你的内存丢失了 存储两次。此外,所有平台都有所不同 硬件,并经过优化,可以最有效地工作 压缩格式;选择不兼容的格式会影响你的 游戏的表现。下表显示了每个支持的平台 压缩格式。
让我们讨论具体案例。假设我在光盘上存储了.png
文件并从Android打包了我的游戏。现在我在Android设备上玩这款游戏,其GPU需要ETC2
作为原生纹理格式。我是否正确,当我进入游戏时,应该发生以下情况:
这意味着我在PNG-> RBGA32-> ETC2之间进行了大量转换,在转换过程中,我不仅使用CPU资源,还大量使用RAM。我的问题 - 我是否正确理解当一个人没有使用原生纹理格式打包到目标平台时会发生什么?
答案 0 :(得分:0)
是的,你有点正确地理解这里发生了什么。但是你误解了一些东西:PNG与所有这些相关的方式。 GPU应用于纹理的压缩方法与PNG的filter + deflate方法非常不同,因此使用每种类型的GPU都会产生这种行为。
Unity开发人员试图告诉您的是,纹理可以以GPU使用的格式存储,为了获得最佳性能,您应该确定目标平台支持哪种压缩格式并捆绑资产文件为此。
因此,对于平台X的游戏,请确定X GPU支持的压缩格式,然后将资产打包并随之运送X版本。冲洗并重复其他平台。