Unity3d Unity增加导入精灵的大小
我已经将一个37.2kb大小的.png(800x294)导入unity,但导入后显示它的大小为0.9MB,比原来的大。在导入设置中,我将1024的最大大小更改为512,从而将分辨率从原始设置降低到512 x 188,大小为94KB。在没有任何图像分辨率变化的情况下,.png大小是如何增加这么多的(从37.2K增加到0.9MB的?这是因为压缩设置。将纹理类型更改为“高级”,将能够看到纹理可以具有的各种颜色格式(在“格式”设置中)。更改颜色格式对纹理内存大小有很大影响。您可能误导了png的物理纹理大小,即您指定的37.2 KB,内存中有纹理大小 没关系,如果你的文件是jpg、png或psd,在游戏内存中,它的大小将与你指定的大小相同。如果指定最大质量,即未压缩的32位RGBA,则需要Unity3d Unity增加导入精灵的大小,unity3d,sprite,Unity3d,Sprite,我已经将一个37.2kb大小的.png(800x294)导入unity,但导入后显示它的大小为0.9MB,比原来的大。在导入设置中,我将1024的最大大小更改为512,从而将分辨率从原始设置降低到512 x 188,大小为94KB。在没有任何图像分辨率变化的情况下,.png大小是如何增加这么多的(从37.2K增加到0.9MB的?这是因为压缩设置。将纹理类型更改为“高级”,将能够看到纹理可以具有的各种颜色格式(在“格式”设置中)。更改颜色格式对纹理内存大小有很大影响。您可能误导了png的物理纹理大
800 x 294 x 4字节(32位)=235 200 x 4字节=940 800字节=~0.9 MB
如果您想使用更少的内存,可以将质量降低到16位(每个通道4位),或者使用内存中的压缩类型,但是,它要求纹理具有二维的能力,并且是方形的(在iOS上)。在这种情况下,您将拥有1024x102x0.5字节(每像素4位PVRTC4)=524288字节=~0.5 MB
这些压缩的纹理在GPU内存中保持压缩。在PowerVR的GPU和许多其他设备上都可以使用。通过使用它们,您将减少内存使用量,并缩短渲染时间—需要处理的数据更少。它们不如32位RGBA完美,但通常比16位RGBA更好——你应该自己检查视觉效果
如果您想了解有关纹理压缩的更多详细信息,也可以看看这个
总之,unity显示的大小是内存中纹理的大小,与源文件类型或大小无关,唯一重要的是导入类型(压缩)和最大大小限制。嘿,内存中压缩的图像是如何工作的?它们什么时候被有效地解压?它们在GPU内存中被压缩,所以永远不会被解压。我用更多的数据更新了答案。更准确地说,它们是由图形硬件实时解码的。因此,不会对绩效产生负面影响;事实上,使用它们可以提高性能(取决于您的瓶颈),因为减少了内存带宽。in-GPU不等于in-storage。对于一些简单的游戏,更重要的是让CPU在场景启动时解码20MB的png,而不是在驱动器上解码400MB的GPU。因为移动用户可以拥有16个Gig设备,或者附近没有WiFi。我认为这可能与此相关。