shader优化是一件比较重要的事情,有其特殊的优化方式,现在将比较常用的优化点总结如下。
–
1. 尽量不要使用if分支语句,可以使用step函数替代;
2. 尽量使用内置函数,效率会更好。同时,三角函数等较复杂的高级函数,尽量少用;
3. 使用数据匹配的精度类型,比如,颜色使用lowp即可;
4. 尽量合并计算,利用并行计算的特点,如vec等;
5. 计算可以放到VS中进行;
6. for循环,可以起到减少指令的作用,这个和平台有关,不一定通用,之前在mali-GPU上是有效的。并且,for循环也尽量少用;
实际优化时,感觉if分支对性能的影响还是非常大的。
reference:
- OpenGL ES Programming Guide
- Optimizing Performance in iOS Part1:Optimizing Graphics Performance
- 移动端 Shader 性能优化常用点