SSAO (スクリーンスペース アンビエントオクルージョン) で縞模様が出てしまうときの対処法【Unity】

May 19, 2019, 6:55 a.m. edited May 20, 2019, 4:40 a.m.

#Unity 

SSAO (スクリーンスペース アンビエントオクルージョン) を使うと手軽に影で暗くなるべきところは暗くできてとても絵がきれいになります.特にベイクをする必要がないので,動的にオブジェクトが置かれても問題なくアンビエントオクルージョンをすることができます.

しかし,PC上で問題なく表示できていてもモバイルにビルドすると以下のように黒い縞模様が出てしまうことがあります.

これはUnity標準のアンビエントオクルージョンよりも高速できれいを謳っているAmplify Occlusion1でもこのようになってしまいました.結構ショックです.

ですが,調べてみると解決方法がありました

Ambient Occlusionを適用しているCameraのClipping PlanesのFarを小さくすれば良いです.

確かに上の図を撮ったときのFarを10000にしてしまっていたので,これを試しに1000に戻してみたところ,以下のようにきれいに直りました.

(それでもかなり近づくと縞模様は出てしまいますが,許容範囲内でしょう.さらにFarを小さくすればそれも消えるかもしれません)

そもそもFarの値を変えない人も多いと思うので,この問題にぶつかる人はそんなにいないと思いますが,参考にしてみてください.ちゃんとアンビエントオクルージョンができればきれいな絵になりますので.


  1. セールで半額以下で手に入れた.あまり遅くならずにアンビエントオクルージョンができてすごく優秀.(中に入ってるReadme.txtに,すべてのプラットフォームをサポートしていると書いてあって,強気を感じた)