Wie genau müssen die Werte bei gluLookAt sein?
-
Hoi,
In allen Erklärungen zur Funktion gluLookAt steht, dass
der Up-Vector senkrecht auf der Linie Center<->Eye
sein muss.Aber wie genau muss dass sein?
Funktioniert es nicht mehr, wenn der Winkel nur 89 oder 85
Grad beträgt, oder ist dann alles nur ein bischen "gestaucht"?mfg Nock
-
Der Up-Vector sagt einfach, wo oben ist. Er muss nicht 90% auf dem Blickvektor stehen. Insofern du nicht vorhast, dein "oben" zu ändern und ein überschwenken der Kamera andersweitig verhinderst, musst du deinen UpVector während des Programmlaufs nicht einmal ändern.
-
Ahhhh, Danke

Und ich kontrolliere seit 2 Wochen alle meine Matrizen Klassen usw und frage mich warum nichts klappt...
-
Pellaeon schrieb:
Der Up-Vector sagt einfach, wo oben ist. Er muss nicht 90% auf dem Blickvektor stehen....
Hmmm, sicher ? Diese Werte wandern doch letztendlich in die Ansichtsmatrix
oder nicht ?
-
lol 90 %
junge lehrn mal unterschied zw ° und %^^
-
Um die Vertices des Worldspace in den ViewSpace zu transformieren, werden zunächst die drei Basisvektoren R,U und F des neuen Koordinatensystem berechnet (R,U,F entsprechen den x,y,z Achsen des alten Koordinatensystems).
Wenn E der Eye Point, A der Look At Vector und V der View Up Vector ist, so lassen sich R,U,F berechnen mit:F = (A-E)/|A-E|
R = cross(V,F) / |cross(V,F)|
U = cross(F,R)F ist also ein Einheitsvektor in Richtung der Blickrichtung, R ist "die neue x-Achse die nach rechts zeigt" und U die neue y-Achse.
Aus den Gleichungen sieht man, dass R aus dem Kreuzprodukt von V und F berechnet wird und U wiederrum aus dem Kreuzprodukt von F und R. Da U aus F und R berechnet wird, steht er IMMER orthognal auf diese 2 Vektoren und V muss NICHT orthogonal auf der Blickrichtung und dem View Up Vector stehen.