gpt4 book ai didi

opengl - glGenVertexArrays 没有给出独特的 vaos

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

我和我的 friend 正在开发一个使用 C++ 和 OpenGL 的项目。我们为“ModelObject”创建了一个C++类,每个ModelObject都有一个GLuint vao作为成员变量。然后在初始化 ModelObject 时,我们调用

glGenVertexArrays( 1, &vao );
glBindVertexArray( vao );

在我们调用的初始化函数的末尾

glBindVertexArray(0);

脱离上下文。现在我们尝试渲染 2 个对象:火车车厢和立方体。在他的机器(Linux Mint)上,它们都渲染得很好,具有自己的纹理,并且查询对象的 vaos 分别返回 1 和 2。

然而,在我的机器(MacBook Pro)上,两个对象都渲染为立方体(尽管一个具有火车的纹理,另一个具有立方体的纹理)。查询他们的 vaos 返回 0 和 0。

作为实验,我们告诉 glGenVertexArrays 为每个 ModelObject 创建 5 个 vaos。这导致列表 0, 1, 918273, 8, 7(或类似的东西),并且对于两个模型对象来说这是相同的列表。

据我所知,问题是 glGenVertexArrays 既 a) 使用 0 作为有效地址,b) 在每次调用时生成相同的地址,即使我们从未调用 glDeleteVertexArray。为什么它会在我的机器上而不是他的机器上执行此操作,我该如何阻止它?

最佳答案

您的 GPU 支持 OpenGL 3.0 吗? glview 是什么意思?说说入口点 glGenVertexArrays 吗?您的 GPU/驱动程序可能不支持 VAO。

关于opengl - glGenVertexArrays 没有给出独特的 vaos,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13865771/

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