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

Alv*_*par 4 opengl-es webgl

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

gl.useProgram(shaderProgram);
Run Code Online (Sandbox Code Playgroud)

谢谢

Abs*_*thm 7

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

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

useProgram中等性能受到打击.这不是超轻型,既不是超级重样linkProgramcompileShader.

希望这可以帮助.