Ich benutze OpenGL, um ein Objekt in meiner Szene zu zeichnen, aber ich kann nicht scheinen, dass es sich um die Kamera dreht, anstatt sich nur an der Stelle zu drehen.Rotierendes Objekt um die Kamera herum und transformierte Koordinaten?
Was kann ich tun, um es stattdessen um die Kamera drehen zu lassen? Ich weiß, dass ich es in der Kamera/im Ansichtsbereich zeichnen kann, aber ich muss die Position und Drehung des Objekts nach der Transformation abrufen (damit ich diesem Objekt mit Bullet einen starren Körper geben kann). Wenn die Position und Drehung von einem im Ansichtsbereich wiedergegebenen Objekt noch abgerufen werden kann, ignorieren Sie bitte den ersten Teil des Posts.
Mit anderen Worten, wie kann ich das Objekt um die Kamera zu bewegen und zu drehen und bekomme es Koordinaten und Drehung von den ModelMatrix
, so dass ich diese füllen kann:
glm::vec3 objectPosition;
glm::quat objectRotation;
Ich habe Online-Ähnliche Beiträge gesehen, dass benutze älteres OpenGL/nicht das MVP-Framework, also bin ich mir nicht sicher, wie ich das machen soll. Prost.
Sie müssen in die _negative_ Kameraposition übersetzen, drehen und zurück übersetzen. Ansonsten verschiebst du das Objekt zum Ursprung und drehst es dann natürlich nur noch um seine eigene Achse. Versuchen Sie, Ihre erste Zeile zu kommentieren. – Psi
Ich habe damit kein Glück. Ich habe zuerst versucht, mit -getPosition() zu übersetzen, rotiert und dann in getPosition() übersetzt (wenn Sie das gemeint haben), aber ohne Erfolg. –