D3D9學習筆記之渲染狀態關鍵字

2021-09-28 20:41:22 字數 2081 閱讀 2324

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...