簡體   English   中英

用鼠標拖動OpenGL翻譯點

[英]OpenGL Translate Point With Mouse Drag

我正在使用用於OpenGL的GLM庫,以使用透視圖和模型視圖矩陣來渲染相對於相機的形狀。 三種相機矢量如下:

    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

透視圖和模型視圖通過glm函數生成,如下所示:

    P = glm::perspective(fov, (float)width / (float)height, 0.1f, 1000.0f);
    V = glm::lookAt(cam_pos, cam_look_at, cam_up);

我已經實現了軌跡球攝像頭的運動來調整攝像頭的方向。

現在,我正在嘗試根據相機的移動方式,對跟隨鼠標移動的可拖動點對象進行編碼。 但是,我在數學上遇到了麻煩。

給定鼠標在x和y坐標上的位移以及三個相機矢量,如何在GLFW鼠標回調內部使用平移矩陣轉換點?

將您的3個攝像機矢量轉換為旋轉平移矩陣RT )。 使用此RT矩陣,您現在可以相對於相機的位置和姿勢線性變換任何剛性對象(基本上是計算機圖形學中的任何對象)。

看看這個http://www.opengl-tutorial.org/beginners-tutorials/tutorial-3-matrices/

希望這種方法有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM