簡體   English   中英

OpenGL 生成多個 vao 緩沖區

[英]OpenGL generating multiple vao buffer

之間是否存在關鍵的性能差異

GLuint vao[2];
glGenVertexArrays(2, &vao);

// and

GLuint vao1[1], vao2[1];
glGenVertexArrays(1, &vao1);
glGenVertexArrays(1, &vao2);

我當然認為后一種性能會很差,但由於我的理解很淺,我不知道它會是多少以及為什么會不好。

不知道程序將保存和生成多少 vao,后一種生成新 VAO 的正確方法是繼續生成大小為 1 的緩沖區嗎? (例如:在類的構造函數中)

您不應該暗示這些 GLuint 句柄存儲在線性 memory 中,即使它們是,也不意味着代表對象的 memory 是連續的。 它可以在運行時,也可以不在,它還取決於您在創建緩沖區時提示 OpenGL 的訪問模式。 圖形驅動程序為您完成所有工作,包括 memory 布局優化。 If you want to get an idea how drivers could potentially manage OpenGL objects and video memory, take a look at Vulkan API and best practices related to memory management . 但同樣,在 OpenGL 中,您沒有那種程度的控制。

暫無
暫無

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

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