指令数优化
注意在Niagara中只有实际参与运算的节点才会纳入Instruction的统计,有冗余节点也完全OK。
小心curl noise,在删除了curl noise force之后,指令数降低了218,因此从指令数的角度上说,使用普通的Noise贴图来制作Noise,比Curl Noise Force要高效。
Grid Location考虑了太多情况,因此指令数到了100左右,有必要自己写简化版的Grid Location。
这个节点巨耗,实际上这些材质函数的节点都蛮耗的。
对于标量,不论是加减乘除还是倒数三角函数都是1条指令。 但是对于矢量,试了一下Normalize耗费了7条指令。
显然,if语句在编译时需要把两条路径上的指令全都进行编译,会造成指令数过多。有些内置模块会考虑到很多情况因此会有不少if,这也是优化的点。也可以尝试使用Static Switch。 例如将Kill In Volume改成了自定义的Module,来将球体范围内的粒子剔除,减少了10条指令。