d3drs_fillmode繪製模式設定,可設定為點,線與面模式3種分別是:(d3dfill_point , d3dfill_wireframe, d3dfill_solid)
d3drs_cullmode消隱模式,按照三角形單元的頂點繞序進行背面消隱,可設定為(禁用背面消隱d3dcull_none,對順時針繞序消隱d3dcull_cw,對逆時針繞序消隱d3dcull_ccw)
d3drs_lighting光照開關,可設定為true與false,開啟光照或禁用光照
d3drs_shademode著色模式 對頂點的著色模式分2種(平面著色,乙個面的顏色根據第乙個頂點的顏色值決定d3dshade_flat,平滑著色,乙個麵中根據各個頂點的顏色值計算線性插值著色d3dshade_gouraud,d3dshade_phong這個不知道是啥子,請指教,好像跟平滑著色一樣效果)
d3drs_zwriteenable深度快取是否可寫入設定 預設為true,設為false為不應許寫入,設為false後渲染幾個模型時將隨渲染的時間決定哪個模型在最前(可見)
d3drs_normalizenormals規範化法向量,預設為不開啟,設true為開啟,false為關閉,使用了自定義的頂點格式中有使用法向量的需要開啟
d3drs_specularenable啟用鏡面光,true為開,false為關閉,預設為關閉,因為鏡面光為反射光,其計算成本高
d3drs_alphablendenable開啟融合,true為開,false為關閉,預設為關閉,使用融合能做出隱身的效果
d3drs_srcblend設定融合因子,使用不同的融合因子和目標融合因子可以做出很多有趣的事情
d3drs_destblend設定目標融合因子,同上面的組合才能做出很多有趣的事情
下面是我用過的一些狀態字:
d3dts_projection:設定投影矩陣,將乙個透視投影矩陣設定為當前的可觀察到的範圍,形狀及可見度,例如:
d3dxmatrix touying;
d3dxmatrixperspectivefovlh
(&touying, d3dx_pi *
0.5f
, dm.width / dm.height,
1.0f
,1000.0f);
//將投影資料寫入矩陣proj d3dx_pi*0.5f
device-
>
settransform
(d3dts_projection,
&touying)
;//設定投影矩陣
d3dxvector3 sxjx
, sxjy
, sxjz
;//攝像機位置,觀察點,世界正方向
d3dxmatrix sxjzd;
//攝像機矩陣
d3dxmatrixlookatlh
(&shexiangji,
&sxjx,
&sxjy,
&sxjz)
;//合併成乙個攝像機矩陣
device-
>
settransform
(d3dts_view,
&shexiangji)
;//告訴d3d9使用這個觀察座標系
d3dxmatrix ss;
d3dxmatrixtranslation
(&ss,
5.0f
,0.0f
,0.0f);
//建立乙個平移矩陣
device-
>
settransform
(d3dts_world,
&ss)
;//世界變化
目前我就知道這些可設定的渲染狀態,還有很多不知道的,我是不會使用sdk的苦逼 D3D9學習筆記之顏色
學習目標 顏色的表示 在 direct3d 中,顏色用 rgb 三元組來表示。將顏色分解為紅色 red 綠色 green 藍色 blue 這三個分量的加性混合決定了最終的顏色。我們可用該三個分量的不同組合來表示上百萬種顏色。rgb資料可用兩種不同的結構來儲存 第一種是結構是 d3dcolor,它實際...
(一)D3D9渲染原理
su ce和texture。使用su ce相對來說比使用texture要簡單一些,但是不如使用texture靈活。抽象概念 direct3d的抽象概念包括 devices 裝置 swap chains 交換鏈 和resources 資源 device 裝置 用於渲染3d場景。例如單色裝置就會渲染黑白...
D3D9學習筆記之光照
學習目標 為了場景的真實感,可為場景增加光照。光照有助於描述實體形狀和立體感。使用光照時,無需自行指定頂點的顏色值 direct3d 會將頂點送入光照計算引擎,依據光源型別,材質以及物體表面相對於光源的朝向,計算出每個頂點的顏色值。基於某種光照模型計算出各頂點的顏色,會使繪製結果更逼真。在 dire...