Unity Shader——移动端Shader的优化(Optimize Shader)

本篇参考书《Unity Shaders and Effects CookBook》。


首先讲简单的Shader  Cheap Shader,轻量级Shader主要是内存占用量,贴图使用量,还有数据使用量来优化。


Unity Shader——移动端Shader的优化(Optimize Shader)_第1张图片


下面详细讲讲那些优化

1.改变变量类型(降低内存)


首先讲一下几种变量类型:
  • float:32位浮点数据,对应的值有float2,float3,float4,后面的数据代表数组,比如float2(1.0f,1.0f)
  • half:16位浮点数据,使用与存储uv数值,颜色数值,比使用float值快很多,对应的值有half2,half3,half4
  • fixed:12位定点数,用于灯光颜色的计算,对应的值有fixed2,fixed3,fixed4.

下面我们举例两种类型的改变:

一:改变uv数值类型,由float改为half


更改前:
Unity Shader——移动端Shader的优化(Optimize Shader)_第2张图片

更改后:
Unity Shader——移动端Shader的优化(Optimize Shader)_第3张图片


二:改变灯光颜色计算中的数值类型


灯光计算:

Unity Shader——移动端Shader的优化(Optimize Shader)_第4张图片

Unity Shader——移动端Shader的优化(Optimize Shader)_第5张图片


颜色计算:
Unity Shader——移动端Shader的优化(Optimize Shader)_第6张图片

Unity Shader——移动端Shader的优化(Optimize Shader)_第7张图片


2.关闭渲染附加通道(reduce lights Shader process)或者直接指定渲染


关闭渲染附加通道:





指定渲染:



类似的还有:


3.共享UV(Sharing UVS)

Unity Shader——移动端Shader的优化(Optimize Shader)_第8张图片

Unity Shader——移动端Shader的优化(Optimize Shader)_第9张图片

去掉法线贴图的输入,使用UnpckNormal共享uv。


4.根据Unity自带的性能分析器控制

Unity Shader——移动端Shader的优化(Optimize Shader)_第10张图片


你可能感兴趣的:(Unity,Shader)