2008-12-11 32 views
0

我需要實現以下目標:正確的方式來處理2D的z索引的3D場景(的DirectX)

兩個2D四邊形看起來好像他們是在的其他(如兩半的頂部堆疊相同的紋理),但實際上在z軸上由n個座標分隔。所以如果一個3D物體在它們之間通過,那麼一半出現在物體前面,另一半出現在物體後面。

我可以通過對兩個四邊形應用正交投影,然後對其餘三維數據進行正常透視來實現這一點嗎?這會損失深度數據嗎?

我希望我的例子不是太誤導人!

回答

1

簡單的答案是肯定的,如果你在渲染你的四邊形時打開了z寫。除非明確地執行,否則不會丟棄z數據。

但是,獲得與投影深度很好地匹配的正方形深度可能會非常棘手。 (我從來沒有嘗試過,但我想它不會很好地排隊。)在這種情況下,最好的辦法是請執行下列操作之一:

  • 渲染所有的幾何中的透視圖
  • 渲染在正交視圖中的所有幾何圖形
  • 在未經z檢驗的已排序圖層(回到前面)中渲染正交幾何圖形,從而呈現兩者之間的透視幾何圖形。

我假設您已經知道前兩種方法的缺點,所以如果這是可以接受的,則由您決定。我認爲第三種方法是最傳統的。