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.


Anmelden zum Antworten