要手动更新自定义渲染纹理一种特殊的纹理类型,在运行时创建和更新。要使用它们,首先创建一个新的渲染纹理,并指定其中一个摄像机渲染到其中。然后,您可以像使用普通纹理一样在材质中使用渲染纹理。 更多信息
参见 术语表,您可以编写一个专门的自定义渲染纹理着色器在 GPU 上运行的程序。 更多信息
参见 术语表。
为了帮助您编写自定义渲染纹理着色器,这里提供了两个示例框架,其中包含实用程序函数和内置帮助器变量。
以下着色器示例使用颜色乘以颜色填充纹理。当您为自定义渲染纹理编写着色器时,必须执行以下操作
#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
        }
    }
}