Unity Shader——移动端Shader的优化(Optimize Shader)
Posted 御雪妃舞
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity Shader——移动端Shader的优化(Optimize Shader)相关的知识,希望对你有一定的参考价值。
本篇参考书《Unity Shaders and Effects CookBook》。
首先讲简单的Shader Cheap Shader,轻量级Shader主要是内存占用量,贴图使用量,还有数据使用量来优化。
下面详细讲讲那些优化
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
更改前:
![](https://image.cha138.com/20220418/2abdb5ad23b74029b6560bcea65300e4.jpg)
更改后:
![](https://image.cha138.com/20220418/488a12ff1a3044be9b0b95ef15f4c544.jpg)
二:改变灯光颜色计算中的数值类型
灯光计算:
![](https://image.cha138.com/20220418/2032cb1c72084ce38bc5bc7dcfb11ee7.jpg)
![](https://image.cha138.com/20220418/6be9040c83fe420880ff54e2a5faa333.jpg)
颜色计算:
![](https://image.cha138.com/20220418/8b72d848180c4dceaac61977af1aaedc.jpg)
![](https://image.cha138.com/20220418/e4d8b1050b964c8aaeac253fe24c8fab.jpg)
2.关闭渲染附加通道(reduce lights Shader process)或者直接指定渲染
关闭渲染附加通道:
![](https://image.cha138.com/20220418/77187d282b0d46faa2e4a5ab8d5536b8.jpg)
指定渲染:
![](https://image.cha138.com/20220418/662b9023729848c9b4608b984c7ee1f8.jpg)
类似的还有:
![](https://image.cha138.com/20220418/11aad66237ce489399176617e6f1925a.jpg)
3.共享UV(Sharing UVS)
![](https://image.cha138.com/20220418/0738a61dfc31462e97ef6663ef9aea4a.jpg)
![](https://image.cha138.com/20220418/b04728c8bb2a45a5bfb41ac25e19fd8f.jpg)
去掉法线贴图的输入,使用UnpckNormal共享uv。
4.根据Unity自带的性能分析器控制
![](https://image.cha138.com/20220418/3bb61d5be0fd4dde9e63bb224f42ff4a.jpg)
以上是关于Unity Shader——移动端Shader的优化(Optimize Shader)的主要内容,如果未能解决你的问题,请参考以下文章