Vordefinierte Matrizen

Zusätzlich zu den Benutzer-definierten- und den Material-Matrizen gibt es noch einige vordefinierte 4x4-Fließkommamatrizen, auf die sowohl von Shadern als auch vom Skript in Renderevents zugegriffen werden kann. Sie haben für Shader und Skripte dieselben Namen.

matView

Die View Transformation 4x4 Matrix, gibt die View Position und Winkel an.

matViewInv

Die inverse View Transformations Matrix.

matProj

Die View Projection 4x4 Matrix, gibt den view aspect, arc, und clip_near / clip_far Bereich an.

matViewProj

Das Produkt aus View-Transformation und Projektionsmatrix  A7.07 LC .

matWorld

Die Welt-Transformations-4x4 Matrix, wird durch Entity-Position, -Skalierung und -Ausrichtung bestimmt.

matWorldInv

Die umgekehrte Welt-Transformationsmatrix (nur Shader).

matWorldView

Das Produkt aus Welt- und View-Matrix (nur Shader).

matWorldViewProj

Das Produkt aus Welt-, View- und Projektions-Matrix (nur Shader).

matTexture

Die Textur-Transformationsmatrix; wird durch die uv-Werte der Entity bestimmt.  LC   A7.07 

matMtl

Eine Universalmatrix, die vom material.matrix-Array aufgestellt wird (nur Shader).

matEffect

Eine Universal-float4x4-Matrix, die mit der mat_effect-Funktion auf jedweden var[16]-Array gesetzt werden kann (nur Shader). .

matEffect1..matEffect8

8 allgemeingültige float4x4-Matrizen, die mittels der Pointer matEffect1..matEffect8 auf jedweden float[16]-Array gesetzt werden können.  LC   A7.08 

Bemerkungen:

Beispiel:

float4x4 matWorldViewProj : WORLDVIEWPROJ;
float4 vecTime;


void vs_flicker_red(
   in float4 iPos : POSITION,
   in float2 iTex0 : TEXCOORD0,
   in float2 iTex1 : TEXCOORD1,
   out float4 oPos : POSITION,
   out float4 oDiffuse: COLOR0,
   out float2 oTex0 : TEXCOORD0,
   out float2 oTex1 : TEXCOORD1)
   {
     oPos = mul(iPos,matWorldViewProj);
     oTex0 = iTex0;
     oTex1 = iTex1;
     oDiffuse.r = fmod(vecTime.w * 0.1,1.0);
     oDiffuse.g = 0.0;
     oDiffuse.b = 0.0;
     oDiffuse.a = 1.0;
   }


technique flicker
{
   pass p0
   {
     VertexShader = compile vs_1_1 vs_flicker_red();

   }
}

Siehe auch:

Material, shaders, matrix, mat_identity, mat_scale, mat_set, mat_inverse, mat_transpose, mat_multiply

► Aktuelle Version Online