Unity里的图片压缩

作者: Nick_Can | 来源:发表于2018-02-26 17:50 被阅读62次

这算是Unity优化的一个基础环节吧,没有机会真正去接触,还是要了解下。

图片格式

  • 不同格式的本质区别在于压缩算法不一样,结果图片大小,还原度也各不相同。
  • 常用图片格式有Png,Jpg,Tga,Psd等。平时主要用Png,Jpg。
  • Jpg是有损压缩不透明,Png是无损压缩有透明。

简单纹理格式

  • Png等图片压缩格式无法直接被GPU解码,需要先解压,便会造成消耗。
  • 不论导入的图片是什么格式,Unity都会将其转换成纹理格式,便于GPU读取。(应该算解压成原始格式吧)
  • 有RGB16,RGB24,RGBA16,RGB32等。

纹理压缩格式(硬件压缩格式 Hardware Accellerated Formats)

  • 把纹理进一步压缩(Texture Compression),不同于Png的那种压缩,是针对GPU的压缩格式。
  • 不同的GPU能解析的压缩格式也不同,所以可能没法简单的只用一种压缩格式。并且如果发现GPU不支持当前压缩格式,Unity就会将纹理转换成RGB(A),首先是解压过程的消耗,其次是内存中会保存两个纹理。
  • IOS所有设备支持PVRTC,Android所有设备支持ETC1,但是ETC1没有透明通道。
  • 有的压缩格式要求文件的分辨率数值为2的次幂(ETC),有的还要求纹理是个正方形(PVRTC)。
  • PVRTC4分别有RGB模式,也有RGBA模式,所以是可以有透明通道的(下面的表格有处错误)。


    几种纹理格式对比

纹理压缩格式的选择

高清无压缩 - RGBA32

  • 等同于原图了,效果最好,效率最差。

中清晰中压缩 - RGBA16+Dithering/RGB16

  • RGBA16在遇到渐变的时候表现很差,所以需要做抖动(Dithering)处理。
  • RGB16不带透明通道。

低清晰高压缩 - ETC1+Alpha/PVRTC4

  • 能直接被GPU使用,占用少,效率高。
  • ETC1没有透明通道,需要搭配一张透明贴图。
  • ETC和PVRTC都要求像素长宽都为2的次幂,PVRTC要求像素长宽一致。

总结

  • 一般方案:ETC1+Alpha/PVRTC4 和 RGB16/RGBA16 搭配使用。
  • 图片分辨率数值最好为2的次幂(据说就算不是2次幂,最终到GPU中也需要拉伸为2次幂),最好是正方形(用于匹配压缩格式)。

参考

常用纹理和压缩格式
干货:Unity游戏开发图片纹理压缩方案
Unity中的一个简单的图形优化指导

相关文章

  • Unity里的图片压缩

    这算是Unity优化的一个基础环节吧,没有机会真正去接触,还是要了解下。 图片格式 不同格式的本质区别在于压缩算法...

  • 【Unity】图片压缩

  • 纹理压缩简介 DXT PVR ETC

    参考为什么需要纹理压缩移动端纹理压缩格式干货:Unity游戏开发图片纹理压缩方案Creator使用压缩纹理常用纹理...

  • NGUI图集压缩UIAtlasMaker修改

    阅读前请先了解下Unity3D 图片纹理格式Unity游戏开发图片纹理压缩方案 解决的问题? 包体过大 内存占用大...

  • (转)Unity 图片压缩技巧

    转自移动设备压缩纹理使用技巧 压缩纹理能够节约不少内存空间,因此目前项目中UI全都是用Texture Packer...

  • Unity 图片纹理压缩方式

    Unity3D引擎对纹理的处理是智能的:不论你放入的是PNG,PSD还是TGA,它们都会被自动转换成Unity自己...

  • Unity包尺寸优化

    注:Unity工程中用其他工具压缩png源图对优化包尺寸无效,必须在导入Unity后选择压缩格式 1.Unity ...

  • 关于Addressable打包大小的疑问

    1)关于Addressable打包大小的疑问2)华为机型上人物模型锯齿严重问题3)Unity 2019图片压缩格式...

  • GPU Skinning不生效问题

    1)GPU Skinning不生效问题2)勾选凸包报的警告问题3)Unity 2019 图片压缩格式选择4)And...

  • 【Unity】图片压缩的解决方案

    公司做的项目需要拍照生成精灵,流程是客户端先拍照,压缩后上传给服务器,然后由服务器的图像识别算法进行生成裁剪后的精...

网友评论

    本文标题:Unity里的图片压缩

    本文链接:https://www.haomeiwen.com/subject/ynnyxftx.html