共用方式為


Direct3D 9 (相機空間轉換)

相機空間端點的計算方式為使用全球檢視矩陣轉換物件端點。

V = V * wvMatrix

相機空間頂點標準的計算方式為,使用全球檢視矩陣的反向調換來轉換物件標準。 全球檢視矩陣不一定是正交。

N = N * (wvMatrix⁻ー) T

矩陣反向和矩陣調換於4 x 4 矩陣運作。 乘積結合標準與產出之 4 x 4 矩陣的 3 x 3 部分。

如果轉譯狀態D3DRENDERSTATE_NORMALIZENORMALS設定為 TRUE,在轉換成相機空間之後,頂點常態向量會正規化,如下所示:

N = norm(N)

相機空間光線位置的計算方式為,使用檢視矩陣轉換光線來源位置。

Lp = Lp * vMatrix

相機空間光線方向的計算方式為,將光線來源方向乘以檢視矩陣、正規化以及取補數結果。

Ldir = -norm (Ldir * wvMatrix)

針對D3DLIGHT_POINT和D3DLIGHT_SPOT光線方向的計算方式如下:

Ldir = norm (V * Lp) ,其中參數定義于下表中。

參數 預設值 類型 描述
Ldir N/A D3DVECTOR 從物件頂點到光線的方向向量
V N/A D3DVECTOR 相機空間的頂點位置
wvMatrix 身分識別 D3DMATRIX 複合矩陣包含全球及檢視轉換
N N/A D3DVECTOR 頂點垂直
Lₚ N/A D3DVECTOR 相機空間的光線位置
vMatrix 身分識別 D3DMATRIX 矩陣包含檢視轉換

 

光源的數學