[問題] OpenGL點選
看板C_and_CPP (C/C++)作者Nestarneal (Nestarneal)時間13年前 (2013/03/15 21:30)推噓1(1推 0噓 32→)留言33則, 3人參與討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VS 2010
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
OpenGL、OpenMesh
問題(Question):
我先說明目前的狀況。
我利用 OpenMesh 將網格檔 (.obj) 讀進來後利用 OpenGL 畫在螢幕上。
整個網格檔由三角形構成,我希望能使用滑鼠點擊點、線或是面。
我利用反投影,將滑鼠座標轉換為空間座標,Code 如下:
void GetOGLPos (int x, int y)
{
GLint viewport[4];
GLdouble modelview[16];
GLdouble projection[16];
GLfloat winX, winY, winZ;
GLdouble posX, posY, posZ;
glGetDoublev( GL_MODELVIEW_MATRIX, modelview );
glGetDoublev( GL_PROJECTION_MATRIX, projection );
glGetIntegerv( GL_VIEWPORT, viewport );
winX = (float)x;
winY = (float)viewport[3] - (float)y;
glReadPixels(x, (int)winY, 1, 1,
GL_DEPTH_COMPONENT, GL_FLOAT, &winZ);
gluUnProject(winX, winY, winZ, modelview, projection,
viewport, &posX, &posY, &posZ);
}
不過我目前遇到的問題是在於,我該如何以此為基礎,實現點擊的功能?
舉例來說,我有個三角形:●
● ●
假設這三角形的三個 Vertex 純粹由座標構成
(由 glVertex3f() 直接輸入座標)
那麼我至少還能一個一個搜尋找出我究竟是點到哪一個 Vertex
但如果我把三角形往左平移 12 個單位,則我點擊此三角形的頂點,
轉換後得到的座標為平移以後的座標,而非平移前的座標。
雖然很合理,可是這樣我就無法對我原本坐標值做搜尋,
也就是我沒辦法知道我究竟是點到哪個 Vertex。
想了很久都思考不到好的 idea,
可以的話,想請前輩們指點一下,謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.251.154.94
推
03/15 23:36, , 1F
03/15 23:36, 1F
→
03/15 23:37, , 2F
03/15 23:37, 2F
→
03/16 09:58, , 3F
03/16 09:58, 3F
→
03/16 09:58, , 4F
03/16 09:58, 4F
→
03/16 09:58, , 5F
03/16 09:58, 5F
→
03/16 09:59, , 6F
03/16 09:59, 6F
→
03/16 09:59, , 7F
03/16 09:59, 7F
→
03/16 09:59, , 8F
03/16 09:59, 8F
→
03/16 09:59, , 9F
03/16 09:59, 9F
→
03/16 09:59, , 10F
03/16 09:59, 10F
→
03/16 12:22, , 11F
03/16 12:22, 11F
→
03/16 12:47, , 12F
03/16 12:47, 12F
→
03/16 12:47, , 13F
03/16 12:47, 13F
→
03/16 12:47, , 14F
03/16 12:47, 14F
→
03/16 12:48, , 15F
03/16 12:48, 15F
→
03/16 12:48, , 16F
03/16 12:48, 16F
→
03/16 12:48, , 17F
03/16 12:48, 17F
→
03/16 12:48, , 18F
03/16 12:48, 18F
→
03/16 12:48, , 19F
03/16 12:48, 19F
→
03/16 12:48, , 20F
03/16 12:48, 20F
→
03/16 12:48, , 21F
03/16 12:48, 21F
→
03/16 12:48, , 22F
03/16 12:48, 22F
→
03/16 12:48, , 23F
03/16 12:48, 23F
→
03/16 12:49, , 24F
03/16 12:49, 24F
→
03/16 12:49, , 25F
03/16 12:49, 25F
→
03/16 13:29, , 26F
03/16 13:29, 26F
→
03/16 13:47, , 27F
03/16 13:47, 27F
→
03/16 13:47, , 28F
03/16 13:47, 28F
→
03/16 13:47, , 29F
03/16 13:47, 29F
→
03/16 13:47, , 30F
03/16 13:47, 30F
→
03/16 13:47, , 31F
03/16 13:47, 31F
→
03/16 13:47, , 32F
03/16 13:47, 32F
→
03/16 15:12, , 33F
03/16 15:12, 33F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章