Willywonkadailyblahs Antwort ist halb richtig. Da Sie das alte OpenGL verwenden, verwenden Sie den alten Matrixstapel. Sie ändern die Modellansichtsmatrix , wenn Sie Ihre glRotatef- und glTranslatef-Aufrufe ausführen. Die Modelview-Matrix ist eigentlich die Matrix des Modells und die View-Matrix der Kamera vorkombiniert (bereits multipliziert). Diese Matrizen bestimmen, wo sich Ihr Objekt im 3D-Raum befindet und wo sich Ihre Sichtposition/Richtung der Welt befindet. Sie können sich Ihre Anrufe also als Bewegen der Kamera vorstellen, aber es ist wahrscheinlich einfacher, sie so zu sehen, als würden Sie die Welt bewegen und drehen.
Diese Dreh- und Übersetzungsaufrufe sind lineare Transformationen. Dies hat eine genaue Definition, aber für unsere Zwecke bedeutet das, dass Sie die Transformation als eine Matrix darstellen können und Sie sie mit den Koordinaten des Punktes multiplizieren, um die Transformation auf einen Punkt anzuwenden. Jetzt ist die Matrixmultiplikation nicht kommutativ, dh AB! = BA. All das zu sagen, dass, wenn Sie drehen, dann übersetzen Sie es anders als übersetzen und rotieren, was ich denke, Sie wissen. Aber dann, wenn Sie übersetzen, drehen und übersetzen, ist es vielleicht etwas schwieriger, dem zu folgen, was Sie tatsächlich tun. Schlimmer noch, selbst wenn man etwas Skalierung hineinwirft. Ich würde daher vorschlagen, zu lernen, wie lineare Transformationen funktionieren und Ihre eigenen Matrizen für die Objekte und die Kamera zu erhalten, wenn Sie ernsthaft mit OpenGL lernen wollen.
learnopengl.org ist eine ausgezeichnete Website, aber es lehrt Sie Modern OpenGL, nicht das, was Sie gerade verwenden. Aber die Lektion auf und auf coordinate systems sind wahrscheinlich in der Regel hilfreich, auch ohne genauen Code für Sie zu folgen
Dies gab mir einige hilfreiche Informationen. Gibt es nützliche Tutorials, die Sie für das korrekte Übersetzen im 3D-Raum benötigen? – newbcoder
Ich denke gerade lesen Sie eine Koordinatengeometrie und lineare Algebra Lehrbuch, insbesondere Matrixtransformation und Bestellung notieren –