Transformering av kamerautrymme (Direct3D 9)
Hörn i kamerautrymmet beräknas genom att objekthörn transformeras med matrisen för världsvyer.
V = V * wvMatrix
Hörnnormaler beräknas i kamerautrymmet genom att transformera objektnormalerna med inverterad transponering av världsvymatrisen. Matrisen för världsvyn kan vara ortoggonisk eller inte.
N = N * (wvMatrix⁻¹)T
Matrisens inversion och matris transponerar fungerar på en 4x4-matris. Multiplicera kombinerar det normala med 3x3-delen av den resulterande 4x4-matrisen.
Om återgivningstillståndet D3DRENDERSTATE_NORMALIZENORMALS är inställt på TRUE-normaliseras hörnens normala vektorer efter omvandlingen till kamerautrymmet på följande sätt:
N = norm(N)
Ljuspositionen i kamerautrymmet beräknas genom att ljuskällans position transformeras med visningsmatrisen.
Lp = Lp * vMatrix
Riktningen mot ljuset i kamerautrymmet för ett riktningsljus beräknas genom att ljuskällans riktning multipliceras med visningsmatrisen, normalisera och negera resultatet.
Ldir = -norm(Ldir * wvMatrix)
För D3DLIGHT_POINT och D3DLIGHT_SPOT beräknas ljusriktningen enligt följande:
Ldir = norm(V * Lp), där parametrarna definieras i följande tabell.
Parameter | Standardvärde | Typ | Beskrivning |
---|---|---|---|
Ldir | Ej tillämpligt | D3DVECTOR | Riktningsvektor från objekthörn till ljus |
V | Ej tillämpligt | D3DVECTOR | Hörnposition i kamerautrymme |
wvMatrix | Identitet | D3DMATRIX | Sammansatt matris som innehåller världen och visar transformeringar |
N | Ej tillämpligt | D3DVECTOR | Hörn normal |
Lp | Ej tillämpligt | D3DVECTOR | Ljus position i kamerautrymme |
vMatrix | Identitet | D3DMATRIX | Matris som innehåller vytransformering |
Relaterade ämnen