根據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 幀緩衝對像 是用...