我想知道这个用于加载着色器程序的API方法是否昂贵或不调用? 我正在考虑对 3D 场景中的每个对象进行此调用。
gl.useProgram(shaderProgram);
谢谢
最佳答案
- this说使用
glUseProgram
比使用glAttachShader
+glLinkProgram
更好
- this说更改着色器总是很繁重,但
glUseProgram
是最轻的 - this说它通常很有效
- this说适度谨慎的使用不会成为瓶颈
- this谈论一下着色器切换性能优化
所以,结论是:适度使用。如果您没有太多对象 - 那就太好了 - 尝试优化着色器切换,或多次重复使用着色器,或使用以某种方式利用分支的相同着色器。
useProgram
的性能受到中等影响。它不是超轻量,也不像 linkProgram
和 compileShader
那样超重。
希望这有帮助。
关于opengl-es - WebGL - gl.useProgram() 是一个昂贵的调用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23968364/