WebGL - gl.useProgram()是一个昂贵的调用吗?

时间:2014-05-31 09:17:15

标签: opengl-es webgl

我想知道用于加载着色器程序的这种API方法是否昂贵或不能调用? 我正考虑在我的3D场景中为每个对象进行此调用。

gl.useProgram(shaderProgram);

感谢

1 个答案:

答案 0 :(得分:7)

  • this表示使用glUseProgram比使用glAttachShader + glLinkProgram
  • 更好
  • this说更改着色器总是很重,但glUseProgram最不重要
  • this说它通常很有效率
  • this说,适度和谨慎的使用不会成为瓶颈
  • this谈谈着色器切换性能优化

所以,结论:适度使用它。如果你没有太多的物体 - 很棒,如果你这样做 - 尝试优化着色器切换,或多次重复使用着色器,或者使用相同的着色器以某种方式利用分支。

useProgram获得了中等性能。它不是超轻的,也不像linkProgramcompileShader那样超重。

希望这有帮助。