Gha*_*nPL 21
这里有一些提示:GLSL中的常见错误
另外,尽可能避免分支.也就是说,if和while语句和for语句具有带有可变的比较,例如:
for (int i=0; i<n; i++) {}
Run Code Online (Sandbox Code Playgroud)
会很慢.然而,
for (int i=0; i<10; i++) {}
Run Code Online (Sandbox Code Playgroud)
应该更快,因为大多数时候循环被展开,并且当并非所有着色单元仍然同时执行相同的代码时,所以没有性能损失.
而不是分支,尝试使用预处理器使用条件编译.
另外,查看nVidia和ATI特定的#pragmas来调整效率.