【问题标题】:DirectX Z orderDirectX Z 顺序
【发布时间】:2011-06-15 15:14:35
【问题描述】:

我必须使用托管 DirectX 绘制地图。地图以 MapInfo 格式(线、折线、区域/多边形)到达。多边形已经被三角剖分(使用 GLUtesselator 完成)。

想法:

  1. GPS 坐标转换为 x,y 点(墨卡托投影)
  2. 我使用 PositionColored VertexFormat
  3. 视图中心为 [x,y](可通过鼠标移动修改)
  4. 相机始终定位到 [x,y,z],其中 z 是缩放比例(默认为 -100,可以通过鼠标滚轮进行修改)
  5. 相机目标是:[x,y,0],相机向上:[0,1,0]
  6. 地图的图层以 Z 为单位(+1.0、0.99、0.98、0.97...等)

我已经可以了:

  1. 画线和折线
  2. 画一层多边形

我的问题是:当我想绘制所有图层时,我只看到其中一个。我认为 z 排序存在一些问题。我应该怎么做才能解决这个问题?修改渲染状态?如果我能像在 GDI 中那样绘制(首先在后面,最后在前面),那就最好了。

其他问题:如何获取鼠标光标下像素的坐标? (在地图的 GDI 版本中我可以这样做,因为我使用自己的视口进行渲染,但现在 Directx 可以做所有事情)

谢谢!

【问题讨论】:

    标签: c# map directx gdi z-order


    【解决方案1】:

    如果您的地图是纯二维的,请确保关闭 Z 缓冲。完成后,事物将按照您绘制它们的顺序显示。

    【讨论】:

      猜你喜欢
      • 2017-02-03
      • 1970-01-01
      • 1970-01-01
      • 2013-07-17
      • 2011-02-28
      • 2016-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多