Unity 5: AfterImageEffects and AfterEverything Traps

Unity 5ではCommand Bufferによる特定タイミング時のレンダリングパイプラインへの描画割り込みが可能になっている。が、新機能でテストが不十分なのか、仕様であるがドキュメントが不十分だかで、よく分からん挙動をする時があるようだ。

特に、CameraEventのAfterImageEffectsとAfterEverythingは、それまでのCameraEventとは挙動が異なる。これは恐らく、Back Bufferか何かしら特殊なバッファへの転送後に割り込むためだと思われる。ここではBack Bufferに転送済みと仮定して記述する。
Unity 5.0.1p1, DX11 Deferred Renderingで確認。他の組み合わせは知らないが、5.0.0p2などでも挙動が若干異なっていた。
スクリーンショットを貼りながらの方が分かりやすいのだが、枚数がえらいことになるので割愛。Unityユーザでレンダリングパイプラインをカスタマイズしようという人の数はそれほど多くないと思われるし、少数の対象の人はサンプル書いてFrame Debuggerを追ってみると分かるだろう。

続きを読む →