OpenGL中的混合 Blending

2021-08-22 10:46:31 字數 1548 閱讀 1589

其中

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);

//enablesmoothshading

//colorrefcolor=::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

);//

blackbackground

glcleardepth(

1.0f

);//

depthbuffersetup

glenable(gl_depth_test);

//enablesdepthtesting

gldepthfunc(gl_lequal);

//thetypeofdepthtestingtodo

glhint(gl_perspective_correction_hint,gl_nicest);

//reallyniceperspectivecalculations

glcolor4f(

1.0f

,1.0f

,1.0f

,0.5

);//

fullbrightness.50%alpha

glblendfunc(gl_src_alpha,gl_one);

//settheblendingfunctionfortranslucency

return

true;

//initializationwentok}

最後在void copengldemoview::onkeyup(uint nchar, uint nrepcnt, uint nflags)中加入對b按鍵的事件處理**:

case'b

':else

}bpressed

=false;

break;}

最終效果如圖所示:

OpenGL中的混合 Blending

nehe 教程的第 8課,仍然採用 mfc框架來實現。其中 initgl 需要做些修改,加入混合操作所需要的 boolcopengldemoview initgl glvoid glenable gl texture 2d gllightfv gl light1,gl ambient,lightam...

OpenGL混合模式

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

OpenGL 混合功能

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