さけのさかなのブログ

同人ゲーム開発やってます。Unity使ったりする。

【Unity】Orthographicカメラで被写界深度エフェクトを使う

やること

 ImageEffectに含まれるDepthOfFieldエフェクト。

 これはperspectiveカメラで使うことを前提にしており、orthographicカメラで使おうとするとうまくいかない。なんとかする。

Unityバージョン

5.3.2p1

手順

DepthOfFieldScatter.shaderを開けて

d = Linear01Depth (d);

となっている箇所をコメントアウトすれば良い。

どうしてこうなるのか?

 orthographicカメラとperspectiveカメラではdepthの算出方法が異なるため。

 詳しくは「深度バッファ 精度」あたりでググるとそれっぽいのが出る。