簡體   English   中英

在OpenGL中創建不可變的緩沖區

[英]Creating an immutable buffer in OpenGL

我在某處讀到,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.

如何創建不可變的索引緩沖區並為其提供索引? 還是我誤解了功能的全部內容?

我按照評論中的說明解決了這個問題:

從同一文件加載多個網格物體時,我嘗試在我的應用程序中兩次使用相同的iboId。 這個問題中的代碼是正確的,由於導致錯誤的緩存,因此在我的應用程序中略有不同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM