Eine effektive Möglichkeit zur Berechnung der up-Vektor für den gluLookAt die Punkte auf der y-Achse am meisten?
Brauche ich zum erstellen einer up-Vektor, wenn die Kamera schaut in einem beliebigen Winkel (außer direkt nach oben oder unten, weil der Vektor nach oben würde senkrecht zu der y-Achse).
Den up-Vektor muss senkrecht auf der Sichtlinie-Kurs. Wenn die Sichtlinie nicht entlang der y-Achse können Sie sich vorstellen, einen Kreis um das Auge und der Sichtlinie, wo Sie die up-Vektor sein könnte. Auf diesem Kreis, gibt es ein Punkt, die weiter geht, bis die y-Achse als jeder andere Punkt. Dies ist, was ich von meiner up-Vektor zu werden.
Ich bin sicher, ich kann eine Lösung, aber ich vermute, die Leute hätten dies getan viele Male zuvor, und ich will die beste Lösung ist.
Meine Kamera, wenn die Verwendung dieser zumindest nicht direkt nach oben oder unten, die y-Achse, so gibt es kein problem.
Du musst angemeldet sein, um einen Kommentar abzugeben.
gluLookAt
erfordert nicht, dass der up-Vektor, die Sie senkrecht zu der Richtung, die Sie suchen. So können Sie einfach 0,1,0.Wenn Sie wirklich, wirklich wollen zu kommen mit einer senkrechten Vektor, werfen Sie einen Blick auf die man-Seite für
gluLookAt
und tun, was Sie tun, um uMeisten kommerziellen Spiele verwenden Sie die cross-Produkt zu erzeugen, eine senkrecht.
Normalisieren Sie Ihren look vector.
Nehmen Sie das Kreuzprodukt der Ihren look Vektor und einem Vektor von 0,1,0. Dies gibt Ihnen Ihr Recht vector.
Nehmen Sie das Kreuzprodukt Ihrer rechten Vektor-und Ihr Aussehen-Vektor. Das ist Ihre, bis ein neuer Vektor, der senkrecht zu Ihren ursprünglichen Aussehen Vektor.