こんにちは、Unityエンジニアのオオバです。
前回に続いてイメージエフェクト記事です。
今回は前回のスクロール処理にアルファブレンドを加えたら面白い表現になりましたという内容です。
まずは成果物から

スクロールするUnityちゃんの残像が残るちょっとおもしろい表現ができました。
VerticalScrollBlend.shader · GitHub
スクロールは前回の処理そのままなのですが、今回変更したのは以下のアルファブレンドの設定1行です。
Blend SrcAlpha OneMinusSrcAlpha
イメージエフェクトをアルファブレンドしたらどうなるのか?という疑問から生まれたものでしたが、個人的には意外な結果となりました。
アルファブレンドしたピクセルがフレームをまたいで残っているように見えるからです(実際に残っているっぽい)。
ただ、この状態はEditor > Project Settings > Quality
から、Anti Aliasing
を Disabledにすると起こります。

このようにデフォルト状態の2x Multi Sampling
にすると、


アルファブレンドされる前にフレームバッファがクリアされ、先の残像のような表現にはなりません。おそらくアンチエイリアス処理時に何かしているのだと思われます。
FrameDebuggerで確認
描画周りで困ったときはとりあえずWindow > FrameDebugger
です。
Disabled時

2x Multi Sampling時

Grab RenderTexture
という処理がアンチエイリアス時には実行されています。これは現在表示されているピクセルをRenderTextureへのコピーすることです。
この処理を堺にバッファがクリアされているのだと推測しました。
まとめ
最近は時間があればイメージエフェクトをいじっています。
最終的なプロダクトにするには負荷との戦いは避けれませんが、今は戦うまでの武器集めをしています。

この記事が気に入ったらフォローしよう
- Unity5.5.2p2