shader代码优化
1.注意数据精度的选择
参考:Unity-Manual Shader数据类型的精度
2.减少if-else分支结构,使用step等内置函数
3.减少复杂函数的使用
CPU端(drawcall的性能消耗)
顶点着色器和片元着色器,能在顶点着色器中做就在顶点着色器中做,但是顶点着色器中的实现有时候会降低表现效果;
1.gpu是SIMD的架构,即单指令多数据流架构,即在gpu上同时执行n个数据和执行1个数据的效率是一样的,我们要
尽量的把并行的计算搬到gpu上
2.gpu是以向量计算为基础设计的,所以使用swizzle是非常快的,也就是说在gpu上执行一个向量乘法和执行一个float的乘法的效率是一样的,并不向cpu那样要多执行几次
参考资料
Unity Manual-shader优化:https://docs.unity3d.com/Manual/SL-ShaderPerformance.html
博客园-shader代码优化:https://www.cnblogs.com/jaffhan/p/7358383.html
并行计算的内存架构:https://python-parallel-programmning-cookbook.readthedocs.io/zh_CN/latest/chapter1/02_The-parallel-computing-memory-architecture.html