Unity

UnityでImageEffectをかける方法

More than 1 year has passed since last update.

UnityでImageEffect(ポストプロセス)をかける方法を備忘録的に簡単にまとめます。

Projectフォルダを右クリックしてCreate => Shader => Image Effect ShaderからShaderを作ります。
名前はデフォルトのImage Effect Shaderが色を反転するエフェクトをかけるものなのでInvertにしておきます。

作成したInvertシェーダー上で右クリックして、Create => Materialからマテリアルを作成します。これも名前をInvertにしておきます。
作成したInvertマテリアルのShaderがHidden/Invertになっていることをインスペクターから確認してください。

以下のスクリプトをCameraに追加して、インスペクターからスクリプトのmaterialプロパティをさきほど作成したInvertマテリアルにします。

ImageEffect.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ImageEffect : MonoBehaviour {

    public Material material;

    void OnRenderImage(RenderTexture src, RenderTexture dest) {
        Graphics.Blit (src, dest, material);
    }
}

これで、プログラムを実行すると以下のようになり、Game画面で色が反転しているのが確認できます。

invert.png