一般DOF的做法大多是參考Depth Map,然後依照遠近再來決使用Blur Map或Color Buffer。
但是因為Alpha Blend通常沒有輸出深度,所以會發生因為錯誤的深度導致Alpha物件會顯示
錯誤的模糊效果。
目前自己的解決方法是為Alpha Blend物件單獨輸出一張Alpha Test的Depth Map,之後再跟深度貼圖取最近的深度即可。
在還沒使用Alpha Blend Map時,畫面如下(其中藍色的部份因為不透明物件的關係,顯示比較正確的結果):
使用後如下:
雖然在邊緣的地方還是有沾到遠處的深度,但效果還算可接受,唯一比較大的問題,就是會
多了alpha blend物件的draw call。
最後附上相關的影片:
Dream continues in...
沒有留言:
張貼留言