Cameraruimtetransformaties (Direct3D 9)
Hoekpunten in de cameraruimte worden berekend door de objecthoeken te transformeren met de wereldweergavematrix.
V = V * wvMatrix
Hoekpuntnormalen, in de cameraruimte, worden berekend door de objectnormalen te transformeren met de inverse transponeren van de wereldweergavematrix. De wereldweergavematrix mag wel of niet orthogonaal zijn.
N = N * (wvMatrix⁻¹)T-
De matrixinversion en matrixtransponeren werken op een 4x4-matrix. De vermenigvuldiging combineert het normale met het 3x3-gedeelte van de resulterende 4x4-matrix.
Als de renderstatus is ingesteld op D3DRENDERSTATE_NORMALIZENORMALS TRUE, worden hoekpunt normale vectoren als volgt genormaliseerd na transformatie naar cameraruimte:
N = norm(N)
De lichtpositie in de cameraruimte wordt berekend door de lichtbronpositie te transformeren met de weergavematrix.
Lp = Lp * vMatrix
De richting naar het licht in de cameraruimte voor een directioneel licht wordt berekend door de lichtbronrichting te vermenigvuldigen met de weergavematrix, normaliseren en het resultaat te negeren.
Ldir = -norm(Ldir * wvMatrix)
Voor de D3DLIGHT_POINT en D3DLIGHT_SPOT wordt de richting naar licht als volgt berekend:
Ldir = norm(V * Lp), waarbij de parameters zijn gedefinieerd in de volgende tabel.
Parameter | Standaardwaarde | Type | Beschrijving |
---|---|---|---|
Ldir | N.V.T | D3DVECTOR | Richtingsvector van objectpunt naar het licht |
V | N.V.T | D3DVECTOR | Hoekpuntpositie in cameraruimte |
wvMatrix | Identiteit | D3DMATRIX | Samengestelde matrix met wereld- en weergavetransformaties |
N | N.V.T | D3DVECTOR | Hoekpunt normaal |
Langspeelplaat | N.V.T | D3DVECTOR | Lichte positie in cameraruimte |
vMatrix | Identiteit | D3DMATRIX | Matrix met de weergavetransformatie |
Verwante onderwerpen