游戏中有一张图片,atlas,2048 x 2048,RGBA。
在 RGBA Crunched ETC2 中压缩时,其大小仅为 0.6 mb
但是在 RAM 分析的过程中,很明显它需要更多的东西!在编辑器中,它需要 16 兆字节,这可以解释为 ETC2 是 android 的压缩格式,而在 PC 上它被解压缩为常规的 RGBA 32 位。
但问题是,在 Android 设备上,它的内存大小为 4 mb!是的,这比 PC 上的 RAM 少 4 倍,但仍然比声明的 0.6 mb 多得多
可能是什么问题,以及如何获取 android 的纹理以使其大小与编辑器中声明的大小相匹配?
您误解了压缩的概念。
Unity 官方博客有一篇文章解释了 Crunched 压缩。这些类型的压缩的主要特点是纹理在磁盘空间上占用的空间更少。但是为了在渲染中使用,它被解包了。解包仅在加载到 RAM 时发生。如文章所述,在解压 Crunched 压缩时,我们会在内存中得到一个 DTX 纹理,它会比原始压缩纹理更重。如果您需要减小应用程序包或可下载内容(例如捆绑包)的大小,这种压缩格式非常方便。
如果您想在 RAM 中节省大量纹理大小,您可以使用一些相当复杂的技巧来处理具有大量 Alpha 内容的纹理。