Unity里的图片压缩

这算是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优化的一个基础环节吧,没有机会真正去接触,还是要了解下。 图片格式 不同格式的本质区别在于压缩算法不一样,结果图片大小,还原度也各不相同。 常用图片格式有Png,Jpg,Tga,Psd等。平时主要用Png,Jpg。 Jpg是有损压缩不透明,Png是无损压缩有透明。 简单纹理格式 Png等图片压缩格式无法直接被GPU解码,需要先解压,便会造成消耗。 不论导入的图片是什么格式,U...

Unity3D协程

voidStart() { Debug.Log("1"); StartCoroutine(Do()); Debug.Log("4"); } IEnumeratorDo() { Debug.Log("2"); yieldreturnStartCoroutine(newDo());//WaitForSeconds(5); Debug.Log("6"); } IEnumeratornew...

每天五分钟机器学习:逻辑回归算法的决策边界究竟是什么?

我们先来回忆一下逻辑回归的假设函数:上面就是我们逻辑回归的假设,hθ≥0.5时y=1,此时z≥0当hθ=g。

游戏中的AI算法总结与改进

timg ().jpg (. , 下载次数: )下载附件-- : 上传一.人工智能的定义人工智能(,rtificial ntelligent),指的是通过算法编程使计算机模仿人完成一些像人一样的任务,同时在执行任务时模仿人的思维和智慧,甚至通过大量学习训练

智能交通的先行者—车智汇,给您和爱车保驾护航!

修。、汽车防盗:内置精密传感器,远程检测车门、车窗及车身震动状态变化(例如车门被拉开、车窗被撞击、停车时车身被剐碰等)、车机插拔报警、点火提醒,在后台运行的情况下会及时语音播报和短信提醒,让你在千里之外,实时掌握车辆安全实况。、碰撞呼救:碰撞自动呼救,车主