2011-01-26 55 views
0

我必須使用託管DirectX繪製地圖。地圖以MapInfo格式(線,多段線,區域/多邊形)到達。多邊形已經被三角化(用GLUtesselator完成)。DirectX Z順序

的想法:

  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排序有一些問題。我該怎麼做才能解決這個問題?修改RenderState?最好的情況是,如果我能像GDI那樣抽籤(先在後面,後面在前面)。

其他問題:如何獲得鼠標光標下像素的座標? (在GDI版本的地圖中,我可以這樣做,因爲我使用自己的視口進行渲染,但現在directx可以做所有事情)

謝謝!

回答

0

如果您的地圖純粹是2D,請確保Z緩衝關閉。一旦成功,事情將按照您繪製的順序顯示。