优化OpenGL:VAO与着色器组织

时间:2012-11-15 21:48:20

标签: opengl optimization 3d glsl shader

我正在编写一些代码,这些代码将在屏幕上绘制多个3D模型,最终用于某种3D世界。每个模型都可以在其中使用不同的着色器进行渲染。在使事情高效运行方面,我知道你应该尝试最小化OpenGL调用,即那些切换VAO和那些切换着色器,因为它们应该有很多开销。

在我的实现中,每个模型都将其几何组织为VAO。 VAO可以具有不同的材质设置但不一定是着色器的网格。

我的问题:绑定VAO并完全一次渲染它是否更好,如果需要的话可以切换着色器,或绑定一个着色器并运行所有(子集) )使用该问题的VAO。第一个是冗余绑定着色器,第二个是冗余绑定VAO,所以最好是最小化着色器绑定调用还是VAO绑定调用?

我意识到这是相当开放的,似乎它可能取决于应用程序,但我也有兴趣知道如何找出gl操作的成本(开销?依赖性?),或者我如何计算它们可以提供必要的信息,以便为任何场景构建适当的响应。此外,如果有一个更好的方式来组织我的项目开始,那将非常感谢这种见解。

0 个答案:

没有答案