gluUnproject on GL_Points or finding the depth coordinates from mouse coordinates
我搜索了很多关于这个问题的信息。但我希望你能指出我做错了什么。
我有一个场景,由很多点组成,我使用glbegin(gl_点);glvertex3f(x[i]、y[i]、z[i])绘制这些点//这些点显示正确。格兰德()
我想做的是能够用鼠标点击场景中的一个点并获得它的三维坐标。
我见过其他线程要使用:glreadPixels((gldouble)mouse_x,(gldouble)(rect.height()-mouse_y-1),1,1,gl_depth_component,gl_float,&z);
并使用z的值glunproject(鼠标x,鼠标y,0,模型视图,投影,视区,输出posx,输出posy,输出posz);
但我总是得到z=0作为输出,这是因为这些是点而不是多边形吗?有没有办法得到z的坐标?
非常感谢你,如果这是一个真正的问题,我很抱歉…
干杯!
拉胡尔
我认为你说glreadpixels是错误的。x,y,宽度和高度必须是闪烁的,而不是双倍的。这与glreadpixels返回的结果格式无关。因此,应该将鼠标位置和窗口大小的窗口坐标传递到glreadPixels(例如
不幸的是,这是做不到的。屏幕上的任何点X、Y都可以指场景中给定光线的任何点。
假设您正在绘制点,您可能希望使用选择模式来选择特定点,然后确定该点的坐标。