GLSL分支机构的性能损失?

时间:2019-06-13 21:59:47

标签: opengl glsl opengl-3

据我了解:由于现代GPU中的线程扭曲体系结构,通常在着色器程序中创建太多if语句被认为是一个坏习惯。不过,我有一些关于在GLSL着色器程序中使用分支的一般性问题,但我找不到其他地方的答案:

  1. 片段着色器中的分支与顶点着色器中的分支相比有何惩罚?通常,几个顶点可能会生成数千个片段,因此我假设我们可以允许自己在顶点着色器中进行更多分支。我是对还是错?

  2. 几何着色器中的分支引入了与顶点着色器相同的性能缺陷吗?

  3. 在着色器程序中使用if / else和三元() ? :运算符之间是否有性能差异?

  4. 如果我们可以通过这些switch案例来表达分支,是否更有效?

我知道这些问题可能太含糊或过于笼统,但我宁愿使用长度较长的答案,也不愿使用一系列的单一答案。而且我也在寻找常识,因此,非常感谢您提供任何答案,或参考解释此内容的资源或获得的任何帮助。

0 个答案:

没有答案