Fieldが効かない時の対処法PostProcessingStack、便利ですよね~。(DoF)、色収差、ビネット、ACESトーンマップを有効にしてます。最近の案件で、透過画像のスプライトにDoFが効かないという現象に出くわして苦労しました。なんとか対処したので、対処法を書いておきます。半透明部分の表示がおかしいなど、完全な解決策ではないので、詳しい方はぜひ教えてください~問題のシーンTransparentなオブジェクトはデプスを書き込まない不透明な部分だけデプスバッファに書きこむ最終結果まとめ問題のシーン今回問題になるのは、このような半透明部分を含んだ透過png画像です。ModeをFadeにしてみます。この状態でシーンに配置してみましょう。うーん、ピントが合わない......シーン上には、キューブと半透明のスプライトを等間隔に並べています。左のキューブにはフォーカスが当たっていますが、右側のスプライトは全てボヤケてしまっています。ModeをCutoutにしてしまえばピントが合うのですが、今回のような画像だと半透明の部分が消えてしまいます。ググってみると、PostProsessingStackのissueが見つかりました。github.comTransparentなオブジェクトはデプスバッファに書き込まないため、デプスを利用するDoFでは無視されてしまう。明示的にデプスを書いてあげれば良いようです。このissueでは、デプスを書き込むシェーダーのサンプルが紹介されています。呼んでやれば、デプスバッファに書き込めるみたいです。ShadowCasterのシェーダーは名前の通り影の計算に用いられますが、デプスバッファにも反映されます。問題のスプライトでもやってみましょう。作成し、ShadowCasterのSubShaderを追加して、スプライトのマテリアルに指定します。不透明な部分だけデプスバッファに書きこむどうやら、半透明な部分もデプスが書き込まれ、黒として描画されてしまったようです。仕方ないので、半透明な部分にピントを合わせるのを諦め、ShadowCasterのPassではdiscardするようにします。画像のアルファ値によって、透明部分をdiscardする今回作ったSurfaceシェーダーはこちらに置いておきます。3Dモデル読み込み、Floatテクスチャ、全画面モードこんにちはアマギです。法然院でVJした過去記事スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。