OpenGL中VA,VAO,VBO和EBO的區別
阿新 • • 發佈:2019-04-09
頂點數組對象 就是 置頂 執行 dash fbo 內存 pen -o
1,頂點數組(Vertex Array)
VA,頂點數組也是收集好所有的頂點,一次性發送給GPU。不過數據不是存儲於GPU中的,繪制速度上沒有顯示列表快,優點是可以修改數據。
4.VBO(Vertex Buffer Object)頂點緩沖區對象
VBO,全稱為Vertex Buffer Object,與FBO,PBO並稱,但它實際上老不少。就某種意義來說,他就是VA(Vertex Array)的升級版。
通過頂點緩沖對象(Vertex Buffer Objects, VBO)管理這個內存,它會在GPU內存(通常被稱為顯存)中儲存大量頂點。使用這些緩沖對象的好處是我們可以一次性的發送一大批數據到顯卡上,而不是每個頂點發送一次。
5.VAO(Vertex Array Object)頂點數組對象
VAO的全名是Vertex Array Object,首先,它不是Buffer-Object,所以不用作存儲數據;其次,它針對“頂點”而言,也就是說它跟“頂點的繪制”息息相關。(VAO和VA沒有任何關系)
VAO)可以像頂點緩沖對象那樣被綁定,任何隨後的頂點屬性調用都會儲存在這個VAO中。這樣的好處就是,當配置頂點屬性指針時,你只需要將那些調用執行一次,之後再繪制物體的時候只需要綁定相應的VAO就行了。這使在不同頂點數據和屬性配置之間切換變得非常簡單,只需要綁定不同的VAO就行了。
OpenGL的核心模式要求我們使用VAO,所以它知道該如何處理我們的頂點輸入。
5.EBO(Element Buffer Object)索引緩沖對象
在渲染頂點這一話題上我們還有最有一個需要討論的東西——索引緩沖對象(Element Buffer Object,EBO,也叫Index Buffer Object,IBO)。
和頂點緩沖對象一樣,EBO也是一個緩沖,它專門儲存索引,OpenGL調用這些頂點的索引來決定該繪制哪個頂點。
OpenGL中VA,VAO,VBO和EBO的區別