将Ortho转换为视锥体采摘

时间:2013-07-14 02:59:30

标签: opengl-es-1.1

我无法将像素坐标从鼠标转换为3D视锥体。我在OGL ES 1.1上使用类似于glProject()的代码。我尝试过使用glUnProject()但是我无法使矢量工作,我知道有一种更简单的方法可以做到这一点。 我希望能够比较3D和2D坐标并找出它,但我还没有成功。所以这就是我所知道的:

  1. 我正在使用正在挑选的多边形的3D顶点:

    -1.0,1.0,0.0

  2. 然后我用glProject()转换为像素坐标:

    140.0,259.0,0.0

  3. 然后我使用鼠标像素坐标:

    140.0,220.0,0.0

  4. 这是我无法弄清楚的部分:

    -1.0,-1.0,0.0

  5. 我从#4的坐标获得了#3坐标,但我想做的是将像素转换为3D的相反方向。

    我真正需要知道的是鼠标在3D坐标中从另一个3D点拖动的距离。

1 个答案:

答案 0 :(得分:0)

好的,我有一个近似的算法工作。我开始工作的方式是使用:

glFrustum(AX,BX,AY,通过,AZ,BZ);

我使用ax和az的比率乘以z的长度来找到三角形的tx和ty侧的长度。然后我用像素坐标找到x和y。我不确定gluUnProject()是否更好,但我使用的那个更小,更容易理解。