gpt4 book ai didi

c++ - 在 OpenGL 中创建不可变缓冲区

转载 作者:太空宇宙 更新时间:2023-11-04 13:24:45 25 4
gpt4 key购买 nike

我在某处读到 OpenGL 4.4 引入的不可变缓冲区可以更快,所以我正在尝试学习使用它们。我正在尝试创建一个像这样的不可变索引缓冲区:

glGenBuffers( 1, &iboId );
glBindBuffer( GL_ELEMENT_ARRAY_BUFFER, iboId );
GLbitfield flags = GL_MAP_WRITE_BIT |
GL_MAP_PERSISTENT_BIT |
GL_MAP_COHERENT_BIT;
glBufferStorage( GL_ELEMENT_ARRAY_BUFFER, faceCount * sizeof( Face ), faces, flags );

但是,我在最后一行收到 OpenGL 错误:

GL_INVALID_OPERATION error generated. Cannot modify immutable buffer.

如何创建不可变索引缓冲区并为其提供索引?还是我误解了该功能的全部要点?

最佳答案

我按照评论中的解释解决了这个问题:

I tried to use the same iboId twice in my application when loading multiple meshes from the same file. The code in this question is correct, it's slightly different in my application due to caching which caused the error.

关于c++ - 在 OpenGL 中创建不可变缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33762194/

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