在GLSL中传递值的最快方法是什么?

时间:2011-10-31 17:53:17

标签: glsl

在GLSL着色器中,由于各种原因(例如,使用四个函数来应用光照,纹理,镜头和雾的片段着色器,我经常需要一些函数来修改单个值)。我可以考虑至少三种方法来传递这些值进行修改:

  1. 为每个功能使用inout个参数。
  2. 将值作为in参数传递并使用返回值(明显的缺点是我只能使用一个值)。
  3. 使用每个函数修改的全局变量。
  4. 我是否应该期望这些方法之间存在任何实际差异?有些人可能比其他人更快吗?有些人比其他人更兼容吗?还有其他差异吗?或其他方法,就此而言?

    或者我可以简单地选择一个我最喜欢的风格吗?

1 个答案:

答案 0 :(得分:0)

这种优化主要取决于底层的GLSL编译器。在不同的GPU上分析您的着色器:AMD,nVidia,Intel并选择最佳代码路径。