Unity增加了导入精灵的大小



我曾将一个37.2 KB大小的.png(800 x 294)导入到unity中,但导入后显示其大小为0.9MB,这比原来的太大了。我在导入设置中将1024的最大大小更改为512,这将其分辨率从原来的512 x 188降低到94KB。png大小是如何在没有任何图像分辨率变化的情况下增加这么多(从37.2K增加到0.9MB)的?

您可能误导了png的物理纹理大小,根据您的指定,它是37.2 KB,内存中有纹理大小。

这并不重要,如果你的文件是jpg、png或psd,在游戏内存中,它会占用你指定的大小。如果指定最大质量,即未压缩的32位RGBA,则需要800 x 294 x 4 bytes (32 bits) = 235 200 x 4 bytes = 940 800 bytes = ~0.9 MB

如果你想使用更少的内存,你可以将质量降低到16位(每个通道4位),或者使用压缩内存类型,但是,它需要纹理具有二维的幂,并且是正方形的(在iOS上)。在这种情况下,您将拥有1024 x 1024 x 0.5 bytes (4 bits per pixel PVRTC4) = 524 288 bytes = ~0.5 MB

这些压缩的纹理在GPU内存中保持压缩。PowerVR的GPU上有可用的PVRTC压缩,许多其他GPU上有DXTn压缩。通过使用它们,可以减少内存使用量,也可以减少渲染时间——需要处理的数据更少。它们不如32位RGBA完美,但通常比16位RGBA更好——你应该自己检查视觉效果。

如果你想要更多关于纹理压缩的详细信息,也可以看看这个线程。

综上所述,unity显示的大小是内存中纹理的大小,与源文件类型或大小无关,唯一重要的是导入类型(压缩)和最大大小限制。

这是因为压缩设置。将纹理类型更改为高级,将能够看到纹理可以具有的各种颜色格式(在格式设置中)。更改颜色格式会对纹理内存大小产生很大影响。

最新更新