我有一个由很多点组成的场景,我使用这些点绘制
glBegin(GL_POINTS);
glVertex3f(x[i],y[i],z[i]); // the points are displayed properly ..
glEnd();
我希望做的是能够使用鼠标单击场景中的一个点并获得其 3-D 坐标。
我见过其他要使用的线程:
glReadPixels((GLdouble)mouse_x,
(GLdouble) (rect.Height()-mouse_y-1),1, 1,GL_DEPTH_COMPONENT, GL_FLOAT, &Z);
并使用 z 的值
gluUnProject(mouse_x, mouse_y, 0, modelview, projection, viewport, out posX, out posY, out posZ);
但我总是得到z=0
输出。这是因为这些是点而不是多边形吗?有没有办法获得 z 的坐标?