版本:Unity 6 (6000.0)
语言:English
内置渲染管线中的贴花 Surface Shader 示例
内置渲染管线中的卡通着色 Surface Shader 示例

内置渲染管线中的包裹漫反射 Surface Shader 示例

以下示例展示了包裹漫反射,它是漫反射照明的修改版本,其中照明“环绕”物体的边缘。它对于模拟次表面散射效果很有用。只有CGPROGRAM部分发生变化,因此,再次省略了周围的着色器在 GPU 上运行的程序。 更多信息
参见 术语表
代码

    ...ShaderLab code...
    CGPROGRAM
    #pragma surface surf WrapLambert

    half4 LightingWrapLambert (SurfaceOutput s, half3 lightDir, half atten) {
        half NdotL = dot (s.Normal, lightDir);
        half diff = NdotL * 0.5 + 0.5;
        half4 c;
        c.rgb = s.Albedo * _LightColor0.rgb * (diff * atten);
        c.a = s.Alpha;
        return c;
    }

    struct Input {
        float2 uv_MainTex;
    };
    
    sampler2D _MainTex;
        void surf (Input IN, inout SurfaceOutput o) {
        o.Albedo = tex2D (_MainTex, IN.uv_MainTex).rgb;
    }
    ENDCG
    ...ShaderLab code...

以下是它在使用纹理和不使用纹理的情况下,在一个方向光源位于场景场景包含游戏环境和菜单。可以将每个唯一的场景文件视为一个唯一的关卡。在每个场景中,您放置环境、障碍物和装饰,从本质上讲,您是在分段设计和构建游戏。 更多信息
参见 术语表
中的效果。

内置渲染管线中的贴花 Surface Shader 示例
内置渲染管线中的卡通着色 Surface Shader 示例