我通過構建或修改緩存區來呈現場景,我給glBufferData
。我對頂點數組對象的理解是,它們允許我跳過手動綁定所有使用的VBO。當我更新我的緩衝區時,情況仍然如此嗎?如果我需要更換VBO,是否需要重建我的VAO?
我可以綁定我的VAO,調用glBufferData
更新頂點和索引(我目前只有兩個VBO),然後渲染?
我可以在VBO中使用內存映射嗎?然後我可以綁定VAO,修改緩衝區,然後渲染?
VAO究竟做了什麼?其功能僅僅是一個存儲和自動將頂點屬性綁定到VBO的快捷方式嗎?它是否擁有數據或綁定的所有權?
因此,VAO不會影響我綁定哪個VBO?我需要綁定它們並在它們上調用'glBufferData'。 – 2012-01-11 14:04:24
@Robert Rouhani考慮到你的頂點佈局對於大多數繪製都是相同的,我覺得你必須爲每個VBO存儲一組不同的頂點屬性。我花了一段時間試圖避免這一點,但沒有得到任何地方。 – Zebrafish 2016-11-27 06:41:47
@TitoneMaurice佔用的空間量應該是最小的(按字節順序),額外的GL調用綁定不同的屬性不應該是你的瓶頸。最想做的事情就是實例化,在我看來,其他任何東西都是不必要的/過早的優化。 – 2016-11-27 15:55:52