你好,還有其他程序員,我發現在改善陰影映射方面還有其他障礙。 問題是我正在做一些陰影映射,並且找不到任何合適的深度偏差。前一段時間,在我第一次做XNA項目時,我可以在一個地形上很好地設置它,並且可以很快找到合適的偏差,因爲如果沒有設定偏差,就會發生這樣的痤瘡: 我正在調整偏見,直到陰影看起來很好,這是它的背後的基本理念,據我所知。這是我所追求的結果。 現在轉移到DirectX 11,稍後設置一個小場景,並完成一些PCF陰影映射。然後,當設置沒有偏見時,沒有這樣的粉刺,但陰影被斷開,例如(對於難看的紋理): 它應該在地上有痤瘡,並且盒子的陰影連接到盒子的邊緣,而是斷開連接。當降低偏差(負值)時,差距開始減小,但很快整個陰影圖會變暗,然後才達到最佳間隙距離。無法找到適當的陰影貼圖深度偏差?
我使用與XNA相同的着色器代碼(只通過pcf過濾擴展),所以我假設它更多的是與api有關。檢出xna代碼,我什至不能看到渲染到紋理格式,因爲它們是隱藏的(我猜)。
如果有人曾經有過這個問題,請幫助我以零偏見實現陰影痤瘡。
UPDATE:該圖顯示了一個普通的平面四邊形的凹凸的陰影(痤瘡應該甚至在整個四,因爲它是在XNA地形):
UPDATE2:我嘗試切換剔除模式在深度渲染過程中挑選出面向前的人臉,這樣可以更好地調整陰影,因爲如果偏好被修改,沒有渲染的地板會變暗,但陰影仍然非常不均勻。單個網格的陰影可以調整爲看起來不錯,但其他人會搞砸。 不知何故,我認爲深度緩衝區分佈非常不均勻,因爲靠近遠平面的物體會得到更好的結果。我想,連裁剪距離都不好。陰影投影設置爲1-2000深度分佈(在我的場景中,1米大約爲200個單位),但不知何故,精確度是關閉的。 我已經試過了R32_FLOAT和D24_S8_UNORM的深度紋理格式。
也許有一些有趣的東西給你:http://msdn.microsoft.com/en-us/library/windows/desktop/ee416324%28v=vs.85%29.aspx – Gnietschow
是的,但我的問題是彼得平滑發生,沒有任何陰影偏見。沒有粉刺。 –