2009-07-10 42 views
1

我在使用LineList繪製一個網格和重疊它的另一個(較大)網格會由於z戰鬥而使它​​們閃爍的問題。當多邊形和線條重疊時,使用DepthBias將減少這種問題,但在兩個單獨的DrawIndexedPrimitives調用中繪製線條時顯然不起作用。在XNA中的線條之間的Z戰鬥

目前,我通過在第二個網格的位置添加一個指向相機的小矢量來「固定」它以模擬DepthBias,但是當相機遠離網格時問題仍然存在。

有沒有更好的方法來解決這個問題?

+0

嘿,約翰,你已經解決了你的問題?我很好奇這個解決方案。 – 2010-07-08 21:41:07

回答

0

從我聽說你應該看看你的剪輯平面。示例線程:xna.com

編輯:不知道,關於網格,但你可以隨時嘗試! :)

0

不幸的是,這是由於32位浮點數的精度有限(深度緩衝區使用)而導致的自然行爲。您可以翻譯一組最小行(因爲你現在做的),並儘量選擇你的裁剪平面接近儘可能彼此(如羅布提到的),或:

  1. 通過設置device.RenderState.CompareFunction = CompareFunction.Allways禁用深度緩衝,不通過實際禁用緩衝區!
  2. 繪製所有線條。
  3. 通過顛倒步驟1中的更改​​再次啓用深度緩衝區。
  4. 繪製所有其他幾何圖形。