0
点赞
收藏
分享

微信扫一扫

Unity Shader 基本结构

眸晓 2022-01-24 阅读 78

Unity 版本:2020.3.23

此教程会长期更新,欢迎大家关注!!!

博主微信号:ITComputerGraph

首先,我们新建一个 Unlit Shader,Unity会自动给我们创建一个Shader,稍做修改,我们会得到一个可以调节颜色的Shader,并在接下来一步步讲解每一个代码块的函意,具体代码如下:

Shader "MyShader/NewUnlitShader"
{
    Properties
    {
        _Color ("Color", Color) = (1, 1, 1, 1)
    }
    SubShader
    {
        Pass
        {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag

            #include "UnityCG.cginc"

            struct appdata
            {
                float4 vertex : POSITION;
            };

            struct v2f
            {
                float4 vertex : SV_POSITION;
            };

            float4 _Color;

            v2f vert (appdata v)
            {
                v2f o;
                o.vertex = UnityObjectToClipPos(v.vertex);
                return o;
            }

            fixed4 frag (v2f i) : SV_Target
            {
                return _Color;
            }
            ENDCG
        }
    }
}

1、我们看最外层的大括号,这个是一个标准写法,它定义了我们Shader的名称和材质路径,可以让我们在编辑器里方便的找到它,并赋与材质球

Shader "MyShader/NewUnlitShader"
{
    ......
}

2、Properties 是材质的属性栏,我们每在属性栏里增加一个字段,对应的Unity材质面板就会多出一外部可调的参数

Properties
{
    _Color ("Color", Color) = (1, 1, 1, 1)
    _Color1 ("Color1", Color) = (1, 1, 1, 1)
}

3、SubShader 这个语句块里包含了具体的Shader代码逻辑

SubShader
{
    ......
}

4、Pass 这个语句块是在SubShader里面的,Pass是可以有多个的,每多一个Pass就会多一次绘制

Pass
{
    ......
}

Pass
{
    ......
}

下一节我们详细讲述每个语句块里的代码。

举报

相关推荐

0 条评论