OpenGL中的混合 Blending

2021-09-05 17:34:06 字數 2020 閱讀 4433

nehe

教程的第

8課,**仍然採用

mfc框架來實現。 其中

initgl

需要做些修改,加入混合操作所需要的**:

boolcopengldemoview::initgl(glvoid)                                       

glenable(gl_texture_2d);                            

//gllightfv(gl_light1, gl_ambient, lightambient);                

//設定環境光

gllightfv(gl_light1, gl_diffuse, lightdiffuse);                

//設定漫射光

gllightfv(gl_light1, gl_position,lightposition);            

//設定光源位置

glenable(gl_light1);                            

//啟用一號光源

glshademodel(gl_smooth);                            

//enable smooth shading

//colorref color = ::getsyscolor(color_3dface);

//glclearcolor((float)getrvalue(color)/255.0f,

//(float)getgvalue(color)/255.0f,

//(float)getbvalue(color)/255.0f,

glclearcolor(

0.0f

, 0.0f

, 0.0f

, 0.5f

);                

//black background

glcleardepth(

1.0f

);                                    

//depth buffer setup

glenable(gl_depth_test);                            

//enables depth testing

gldepthfunc(gl_lequal);                                

//the type of depth testing to do

glhint(gl_perspective_correction_hint, gl_nicest);    

//really nice perspective calculations

glcolor4f(

1.0f

, 1.0f

, 1.0f

, 0.5

);                    

//full brightness.  50% alpha

glblendfunc(gl_src_alpha,gl_one);                    

//set the blending function for translucency

return

true;                                        

//initialization went ok}

最後在void copengldemoview::onkeyup(uint nchar, uint nrepcnt, uint nflags)

中加入對

b按鍵的事件處理**:

case'b

':else

}bpressed 

=false;

break;}

最終效果如圖所示:

OpenGL中的混合 Blending

其中 initgl 需要做些修改,加入混合操作所需要的 boolcopengldemoview initgl glvoid glenable gl texture 2d gllightfv gl light1,gl ambient,lightambient 設定環境光 gllightfv gl li...

OpenGL混合模式

glblendfunc是這樣 第乙個引數指出源圖元的alpha的取值計算方法,第二個引數指出目標處的alpha的計算方法。opengl會把源顏色和目標顏色各自取出,並乘以乙個係數 源顏色乘以的係數稱為 源因子 目標顏色乘以的係數稱為 目標因子 然後相加,這樣就得到了新的顏 色。也可以不是相加,新版本...

OpenGL 混合功能

核心 void renderscene glfloat vgreen glfloat vblue glfloat vblack 繪製四個固定矩形 glt shader identity 單元著色器 shadermanager.usestockshader glt shader identity,vr...