Unity 优化贴图模型

纹理

纹理属性

  • Aplha Source 对于不透明的纹理,关闭其apha通道

  • Read/Write Enable:如果你不需要运行时读取图片的像素信息的话,禁用,否则启用后纹理的内存消耗会增加一倍。

  • Streaming MipMaps:如果不是3D模型贴图,则禁用,否则会多出约33%的内存开销。Mipmaps主要为远处的物件生成较为清晰的小贴图,减少渲染导致的画质损失。像UI贴图,则完全用不到。

  • Override for iOS/Android:启用,为特定平台做差异化配置。

  • Max Size:视情况而定,默认最大贴图尺寸限制为2048,比如特效贴图限制为512,甚至更小跟效果而定

  • Format:

iOS推荐使用ASTC,ASTC一般推荐ASTC 6x6,如果清晰度达不到需求,可以设置为ASTC 4x4。注意:ASTC仅在iPhone 6以后的设备被支持,如果需要支持iPhone 6之前的设备,可以设置为PVRTC。

Android推荐使用ETC,如果是带透明通道的,可选择ETC2,注意:ETC2只在支持OpenGLES 3.0的设备获得支持,如果考虑旧设备,则可以选用ETC,然后勾选Split Alpha Channel。如果不带透明通道,则无脑选用ETC。目前大部分安卓机已经支持ASTC,可以考虑使用。

我们可以在预览的下方看到纹理的压缩格式和实际占用的内存大小,我们需要经常关注这项信息,以观察设置是否生效。

模型

Model
  • Import BlendShapes(常用于脸部表情) 如果没有用到Blendshapes,也关闭。

  • Mesh Compression:压缩比越高模型文件越小,需要根据游戏内的实际效果决定,一般可以设置为Medium。可能会不成熟,如果发现动画出错,可以把这里属性关闭看看效果。

  • Read/Write Enable:如果你不需要运行时修改模型的话,禁用,否则启用后模型的内存消耗会增加一倍。

  • Optimize Mesh:推荐启用,可以提升GPU性能。

  • Normals:如果你的模型没有法线信息,将其设为None,可以减小模型大小。

Rig
  • Animation Type:如果你的模型没有骨骼,将其设为None。Humanoid:人型骨骼动画会生成一份骨骼绑点,增加内存。

  • Optimize Game Objects:启用,可以将暴露在Hierarchy的子节点移除,极大的减少了模型的层级和Children数量,从而提升运行时性能。如果有挂载点需求,在Extra Transforms to Expose里添加需要暴露的子节点即可。

Animation
  • Import Animation:如果你的模型没有动画,将其解除勾选。

  • Resample Curves(根据项目实际CPU和内存瓶颈考虑,建议不勾选)

将动画中的 Euler 数据转换为 Quaternion,动画更新时使用 Quaternion,减少了计算转换,插值更平滑,较少的性能提升,10%-20%左右的内存增加。

  • Anim. Compression:推荐使用Optimal,经过测试Optimal比Keyframe Reduction节省约50%的大小,从而可以提升加载速度。如果觉得动画质量太差,则可以退回到Keyframe Reduction甚至到Off。

猜你喜欢

转载自blog.csdn.net/st75033562/article/details/129548692