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 | 矩陣包含檢視轉換 |
相關主題