Kamera Alanı Dönüşümleri (Direct3D 9)
Kamera alanında köşeler, nesne köşeleri dünya görüntüleme matrisi ile dönüştürülerek hesaplanır.
V = V * wvMatrix
Kamera alanında köşe normalleri, nesne normalleri dünya görünüm matrisinin ters dönüşümleri ile dönüştürülerek hesaplanır. Dünya görünüm matrisi ortogonal olabilir veya olmayabilir.
N = N * (wvMatrix⁻¹)T
Matris ters çevirme ve matris dönüştürmesi 4x4 matris üzerinde çalışır. Çarpma, normali sonuçta elde edilen 4x4 matrisinin 3x3 bölümüyle birleştirir.
İşleme durumu D3DRENDERSTATE_NORMALIZENORMALS true olarak ayarlanırsa, kamera alanına dönüştürme işleminden sonra köşe normal vektörleri aşağıdaki gibi normalleştirilir:
N = norm(N)
Kamera alanında ışık konumu, ışık kaynağı konumu görüntüleme matrisi ile dönüştürülerek hesaplanır.
Lp = Lp * vMatrix
Yön ışığı için kamera alanında ışığın yönü, ışık kaynağı yönü görünüm matrisi ile çarpılarak, normalleştirilerek ve sonucun olumsuzlaştırılmasıyla hesaplanır.
Ldir = -norm(Ldir * wvMatrix)
D3DLIGHT_POINT ve D3DLIGHT_SPOT için ışık yönü aşağıdaki gibi hesaplanır:
Ldir = norm(V * Lp), burada parametreler aşağıdaki tabloda tanımlanmıştır.
Parametre | Varsayılan değer | Tür | Açıklama |
---|---|---|---|
Ldir | YOK | D3DVECTOR | Nesne köşesinden ışığa yön vektör |
V | YOK | D3DVECTOR | Kamera alanında köşe konumu |
wvMatrix | Kimlik | D3DMATRIX | Dünyayı ve görünüm dönüşümlerini içeren bileşik matris |
N | YOK | D3DVECTOR | Köşe normal |
Lp | YOK | D3DVECTOR | Kamera alanında ışık konumu |
vMatrix | Kimlik | D3DMATRIX | Görünüm dönüşümünü içeren matris |
İlgili konular