D3D中的渲染狀態簡介


1). 設置着色模式:                                                         

SetRenderState(D3DRS_SHADEMODE, D3DSHADE_FLAT //設置平面着色模式

SetRenderState(D3DRS_SHADEMODE, D3DSHADE_GOURAUD //設置格勞德着色模式

2). 設置多邊形填充模式:

SetRenderStateD3DRS_FILLMODE, D3DFILL_POINT //點填充模式,D3D在多邊形的每個頂點繪制一個像素

SetRenderStateD3DRS_FILLMODE, D3DFILL_WIREFRAME //線填充模式,D3D在多邊形的每個邊繪制一條線

SetRenderStateD3DRS_FILLMODE, D3DFILL_SOLID   //面模式,D3D默認模式,對多邊形的面進行填充

3). 設置全景圖形抗鋸齒:

SetRenderState(D3DRS_MUTISAMPLEANTIALIAS, TRUE)   //抗鋸齒

SetRenderState(D3DRS_MUTISAMPLEANTIALIAS, FALSE)   //不抗鋸齒

4). 設置剔除模式:


SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE) //不剔除任何面

5). 設置光照模式:
SetRenderState(D3DRS_AMBIENT, D3DCOLOR ambientColor); //為整個場景設置環境光
SetRenderState(D3DRS_SPECULARENABLE, TRUE);   //激活鏡面反射計算(D3D默認情況下關閉)

6). 啟動/關閉深度測試:
SetRenderState( D3DRS_ZENABLE, TRUE );    //啟用深度測試

 

7) 設置紋理過濾器

  //線性紋理

SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);

SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR);

  //最近點采樣

SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_ POINT);

SetSamplerState(0, D3DSAMP_MIPFILTER, D3DTEXF_POINT);

  //各向異性紋理過濾

SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_ANISOTROPIC)

SetSamplerState(0, D3DSAMP_MIPFILTER, D3DTEXF_ ANISOTROPIC);

8)

SetRenderState( D3DRS_POINTSCALEENABLE, TRUE ); //打開縮放功能

9)

SetRenderState( D3DRS_POINTSCALE_A , FtoDW( 1.00f ));//設置因子,下同

SetRenderState( D3DRS_POINTSCALE_B , FtoDW( 1.00F ));

SetRenderState( D3DRS_POINTSCALE_C , FtoDW( 1.00f ));

10)

SetRenderState( D3DRS_POINTSIZE_MAX, FtoDW( 5.00f ));//設置點大小上限,下類似

SetRenderState( D3DRS_POINTSIZE_MAX, FtoDW( 5.00f ));

SetRenderState( D3DRS_POINTSPRITEENABLE , TRUE ) ;  //打開點精靈效果

SetRenderState( D3DRS_AMBIENT,  0xffffffff );  //設置環境光顏色開啟ALPHA混合效果

11)設置混合因子:

源:SetRenderState( D3DRS_SRCBLEND , D3DBLEND_SRCALPHA );

目的:SetRenderState( D3DRS_DESTBLEND , D3DBLEND_INVSRCALPHA);

第二個參數是 D3DBLEND的枚舉結構。

 

 

jpg改rar
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM