Ich bin ein tutorial zu lernen OpenGL, in dem sie glm::lookAt()
Funktion verwendet, um eine Ansicht zu bauen, aber ich kann nicht die Funktionsweise von glm::lookAt()
verstehen und anscheinend gibt es keine detaillierte Dokumentation von GLM. Kann mir bitte jemand helfen, die Parameter und Funktionsweise von glm::lookAt()
zu verstehen?Understanding Glm :: lookAt()
GLM-Dokumentation sagt:
detail::tmat4x4<T> glm::gtc::matrix_transform::lookAt
(
detail::tvec3<T> const & eye,
detail::tvec3<T> const & center,
detail::tvec3<T> const & up
)
Mein gegenwärtiges Verständnis ist, dass die Kamera bei eye
befindet und in Richtung center
konfrontiert. (Und ich weiß nicht, was die up
ist)
Es könnte helfen, wenn Sie verstanden haben, was eine Ansichtsmatrix tut. Es bildet die Grundlage für Ihren Betrachtungsvektorraum, definiert also alle Achsen (X, Y, Z) Ihres Koordinatensystems. Sie benötigen dazu drei Vektoren. Der "up" Vektor definiert explizit die up (Y) Achse, die anderen zwei werden basierend auf der Richtung vom "Auge" zum "center" (manchmal als "forward" Vektor oder Z-Achse bezeichnet) und dem Produkt zwischen der Z-Achse und der Y-Achse, um die X-Achse ("linker" Vektor) zu erzeugen, die senkrecht zu beiden ist. LookAt definiert auch den Ursprung in einer Achse. –