2010-04-10 55 views

回答

20

的一些技巧在这里:Common mistakes in GLSL

此外,避免分支只要有可能。也就是说,ifwhile语句和for语句具有带有可变的比较,例如:

for (int i=0; i<n; i++) {} 

将是缓慢的。然而,

for (int i=0; i<10; i++) {} 

要快很多,因为大部分的循环被展开的时候,当它不是所有的着色单元仍然在同一时间执行相同的代码,所以没有性能损失。

而不是分支,尝试使用预处理器的条件编译。

此外,检查出NVIDIA和ATI的具体#pragma s到调整的效率。

2

虽然许多传统的c优化适用于glsl,但确实存在一些针对GLSL的特定优化。 如果你不熟悉着色器编程,不要花费太多精力,你的编译器可以为你做出非常有效的工作。 当您更深入地了解图形编程时,您可以收集其他一些高级optm技术。 祝你好运。