if 的表达式是uniform变量或常数时是静态分支,是顶点或像素属性时是动态分支.
静态的会被优化 而动态的则无法优化所以会非常慢
尽量避免在shader中使用if 跟 for(int i = 0; i < n; ++i)这样的代码
sm3.0支持动态分支以后,条件短路复杂逻辑明显是加快的。
但是在有动态分支以前,因为所有分支都要计算再合并,所以反而因为多了分支而变慢
if 的表达式是uniform变量或常数时是静态分支,是顶点或像素属性时是动态分支.
静态的会被优化 而动态的则无法优化所以会非常慢
尽量避免在shader中使用if 跟 for(int i = 0; i < n; ++i)这样的代码
sm3.0支持动态分支以后,条件短路复杂逻辑明显是加快的。
但是在有动态分支以前,因为所有分支都要计算再合并,所以反而因为多了分支而变慢