D3D 中颜色值的运算

D3D 中颜色值的运算
漫反射颜色,纹理颜色,光照效果表现
         光源所造成的明暗效果是表现在Diffuse上,也就是设定的Material上的。纹理要想表现出光照的明暗效果,就要启用纹理阶段混合了
  1    D3DMATERIAL9 mtrl;
 
2    ZeroMemory(  & mtrl, sizeof(D3DMATERIAL9) );
 
3
 
4    mtrl.Diffuse.r  =  mtrl.Ambient.r  =   1 .0f;
 
5    mtrl.Diffuse.g  =  mtrl.Ambient.g  =   1 .0f;
 
6    mtrl.Diffuse.b  =  mtrl.Ambient.b  =   1 .0f;
 
7    mtrl.Diffuse.a  =  mtrl.Ambient.a  =   0 .0f;
 
8    g_pd3dDevice -> SetMaterial(  & mtrl );
 
9     // 漫反射颜色和纹理颜色叠加,光照效果折痕表现。光源效果只表现在diffuse上
10    g_pd3dDevice -> SetTextureStageState( 0 ,D3DTSS_COLOROP,D3DTOP_MODULATE);
11    g_pd3dDevice -> SetTextureStageState( 0 ,D3DTSS_COLORARG1,D3DTA_TEXTURE);
12    g_pd3dDevice -> SetTextureStageState( 0 ,D3DTSS_COLORARG2,D3DTA_DIFFUSE);

       

你可能感兴趣的:(D3D 中颜色值的运算)