Kamera-Pfad mit Hermite-Kurve < Matrizen < Lineare Algebra < Hochschule < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 17:33 Sa 26.02.2011 | Autor: | tomu |
Hallo,
habe ein kleines Problem, was ursprünglich aus dem Bereich der Computeranimation kommt, aber doch sehr mathematisch ist..
Und zwar würde ich gerne mathematisch beschreiben, wie ich einen Kamera-Pfad mit Hilfe einer Hermite-Kurve realisiere. Also welche Werte sind für die Geschwindigkeit, die Blickrichtung usw. Das ganze eben recht mathematisch. Ich weiß ja schon das die Tangente die Geschwindigkeit und auch dir Richtung bestimmt, aber wie ist das genau definiert?
Im Internet finde ich jede menge Tutorials, wie ich das ganze mit Maya oder auch anderen Tools machen kann, aber wie das ganze mathematisch funktioniert, da gibt es irgendwie kaum was sinnvolles.
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 20:57 Sa 26.02.2011 | Autor: | felixf |
Moin,
> habe ein kleines Problem, was ursprünglich aus dem Bereich
> der Computeranimation kommt, aber doch sehr mathematisch
> ist..
> Und zwar würde ich gerne mathematisch beschreiben, wie
> ich einen Kamera-Pfad mit Hilfe einer Hermite-Kurve
> realisiere. Also welche Werte sind für die
> Geschwindigkeit, die Blickrichtung usw. Das ganze eben
> recht mathematisch. Ich weiß ja schon das die Tangente die
> Geschwindigkeit und auch dir Richtung bestimmt, aber wie
> ist das genau definiert?
es gibt verschiedene Moeglichkeiten, das ganze zu modellieren.
Erstmal zum Thema Hermite-Splines: ich fand damals folgenden Artikel sehr hilfreich.
Dann zur Kamera selber: es gibt verschiedene Moeglichkeiten, die zu modellieren. Eine Moeglichkeit, ist Standpunkt der Kamera und "Blickpunkt" (ein Punkt im Raum in dessen Richtung die Kamera blickt) zu nehmen, und beide Punkte entlang solchen Hermite-Splines zu bewegen (oder entlang anderen Kurven, es gibt ja noch viele andere Splines, etwa Bezier-Kurven).
Zusaetzlich braucht man dann noch einen Drehwinkel (etwa ebenfalls animiert durch Hermite-Splines), um -- bis auf wenige Spezialsituationen, etwa wenn die Kamera senkrecht nach oben schaut oder nach unten -- die Kamera vollstaendig festzulegen.
Um das praktisch umzusetzen: sei P die Position der Kamera und Q der "Blickpunkt", und sei [mm] $\phi$ [/mm] der Drehwinkel ("roll"). Dann kannst du ein Orthonormalsystem fuer die Kamera wie folgt konstruieren:
* der z-Vektor [mm] $K_z$ [/mm] ist $Q - P$ normalisiert (also durch die euklidische Norm geteilt, so dass der Vektor Laenge 1 hat);
* der x-Vektor [mm] $K_x$ [/mm] ist [mm] $K_z \times [/mm] (0, 1, 0)$, also das Kreuzprodukt mit einem Vektor der senkrecht nach oben zeigt, und dann wieder normalisieren;
* der y-Vektor [mm] $K_y$ [/mm] ist dann [mm] $K_x \times K_z$ [/mm] (eventuell mit einem Minus, damit man die richige Orientierung hat).
Jetzt muss man schliesslich noch [mm] $K_x$ [/mm] und [mm] $K_y$ [/mm] mit einer Drehmatrix mit Drehachse [mm] $K_z$ [/mm] und Winkel [mm] $\phi$ [/mm] drehen, um schliesslich das Kamera-Orthonormalsystem (Koordinatensystem) zu erhalten. Und damit kannst du jetzt die Transformationsmatrix hinschreiben, die die Weltkoordinaten in Kamerakoordinaten ueberfuehrt.
LG Felix
|
|
|
|