關於使用VBO渲染

2021-07-10 03:30:13 字數 1042 閱讀 1760

根據opengl所支援vbo的情況,有三種方式執行渲染

(1)支援opengl 1.5,使用標準的vbo函式

// 設定頂點緩衝

glgenbuffers(1, &ivertexbuffer);

glbindbuffer(gl_array_buffer, ivertexbuffer);

glbufferdata(gl_array_buffer, sizeof(vertex_list),

vertex_list, gl_static_draw);

// 設定索引緩衝

glgenbuffers(1, &iindexbuffer);

glbindbuffer(gl_element_array_buffer, iindexbuffer);

glbufferdata(gl_element_array_buffer, sizeof(index_list),

index_list, gl_static_draw);

(2)不支援opengl 1.5,但以arb擴充套件的形式支援vbo

glgenbuffersarb(1, &ivertexbuffer);

glbindbufferarb(gl_array_buffer_arb, ivertexbuffer);

glbufferdataarb(gl_array_buffer_arb, sizeof(vertex_list),

vertex_list, gl_static_draw_arb);

glgenbuffersarb(1, &iindexbuffer);

glbindbufferarb(gl_element_array_buffer_arb, iindexbuffer);

glbufferdataarb(gl_element_array_buffer_arb, sizeof(index_list),

index_list, gl_static_draw_arb);

(3)不支援vbo,使用vertex array代替

關於VBO的一些東西

有時候你不得不承認,opengl的開發真的不如directx,特別對於入門的人來說,乙個簡單的概念可以讓我嚼上幾天不得騎姐。vbo可以說是opengl中里程碑似的東西,通過vbo我們可以把需要渲染的圖元的頂點資訊,直接上傳儲存在gpu的視訊記憶體中。由於最早的opengl不支援例項化繪製,導致在繪製...

vbo和fbo的結合使用

效果圖 上圖實現了這樣乙個效果 大的正方體每個面,都有乙個旋轉的小正方體 實現原理 1,建立fbo 2,繪製乙個場景,但這個場景並不顯示到視窗 3,將這個場景渲染到乙個建立的動態紋理上面 4,再次繪製其他場景 5,將fbo裡面的動態紋理貼到繪製的其他模型上 實現 virtual void rende...

OpenGL學習 使用VBO和FBO

一 概念 這兩個都是buffer object,說白了就是一塊儲存區域。vbo 頂點緩衝對像 是用來加快渲染的速度,主要思想是在顯示卡中分配一塊視訊記憶體空間,然後一次性將cpu中的資料傳輸過來,這樣顯示的時候就會直接輸出到顯示器,這樣做的動機是因為cpu到gpu傳輸的瓶頸。fbo 幀緩衝對像 是用...