OGL 累積快取

2021-07-13 20:26:24 字數 648 閱讀 4239

累積快取

ogl 3.1後開始廢棄累計快取區了,累計快取區實現的全景抗鋸齒,前景或景深,運動模糊的效果,可以

用 alpha和多重取樣覆蓋,顏色快取區中的浮點畫素格式用fragment shader很容易實現。

由於累積緩衝區會帶來大記憶體的開銷,所以在實時應用程式中比較少用。

示例:操作 描述 

gl_accum 把顏色緩衝區的顏色值進行縮放後,累加到累積緩衝區 

gl_load 把顏色緩衝區的顏色值進行縮放後,替換掉累積緩衝區的顏色值 

gl_return 把累積緩衝區的顏色值縮放後,拷貝回顏色緩衝區 

gl_mult 把累積緩衝區的顏色值縮放後,替換掉原累積緩衝區的顏色值 

gl_add 把累積緩衝區的顏色值縮放後,累加到累積緩衝區 

void renderscene()

else

} glaccum(gl_return, 1.0f);// 將累計快取區中的顏色,拷貝回顏色快取區,實現模糊背景或前景效果。

glutswapbuffers(); }

所在的階段是:

寫入到當前的顏色快取區的源畫素中(這裡只是過了畫素shader,顏色裁剪,alpha,stencil, depth測試),還需要進行混合抖動邏輯操作與目標顏色快取區組合得到輸出。

累積快取及其應用

opengl中存在各種緩衝區,用以實現不同功能,參考緩衝區簡介 累積快取 accumulate buffer 就是一種,它主要為了輔助累積計算。例如 運動模糊 全域性反走樣和軟陰影等。對於累積快取的操作,需要使用glaccum 等函式進行。下面是涉及到的主要函式 一 void glclearaccu...

OGL(教程22) 模型載入

背景知識 我們不能手動的建立複雜的模型。正如你所想象的,為每個頂點指定位置和其他的屬性,並且要在縮放的時候保持正確是不現實的。乙個盒子 金字塔或者是簡單的表面是ok的,但是對於人臉這種複雜的網格結構就不可行了。現實的世界或者是商業的應用,處理的網格模型都是通過設計師設計的模型,他們使用blender...

Accumulation Buffer(累積快取)

累積快取是為合成多幅影象而設計的,它不是簡單的用引入象素片元來代替象素值,而是將片元進行縮放,然後加到已有的象素值上。為了經過一系列的混合操作後能夠保持精度,累積快取每個顏色分量的位數要比一般的視覺化系統要多。我們可以象其他快取一樣清空累積快取,可以用glclearaccum 來設定紅 綠和藍色分量...