[程式]為曲面加上格線問題(DirectX 9)

作者: commandoEX (卡曼都)   2017-08-18 11:00:21
各位先進好,雖然我沒打算走遊戲設計,不過這裡跟DirectX比較有關聯
所以過來這求助
簡單來說我要用DirectX
繪製一個曲面加上格線以及座標軸
目前的做法是座標軸、曲面、格線分3個物件各用DrawPrimitive畫出來
成果如下圖
http://imgur.com/KoN7YqY
問題在紅圈處有些預想應該被白色曲面遮住的格線顯示了出來
看起來比較像白色曲面畫完的平面被格線疊上去
之後我有試著打開Z-buffer但狀況沒改善
所在這種狀況下不適合用DrawPrimitive繪製物件?
因為我只靠google+MSDN自幹找不到好的解決方法
希望可以有人指點一二
作者: Bencrie   2017-08-18 12:33:00
depth test 不是本來就應該開嗎?沒開就看誰後畫誰就會在上層然後如果 model 沒位移,兩個 polygon 疊在一起可能會有 z fighting
作者: cjcat2266 (CJ Cat)   2017-08-18 12:57:00
depth test沒設定對吧,多檢查一下,跟DrawPrim應該沒有關係或許這是個蠢問題,不過還是小心為上,你一開始有創造z buffer嗎? 設定都正確,一開始沒有創造和連結還是一樣不會有效果可喜可賀另外不建議用Y+1這種作法讓格線畫在曲面上因為只要繪製尺寸一改,有機會明顯漏餡其實你這張圖已經有點露餡了,近看可以看到格線浮空建議用內建z bias或在pixel shader裡面自己實作z bias繪製格線的時候,在normalized device coordinate做最終Z值微調,移到曲面正前方,且沒有任何視覺誤差
作者: Schottky (順風相送)   2017-08-18 16:40:00
原來還有最終 Z 值微調這招
作者: hodsala (猴的沙拉)   2017-09-06 05:09:00
好懷念 題外問一下? DirectX9是我那個年代的主流 後期我印象到了DX11 現在開發3D還是用DX9嗎[email protected]@ 我那年代指的是十二年前左右 現在沒有其它主流SDK了嗎@@?
作者: cjcat2266 (CJ Cat)   2017-09-06 06:35:00
最新圖像API是DX12, OpenGL 4.6, 和VulkanWindows 7以後都不能用DX9

Links booklink

Contact Us: admin [ a t ] ucptt.com