标题:
[求助]
拾取物体
[打印本页]
作者:
笑一笑
时间:
2011-4-1 08:21
标题:
拾取物体
在ARToolkit中想通过OpenGL的拾取与选择模式,利用鼠标选取物体对其缩放等操作,但拾取功能到AR后就失效了。如果有人会请教教我,或提供点思路,非常感谢!!!如果能提供点源码那就更好了,呵呵!
作者:
CROMA
时间:
2011-4-3 22:08
拾取失效? 使用的是 Select 還是 Pick ? 把程式碼發上來看看
作者:
笑一笑
时间:
2011-4-10 19:43
标题:
RE: 拾取物体
不好意思,这2天出差了,没上网。主要问题是当屏幕上有2个物体时不管选取什么地方则hits都返回2,一个物体时返回1,不能正确返回选取的物体,我把程序传上来,麻烦看看是什么问题,谢谢!
作者:
CROMA
时间:
2011-4-19 11:29
嗯 我幫你看看
作者:
CROMA
时间:
2011-4-19 11:49
抱歉 我手上已經不再使用 AR Toolkit 了所以沒有辦法直接測試是否只有一個問題
你 mouseEvent 這段有點問題
void mouseEvent(int button, int state, int x, int y)
{
GLuint selectBuf[SIZE];
GLint hits;
GLint viewport[4];
if (button == GLUT_LEFT_BUTTON && state == GLUT_DOWN)
{
glGetIntegerv (GL_VIEWPORT, viewport);
glSelectBuffer (SIZE, selectBuf);
glRenderMode(GL_SELECT);
glInitNames();
glPushName(-1);
glMatrixMode (GL_PROJECTION);
glPushMatrix ();
glLoadIdentity ();
/* create 5x5 pixel picking region near cursor location */
gluPickMatrix ((GLdouble) x, (GLdouble) (viewport[3] - y),
5.0, 5.0, viewport);
--> 這裡應該要載入投射矩陣的參數 你沒有載入所以就變成預設狀態的 單位矩陣
因該要載入這兩個函數
> argDrawMode3D();
> argDraw3dCamera( 0, 0 );
// gluOrtho2D (-2.0, 2.0, -2.0, 2.0);
// drawObjects(GL_SELECT);
draw( object, objectnum,GL_SELECT);
glMatrixMode (GL_PROJECTION);
glPopMatrix ();
glFlush ();
hits = glRenderMode (GL_RENDER);
processHits (hits, selectBuf);
glutPostRedisplay();
}
}
作者:
CROMA
时间:
2011-4-19 11:57
但是你後續呼叫的 draw( object, objectnum,GL_SELECT);
又會再次呼叫這兩個函數 可能出現問題的地方在於
argDrawMode3D();
argDraw3dCamera( 0, 0 );
這兩個函數是否在 呼叫的過程中赴寫掉你的矩陣了
作者:
CROMA
时间:
2011-4-19 12:15
我重新下載 AR Toolkit 來測試好了
作者:
CROMA
时间:
2011-4-19 22:22
AR Toolkit 2.52 + vrml 的版本已經沒有辦法下載了 orz
可以麻煩你把編譯好的 artoolkit 也傳上來嗎
作者:
笑一笑
时间:
2011-4-23 21:33
非常感谢!我现在用的是2.72版本的,在VS2005中编译通过的。
作者:
oneheed
时间:
2011-4-25 15:26
請問大大成功了嗎?? 我以嘗試都無法成功執行
欢迎光临 ARToolKit中文论坛 (http://artoolkit.net/)
Powered by Discuz! 7.0.0