Chapter1: Post Processing ~Unity2018 Shaders and Effects Cookbook~
はじめに
Unityのシェーダーをメインに扱っている唯一の書籍である「Unity 2018 Shaders and Effects Cookbook」の自分用のメモです. また, Unity公式リファレンスなどの情報も参考にしています.
シェーダー自体難しそうだし, 初めて読む英語の技術書なのでペースは遅いし間違えもあるかもしれません.
環境
- Unity2018.4.0
- この本ではUnity2018.1.0を使っているようですが, Unity2018.4.0を使って進めます. もし何か問題があって2018.1.0やその他のバージョンを使った場合はその部分に注意書きとして書いておきます.
- サンプルファイル
Chapter1: Post Processing Stack
Post Processの概要
画面に表示する前に画像へフィルターやエフェクトを適用する処理. 視覚効果を手軽にいい感じにできる.
準備
- サンプルファイルの
Asset | Chapter01 | Scenes | Chapter 1 - Starting Point
シーンを開く. このシーンはPost Processing
の効果を確認しやすいシンプルな環境のシーンです. Package Manager
を開いて(ctrl + 9
),Post-processing
をインストールする.Heararchy
からCamera
コンポーネントがアタッチされたオブジェクト(今回はFPSController | FirstPersonCharacter
)を選択.- 3で選択したオブジェクトにコンポーネントの
Component | Rendering | Post-process Layer
をアタッチ. - 4.でアタッチした
Post Process Layer(script)
コンポーネントのLayer
のドロップダウンからPostProcessing
を選択. Heararchy
でPost Process Volume
を作成.inspector
でLayer
をPostProcessing
に設定. 最後にposition
を(0, 0, 0),Post Process Volume
コンポーネントのIs Global
にチェック.
Post Process Volume
のProfile
プロパティにはどのようなスクリーンへのエフェクトかの情報が含まれます.
また, Is Global
にチェックを入れることで常にエフェクトをかけることができ, チェックを外すとvolume
と一定範囲内にいる間のみにエフェクトがかかります.
サンプルProfile
Post Processing
でエフェクトをかけるには, 上で用意したPost Process Volume
コンポーネントのAdd effects
で任意のエフェクトを追加し, 各プロパティを調整すればいい.
Assets | Chapter01
にあるProfile
を順に見てみる.
Filmic
- Grain
- 写真のフィルムのようなランダムなノイズ. ホラーゲームなどで誇張されて利用される.
- Vignette
- 画面中心からエッジにかけて暗くしたり彩度を下げる表現.
- 画像の中心にフォーカスを引きつけるような効果によく使われる.
Bloom
- Bloom
- 実カメラのような, 光源から広がる光を再現するためのエフェクト.
- 光があふれるような効果
- Anti-aliasing
- エイリアシング(解像度の低さによって生じる階段状のギザギザ)を防中間色で囲むことで防ぐ.
Post Process Layer(Script)
のプロパティで選択.
Color grading
- Color Grading
- 完成した画像のカラーや輝度を変更修正するもの
- instagramのフィルターみたいなもの
Horror
- Fog
- カメラからの距離に応じてオブジェクトにカラーを重ねるエフェクト.
- 霧やもやをシミュレート.
Lighting
のother setting
で設定.
- Ambient Occulusion
- 折り目, 穴, 交差, 表面など環境光を遮断する傾向がある領域をより暗く見せる.
- リアルタイムに近似していて処理時間のコストが高い.
その他
本書で扱っていたPostProcessing
の機能は以上ですが, 他にもいくつかのエフェクトがあるようなのでそちらも
- Chromatic Aberration(色収差)
- カメラのレンズがすべての色を同じ点に収束しないために生じる効果
- 画像の暗い部分と明るい部分を分ける境界に沿って色の「フリンジ」として現れる.
- Depth of Field(被写体深度)
- カメラレンズの焦点特性のシミュレート
- レンズと焦点があっていない被写体がボケるやつ
- Eye Adaptation(目の適応)
- 暗いところから明るいところに行ったときに暫くの間眩しくて, だんだん慣れてくるやつ
- Motion Blur
- 被写体が高速に動いたときにぼけるやつ.
- レースゲームなどでは誇張して使用される.
- Screen Space Reflection
- 反射を計算するためにスクリーンスペースのデータを再利用する技術.
- 濡れた床の表面や水たまりなどの微妙な反射を作成するの使用される.
- 重い.