gpt4 book ai didi

opengl - 多个程序是否应该使用同一个 VAO?

转载 作者:行者123 更新时间:2023-12-02 06:31:22 24 4
gpt4 key购买 nike

假设我们将两个程序上的顶点属性位置绑定(bind)到相同的值。使用相同的顶点数组对象来使用这两个程序进行绘制是否正确?

最佳答案

定义“正确”。

如果两个程序对象使用兼容的属性位置,则它们使用相同的属性位置。 VAO 根据属性位置工作,因此与一个属性位置配合使用的 VAO 也将与另一个属性位置配合使用。所以这会起作用。

一般来说,是否真正利用这一点是性能问题。避免更改顶点数组状态通常是一个好主意,但尚不清楚这相对于其他状态更改有多重要。无论如何,您都会更改程序,因此在更改程序时不更改 VAO 在最坏的情况下不会变慢,并且可以显着提高性能。

但是,尚不清楚应该做多少工作来最小化顶点数组状态更改。如果您可以将模型打包到具有相同格式的相同缓冲区对象中,则可以使用 glDrawArraysglDrawElementsBaseVertex 等函数渲染所有模型,而无需更改 VAO。 .

关于opengl - 多个程序是否应该使用同一个 VAO?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13294858/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com