vbo和fbo的結合使用

2021-08-03 12:56:35 字數 1039 閱讀 3985

效果圖

上圖實現了這樣乙個效果:

大的正方體每個面,都有乙個旋轉的小正方體

實現原理:

1,建立fbo

2,繪製乙個場景,但這個場景並不顯示到視窗

3,將這個場景渲染到乙個建立的動態紋理上面

4,再次繪製其他場景

5,將fbo裡面的動態紋理貼到繪製的其他模型上

**實現

virtual void    render()

_fbo.end();

glclearcolor(0,0,0,1);

glclear(gl_depth_buffer_bit | gl_color_buffer_bit);

glviewport(0,0,_winwidth,_winheight);

//然後再將 _dynamictexture紋理渲染到第二次繪製的立方體上

glbindtexture(gl_texture_2d,_dynamictexture);

//! 繪製到視窗上

drawcube(_winwidth,_winheight);//繪製

eglswapbuffers(_display, _su***ce);

}

fbo的建立

class framebufferid

public:

unsigned _width;

unsigned _height;

unsigned _fboid;

unsigned _depthid;

public:

//建立乙個緩衝區物件

void create(int width, int height)

//使用物件

void begin(unsigned texid)

//使用完,恢復狀態

void end()

};

OpenGL學習 使用VBO和FBO

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

頂點緩衝區VBO和索引緩衝區IBO的結合使用

virtual void oninit 將記憶體中的頂點資料傳送進視訊記憶體 glbufferdata gl array buffer,sizeof pos pos,gl static draw 切換狀態 glbindbuffer gl array buffer,0 建立索引緩衝區 glgenbuf...

ajax和promise的結合使用

在需要依賴完成的ajax請求可使用promise保證執行順序在第乙個請求正確返回後再傳送第二個請求 定義乙個使用promise的ajax請求,這裡依賴jquery 引數中請求url為必填引數 const ajaxpromise param error err 第乙個請求 let step1 then...