gpt4 book ai didi

opengl - 每个 VBO 都需要一个 VAO 吗?

转载 作者:行者123 更新时间:2023-12-04 03:52:21 24 4
gpt4 key购买 nike

目前,我收藏了 RenderObject包含纹理、VAO 和 VBO 的类。由于所有状态切换和对 glDrawArrays 的调用,绘制数千个这样的对象会导致性能损失。用少量的三角形。

所以现在我要更改我的实现,以便创建一系列 1MiB VBO(从一个开始,一旦它满了,创建第二个 1MiB VBO 并继续填充它)。每个 VBO 是否需要单独的 VAO? VBO 已经使用交错的顶点数据,所以我不是在谈论将多个 VBO 用于顶点、法线、纹理坐标等。

最佳答案

我认为可能会有一些困惑。顶点属性是指可以通过单个顶点传入的每个顶点元素的数量(法线是一个,UV 是另一个,等等)。在您的实现中,这限制在 16 个,您很可能不会超过。

VAO 存储发出单个绘图调用所需的状态信息。这包括存储需要为该调用绑定(bind)哪些 VBO。鉴于每个 VBO 必须在其自己的单独绘制调用中绘制,我还认为您需要一个 VAO 来存储每个 VBO 的设置信息。

这是一个很好的解释:

http://ogldev.atspace.co.uk/www/tutorial32/tutorial32.html

关于opengl - 每个 VBO 都需要一个 VAO 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17597159/

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