【UNITY】PostProcess
イメージエフェクト
ってUNITYでは 言うらしいよ ポストプロセスの事
概要
ポストプロセスに関しては ご存知と思うが UNITYは基本的に オブジェクトにスクリプトをくっつけていくタイプだ
UNITYではポストプロセスはカメラにつけるっぽい
MonoBehaviour.OnRenderImage(RenderTexture,RenderTexture) を実装したスクリプトを、カメラと同じ階層のGameObjectに入れれば ポストプロセスとして成立する
スクリプト作成
using UnityEngine; [RequireComponent(typeof(Camera))] //public abstract class Compose : MonoBehaviour public class Compose : MonoBehaviour { private Material _material; public string ShaderName; protected Material Material { get { return _material; } } protected virtual void Awake() { Shader shader = Shader.Find(ShaderName); _material = new Material(shader); } protected virtual void OnRenderImage(RenderTexture source, RenderTexture destination) { Graphics.Blit(source, destination, _material); } }
上記でかいたように OnRenderImageを実装する
sourceがエフェクト前の画像であり destinationにポストエフェクト適応させた出力を行う
ShaderNameプロパティで指定したシェーダーを読み込み それを実行している
Shaderは割愛。好きに書けばいい
スクリプト配置
GameObjectを作りそこにスクリプトをアタッチ そして 同じレイヤーにカメラを置けば完成