Re: [請益] 求滑鼠點在螢幕上對應到的3D位置

看板GameDesign (遊戲設計)作者 (moonet)時間16年前 (2008/12/20 10:19), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《CKShane (軒)》之銘言: : 嗯,在這個版這似乎是個基本的問題 : (或應該說我實在太菜了) : 用的是OpenGL : 假設我現在在3D中對一個場景做了一連串的transform : 然後perspective的投影到screen space上 : 我現在用滑鼠在視窗中點一下 : 想要知道這一下是點在我3D場景的什麼位置,(然後準備接著作一些互動) : 該如何下手呢? 現下沒有什麼頭緒 : 該對最後算出來的transformation matrix求反矩陣? : 或是該走什麼方向? : 感謝 剛好有作過 class Point { public: double x; double y; double z; }; //輸入滑鼠座標,輸出滑鼠對應到模型的座標 Point findPoint(int x , int y) { GLfloat depth[1]; double modelm[16], projm[16]; int view[4]; Point p; glGetDoublev( GL_MODELVIEW_MATRIX, modelm ); glGetDoublev( GL_PROJECTION_MATRIX, projm ); glGetIntegerv( GL_VIEWPORT, (GLint*)view ); glReadPixels(x,y,1,1,GL_DEPTH_COMPONENT,GL_FLOAT,depth); gluUnProject(x,y,depth[0],modelm,projm, (GLint*)view,&(p.x),&(p.y),&(p.z)); return p; } -- blog:http://etrex.blogspot.com/ site:http://web.ntust.edu.tw/~B9409041/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.168.162.178
文章代碼(AID): #19J5OROl (GameDesign)
文章代碼(AID): #19J5OROl (GameDesign)