Ich benutze die GLM-Bibliothek für OpenGL, um Formen relativ zu einer Kamera mit Perspektive und Modelview Matrizen zu rendern. Die drei Kamera Vektoren sind wie folgt:OpenGL Translate Point mit Maus Drag
glm::vec3 cam_pos(0.0f, 0.0f, 20.0f); // e | Position of camera
glm::vec3 cam_look_at(0.0f, 0.0f, -1.0f); // d | This is where the camera looks at
glm::vec3 cam_up(0.0f, 1.0f, 0.0f); // up | What orientation "up" is
Die Perspektive und modelviews über glm Funktionen werden wie folgt generiert:
P = glm::perspective(fov, (float)width/(float)height, 0.1f, 1000.0f);
V = glm::lookAt(cam_pos, cam_look_at, cam_up);
I Trackball Kamerabewegung durchgeführt haben, die Richtung einzustellen, bei dem die Kamera schaut .
Jetzt versuche ich ein ziehbares Punktobjekt zu codieren, das der Mausbewegung folgt, je nachdem, auf welche Weise die Kamera schaut. Allerdings habe ich Probleme mit der Mathematik dafür.
Wie bekomme ich die Übersetzungsmatrix, um den Punkt innerhalb des GLFW-Maus-Callbacks zu übersetzen, wenn die Maus in x- und y-Koordinaten und den drei Kameravektoren verschoben wird?