Computergrafik

GLSL Funktionen

GLSL Konstruktoren, Selektoren, Swizzles | | GLSL Kontrollstrukturen

Die Vektor Addition, Subtraktion und Multiplikation mit + , - , * erfolgt komponentenweise (Achtung: für Multiplikation ungewöhnlich).

Matrix zu Matrix Operationen (+, -, *) und Matrix zu Vektor Multiplikationen (*) sind ebenfalls unterstützt.

Die Multiplikation und Division mit skalaren Werten an Vektoren und Matrizen funktioniert ebenfalls, liefert aber oft wegen der Besonderheit der w-Komponente nicht das gewünschte Ziel.

Weitere Vektor-Multiplikationen:

  • dot(v1,v2)
    Skalarprodukt
  • cross(v1,v2)
    Kreuzprodukt

Weitere reine Vektorfunktionen

  • length(v)
    Ergibt die Länge eines Vektors (Achtung: Bei 4D-Vektoren meist nicht das gewünschte Ergebnis)
  • normalize(v)
    Teilt einen Vektor durch seine Länge → Länge des Ergebnisvektors ist 1
  • reflect(v,n)
    Funktion die den Vektor v an der Normalen n spiegelt (v.a. für Beleuchtungsberechnung)

Weitere Funktionen

  • mix(v1,v2,s)
    Interpolation zwischen v1 und v2; v1 wird bei $s=0$ angenommen, v2 bei $s=1$
  • clamp(v,vmin,vmax)
    Beschränkt den Wertebereich von v auf den Bereich [vmin..vmax]; Werte außerhalb des Bereichs werden auf die Grenzen gesetzt

Funktionen die auf jede Komponente einzeln angewandt werden (und daher meist nur mit Skalaren benutzt werden)

  • min(v1,v2), max(v1,v2)
  • mod(v1,v2) (Modulo-Operation, Rest der Division)
  • sin(v), cos(v), acos(v) (Arcus-Cosinus)
  • pow(v,s) (Potenz $v^s$), exp(v) (Exponenzialfunktion $e^v$)
  • sqrt(v) ($\sqrt v$), inversesqrt(v) ($\frac{1}{\sqrt v}$)


GLSL Konstruktoren, Selektoren, Swizzles | | GLSL Kontrollstrukturen

Options: