【问题标题】:Is there a performance hit for switching between shaders in OpenGL ES 2.0?在 OpenGL ES 2.0 中切换着色器是否会影响性能?
【发布时间】:2011-01-24 02:04:51
【问题描述】:

#1 OpenGL ES 2.0 设备(iPhone/iPad)一次可以编译和可用的着色器程序的数量/大小是否有限制?

#2 在 pass 中间切换程序是否有任何性能开销,例如,如果我要渲染 100 个三角形,50 个使用 shader1,50 个使用 shader2,我会体验到性能吗?在使用这个的任何情况下命中?例如,是否可以更慢地交替程序每个三角形,或者是否应该更快地批量处理所有 50 个着色器 1 然后所有 50 个着色器 2?我想我是在问是否有一些内部上下文切换,或者 OpenGL ES 库是否只是指定卡上要执行的着色器程序内存的地址,而我是否指定每个三角形不同也没关系。

【问题讨论】:

    标签: iphone opengl-es 3d


    【解决方案1】:
    • 问题 1,没有限制,只有系统中的可用内存量。
    • 问题 2,是的,切换着色器会影响性能,因此批处理和最小化着色器切换可确保最佳性能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多