Re: [請益] 求滑鼠點在螢幕上對應到的3D位置
看板GameDesign (遊戲設計)作者etrexetrex (moonet)時間16年前 (2008/12/20 10:19)推噓0(0推 0噓 0→)留言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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
GameDesign 近期熱門文章
PTT遊戲區 即時熱門文章