Aracılığıyla paylaş


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

 

Aydınlatma Matematiği