MedicalVisualization

View Dreibein

Viewmatrix | | ModelView-Sichtweisen

Intuitive Definition der Kamera:

Die negative Z-Achse des Beobachterkoordinatensystems nennt man View Vector oder Blickrichtung.
Die Y-Achse des Beobachterkoordinatensystems nennt man Up Vector.
Der Ursprung des Beobachterkoordinatensystems ist der Augpunkt, d.h. die Beobachterposition.

Kameradreibein:

  • Augpunkt P (in Weltkoordinaten)
  • Up vector u
  • View vector d
  • Right vector $r=d\times u$

Das Dreibein, definiert durch P, u, d, spezifiziert die Koordinatenachsen $(d\times u, u, d)$ des Beobachterkoordinatensystems. Hinweis: Up und View vector müssen normalisiert sein!

$ M_V = \left( \begin{array}{c c c c} \left(\begin{array}{c} d \\ \times \\ u \end{array}\right) & \left(\begin{array}{c} \\ u \\ ~\end{array}\right) & \left(\begin{array}{c} \\ -d \\ ~\end{array}\right) & \left(\begin{array}{c} \\ P \\ ~\end{array}\right) \\ 0 & 0 & 0 & 1 \end{array} \right) ^{-1} = $
$ = \left( \begin{array}{c c} \begin{array}{c c c} ( & d \times u & ) \\ ( & u & ) \\ ( & -d & ) \end{array} & \begin{array}{c} 0 \\ 0 \\ 0 \end{array} \\ \begin{array}{c c c} 0 & 0 & 0 \end{array} & 1 \end{array} \right) \left( \begin{array}{c c} \begin{array}{c c c} 1 & & \\ & 1 & \\ & & 1 \end{array} & \!\!\!-\left( \begin{array}{c} P_x \\ P_y \\ P_z \end{array} \right) \\ \begin{array}{c c c} 0 & 0 & 0 \end{array} & ~1 \end{array} \right) $

Lookat:

  • Augpunkt P (in Weltkoordinaten)
  • Punkt L, auf den die Kamera gerichtet ist
  • Up vector u

Umrechnung zum Kameradreibein: $d = \frac{L-P}{|L-P|}$

Berechnung via GLM bzw LGL:

mat4 V = mat4:lookat(P, L, u);


Viewmatrix | | ModelView-Sichtweisen

Options: