1
嗨every1我一直在這裏閱讀大量的帖子,關於如何使用gluUnproject,我認爲基本上得到了它的工作。 但是我的問題是這個..我得到了1架飛機,如果我點擊那裏沒有問題我的對象去那裏,但如果我點擊它之外,我的對象消失任何想法爲什麼它這樣做,我該如何解決它?這是我gluUnprojectgluUnproject問題/移動字符問題
的功能GetOGLPos(float x, float y)
{
GLint viewport[4];
GLfloat depth[2];
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, depth);
gluUnProject(winX, winY, depth[0], modelview, projection, viewport, &posX, &posY, &posZ);
std::cout<< posX<<" "<<posZ<<std::endl;
PosP.x = posX;
PosP.z = posZ;
PosP.y = 20.0f;
}
IM剛剛打印值知道那裏的對象會和POSP是一個Vector和IM移動我的字符傳遞變量(IVE得到任何物理或類似的東西在這個項目btw)
所以基本上你的意思是檢查Z並找到我的飛機在哪裏結束,所以如果它不在那裏就不提供它或保持相同的位置正確? – Makenshi 2011-06-12 23:16:55
是的,這是主意。 – 2011-06-12 23:47:49