OpenGL建立乙個幀緩衝

2021-09-28 22:44:37 字數 1485 閱讀 9539

//1.定義幀緩衝變數名

unsigned int gbuffer;

2.建立幀緩衝

glgenframebuffers(1, &gbuffer);

//3.將幀緩衝繫結到gl_framebuffer

glbindframebuffer(gl_framebuffer, gbuffer);

//4.將gposition紋理變數儲存到剛建立的幀緩衝gbuffer中

glframebuffertexture2d(gl_framebuffer, gl_color_attachment0, gl_texture_2d, gposition, 0);

//1.定義幀緩衝變數名

unsigned

int gbuffer;

2.建立幀緩衝

glgenframebuffers(1

,&gbuffer)

;//3.將幀緩衝繫結到gl_framebuffer

glbindframebuffer

(gl_framebuffer, gbuffer)

;unsigned

int gposition, gnormal, galbedo, gportalmap;

//要儲存的變數

glgentextures(1

,&gposition)

;//生成1個紋理

glbindtexture

(gl_texture_2d, gposition)

;glteximage2d

(gl_texture_2d,

0, gl_rgb16f, window_width, window_height,

0, gl_rgb, gl_float,

null);

gltexparameteri

(gl_texture_2d, gl_texture_min_filter, gl_nearest)

;gltexparameteri

(gl_texture_2d, gl_texture_mag_filter, gl_nearest)

;gltexparameteri

(gl_texture_2d, gl_texture_wrap_s, gl_clamp_to_edge)

;gltexparameteri

(gl_texture_2d, gl_texture_wrap_t, gl_clamp_to_edge)

;//4.將gposition紋理變數儲存到剛建立的幀緩衝gbuffer中

glframebuffertexture2d

(gl_framebuffer, gl_color_attachment0, gl_texture_2d, gposition,0)

;

OpenGL 學習筆記 幀緩衝與後期處理

原文對應 learnopengl cn 高階opengl 幀緩衝。預設緩衝幀與幀緩衝 因為計算本身是消耗時間的,所以如果不採用雙緩衝,則會出現影象閃爍的現象,有了雙緩衝之後,顯示前緩衝區,在後緩衝區繪圖。然後交替交換顯示,只要有乙個拷貝的過程,就可以完成繪圖。這個後緩衝區,就是opengl 或者dx...

高階OpenGL渲染管線之幀緩衝(三)

幀緩衝包括之前學的 用於寫入顏色值的顏色緩衝 用於寫入深度資訊的深度緩衝和允許我們根據一些條件對齊特定片段的模板緩衝。他們都儲存在記憶體中,我們也可以定義自己的幀緩衝。在繫結到gl framebuffer目標之後,所有的讀取和寫入幀緩衝的操作將會影響當前繫結的幀緩衝。我們也可以使用gl read f...

OpenGL基礎34 幀緩衝(中)之附件

在之前的章節,所有的物體都是中規中矩的顯示的,只考慮了光照對物體的影響,那假設想要顯示特殊的效果該怎麼操作呢?例如馬賽克風 將所有的物體都顯示為黑白色,就像上世紀80年代的灰白電視一樣,又或者說將整個場景渲染到一張泛黃的紙上以體現出年代感 當然是修改著色器,事實上,很多地方都是這麼做的,不過有些情況...