我正在通过 2D 屏幕鼠标单击计算 3D 坐标。然后我在计算的 3D 坐标处绘制点。代码没有错,方法没有错,一切正常。但是有一个问题与深度有关。
如果对象大小在 (1000, 1000, 1000) 左右,我会得到完整的深度,即对象面元的精确 3D 坐标。但是当我加载大小为(20000、20000、20000)的对象时,我没有得到准确的(深度)3D 坐标。我从表面得到一些偏移。该点与表面有一些偏移。所以我的第一个问题是为什么会这样?第二个问题是如何获得超大型物体的完整深度和准确的 3D 坐标?
我画了一个 3D 点
glDepthFunc(GL_LEQUAL);
glDepthRange(0.0, 0.999999);
并使用
glReadPixels(x, y, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &wz);
if(wz > 0.0000001f && wz < 0.999999f)
{
gluUnProject()....saving 3D coordinate
}