我正在爲遊戲編寫自己的渲染器。我有一個Geometry類,它以VBO(頂點緩衝對象)的形式封裝幾何數據。幾何也有一個對InputLayout類型的對象的引用,它存儲關於幾何數據的信息。 InputLayout實例在幾何實例之間共享。我正在使用InputLayout在「draw call」(例如glDrawArrays())之前正確配置管道(例如glVertexAttribPointer())。配置例程的效率有點低,因爲我必須掃描活動頂點着色器的活動屬性,然後在活動的InputLayout實例中查找這些屬性。我想通過使用VAO自動化整個過程。針對不同的VBO使用OpenGL VAO
這就是問題所在。我應該爲每個着色器/ InputLayout對或每個着色器/幾何對創建一個VAO嗎?通過爲每個着色器/ InputLayout對創建VAO,我必須在每次繪製調用之前更改VAO中的緩衝區綁定。是否值得重新渲染我的渲染器併爲每個着色器/幾何對創建VAO?
那就是我想知道的。謝謝 – runnydead