如何在XNA 3.1中使用3D地形坐标映射屏幕位置

时间:2012-07-19 12:38:55

标签: xna

我在XNA 3.1框架中工作时遇到问题。 实际上我是从DEM文件创建了一个地形模型。地形模型具有X,Y,Z坐标。地形在屏幕的下半部分创建。在xna域0,0是屏幕的中心。 我的问题是,我想在用户点击屏幕时识别地形坐标(使用鼠标)。在屏幕视图中,0,0是左上角。我在使用地形坐标制作屏幕坐标时遇到了困难,反之亦然。

是否有人遇到类似的问题,或者让我建议任何解决方案,任何指针对我都有帮助。

由于 ADEE

1 个答案:

答案 0 :(得分:0)

您尝试做的事情被称为“拣选”,并且网上有无限的资源。简而言之,它包括:

  • 使用鼠标坐标为X,Y
  • 在3D空间中生成从视锥体前后移动的光线
  • 应用视图投影矩阵的反向变换以在世界空间中获取此向量
  • 测试此向量与地形的每个多边形之间的交集
  • 使用z-order选择最近的交叉多边形

有关详细说明,请参阅XNA Picking Tutorial。或者只是谷歌“选择3D”。