Version: Unity 6.0 (6000.0)
言語 : 日本語
カスタムレンダーテクスチャの作成
カスタムレンダーテクスチャ更新時のコントロール

カスタムレンダーテクスチャのシェーダーの作成

カスタムレンダーテクスチャを手動で更新するには、専用のカスタムレンダーテクスチャシェーダーを記述します。

カスタムレンダーテクスチャシェーダーを書くのに役立つように、ユーティリティ関数とビルトインのヘルパー変数を含む 2 つのサンプルフレームワークを紹介します。

以下のシェーダーの例では、色を掛け合わせた色でテクスチャを塗りつぶします。カスタムレンダーテクスチャのシェーダーを書くときは、以下を行う必要があります。

  • #include "UnityCustomRenderTexture.cginc"
  • 与えられた頂点シェーダー CustomRenderTextureVertexShader を使用
  • ピクセルシェーダーに与えられた入力構造体 v2f_customrendertexture を使用
Shader "CustomRenderTexture/Simple"
{
    Properties
    {
        _Color ("Color", Color) = (1,1,1,1)
        _Tex("InputTex", 2D) = "white" {}
     }

     SubShader
     {
        Lighting Off
        Blend One Zero

        Pass
        {
            CGPROGRAM
            #include "UnityCustomRenderTexture.cginc"
            #pragma vertex CustomRenderTextureVertexShader
            #pragma fragment frag
            #pragma target 3.0

            float4      _Color;
            sampler2D   _Tex;

            float4 frag(v2f_customrendertexture IN) : COLOR
            {
                return _Color * tex2D(_Tex, IN.localTexcoord.xy);
            }
            ENDCG
            }
    }
}

以下の例は、カスタムレンダーテクスチャの初期化に使用できるマテリアル用のシェーダーです。マテリアル初期化のシェーダーを書くときは、以下の手順が必須です。

  • #include "UnityCustomRenderTexture.cginc"

  • 与えられた頂点シェーダー CustomRenderTextureVertexShader を使用

  • ピクセルシェーダーに与えられた入力構造体 v2f_customrendertexture を使用

Shader "CustomRenderTexture/CustomTextureInit"
{
    Properties
    {
        _Color ("Color", Color) = (1,1,1,1)
        _Tex("InputTex", 2D) = "white" {}
    }

    SubShader
    {
        Lighting Off
        Blend One Zero

        Pass
        {
            CGPROGRAM
            #include "UnityCustomRenderTexture.cginc"

            #pragma vertex InitCustomRenderTextureVertexShader
            #pragma fragment frag
            #pragma target 3.0

            float4      _Color;
            sampler2D   _Tex;

            float4 frag(v2f_init_customrendertexture IN) : COLOR
            {
                return _Color * tex2D(_Tex, IN.texcoord.xy);
            }
            ENDCG
        }
    }
}
カスタムレンダーテクスチャの作成
カスタムレンダーテクスチャ更新時のコントロール