OpenGL學習筆記 9 顏色混合

2021-09-06 01:36:28 字數 1224 閱讀 9479

紅色三角形在下,綠色三角形在上

比如玻璃,假設玻璃是綠色的,那麼我們還可以看到下面的一層.即將兩種顏色混合了

glblendfunc (gl_src_alpha, gl_one_minus_src_alpha);

如下效果

綠色三角形可以看到紅色部分.

這裡稱底下的紅色三角形的顏色為目標顏色(下層),綠色為源顏色(上層)

呼叫glenable(gl_blend)開始混合功能,gldisable(gl_blend)關閉混合功能

之後使用glblendfunc 函式,選擇混合選項

好比畫家將兩種顏色混合了,但並非是透明的

這個選項用glblendfunc函式來完成

glblendfunc(gl_one, gl_one);

完整的示例,來自紅寶石書

#include 

#include

static int leftfirst = gl_true;

/* initialize alpha blending function.

*/static void init(void)

static void drawleft********(void)

static void drawright********(void)

void display(void)

else

glflush();

}void reshape(int w, int h)

void keyboard(unsigned char key, int x, int y)

}/* main loop

* open window with initial window size, title bar,

* rgba display mode, and handle input events.

*/int main(int argc, char** argv)

opengl顏色混合

注源顏色是當前顏色,目標顏色是背景顏色。顏色混合公式 混合之後的rgb顏色分量 影象的rgb顏色分量 alpha值 背景的rgb顏色分量 1 alpha值 開啟顏色混合步驟 1,glblendfunc gl src alpha,gl one 開啟混合 gldisable gl depth test ...

OpenGL顏色混合 glBlendFunc

混合是什麼呢?混合就是把兩種顏色混在一起。具體一點,就是把某一畫素位置原來的顏色和將要畫上去的顏色,通過某種方式混在一起,從而實現特殊的效果。假設我們需要繪製這樣乙個場景 透過紅色的玻璃去看綠色的物體,那麼可以先繪製綠色的物體,再繪製紅色玻璃。在繪製紅色玻璃的時候,利用 混合 功能,把將要繪製上去的...

OpenGL實現顏色混合

在opengl中,我們兩個物體如果疊在一起,想看到他們混合後的顏色就可以利用它所提供的api glblendfunc 下面用數學公式來表達一下這個運算方式。假設源顏色的四個分量 指紅色,綠色,藍色,alpha值 是 rs,gs,bs,as 目標顏色的四個分量是 rd,gd,bd,ad 又設源因子為 ...