gpt4 book ai didi

c++ - glVertexPointer 无效操作

转载 作者:行者123 更新时间:2023-11-30 04:32:23 24 4
gpt4 key购买 nike

我在使用 OpenGL 时遇到了一个相当奇怪的问题。当我尝试使用没有绑定(bind)到 GL_ARRAY_BUFFER 的缓冲区的 glVertexPointer 并使用 Vertex Array Object(VAO) 时,它会生成无效操作错误。 glVertexPointer 的文档中没有此错误。

当我生成缓冲区并将其绑定(bind)到 GL_ARRAY_BUFFER 时,错误消失了,但由于我的数据存储在 RAM 上,所以我绑定(bind) 0 并使用指向 RAM 的指针。此外,通过不绑定(bind) VAO,我不会再收到错误,但我注意到,当我不使用它时,我在程序中的其他东西会被破坏。

也许我错过了某个设置指针的地方,当绑定(bind)了 VAO 而没有绑定(bind)缓冲区时,会不会是无效的无效操作?从理论上讲,我可以将这些数据移至 VBO 而不必费心,但我想知道为什么会这样。

最佳答案

ARB_vertex_array_object 的扩展注册表明确指出,它们不能与客户端数组一起使用。这对于支持 VAO 的核心 OpenGL 版本应该没有什么不同,这是因为 VAO 是服务器状态的。因此,获得无效操作错误是完全预期的行为。只需将所有内容存储在 VBO 中(如果数据经常更改,可能使用 GL_DYNAMIC_DRAWGL_STREAM_DRAW 作为用法)。

关于c++ - glVertexPointer 无效操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7698732/

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