美术生零基础转行TA中(第6天)

20240313 学习目标:

  • 刷课至4.2

学习内容:

4.2 基本运算符

1、属性定义
_Name ( “Display Name , 2D”)= " " { }

2、CG中声明
sampler2D _Name ;

3、着色器中采样
tex2D ( _Name , UV ) ;

4、贴图采样步骤

Shader "taecg/FrameWork"
{
    properties
    {
    _Tex ( "Text" , 2D ) = "White" { }

    }
    SubShader
    {
        pass
        {
            CGPROGRAM
            #pragma vertex vert
             #pragma fragment frag
             
             spmpler 2D _Tex;
             
             struct appdata
             {
                 float4 vertex : POSITION ;
                 float4 uv       : TEXCOORD1;
             } ;
             
             struct v2f
             {
                 float4 pos : SV_POSITION ;
                 float4 uv    : TEXCOORD1;
             } ;
             
             v2f vert (appdata v)
             {
                 v2f o ;
                 o.pos = UnityObjectToClipPos ( v.vertex ) ;
                 o.uv = v.uv ; 
                 return 0 ;
             }
             
             fixed4 frag (v2f i) : sv_TARGET
             {
                 fixed4 tex = tex2D( _Tex, i.uv);
                 return tsx;
             }
             
             ENGCG

        }
    
    }

}

4.2 Shader与材质的关系

  • 一个Shader可以对应多个材质
  • 语法格式:[ Attribute ] _Name ( " Display Name" ,Type ) = Defoult Value
    • [ Attribute ]:性质
    • _Name:变量名
    • " Display Name":曝露名
    • Type:类型
    • Defoult Value:默认值
Shader "taecg/FrameWork"
{
    properties
    {
    _Tex ( "MainTex" , 2D ) = "White" { }
    _Value ( " Value " , float ) = 0.35
    _Color ( "Color",color ) = (1,0,0.8,1)

    }
    SubShader
    {
        pass
        {
            CGPROGRAM
            #pragma vertex vert
             #pragma fragment frag
             
             spmpler 2D _MainTex;
             
             struct appdata
             {
                 float4 vertex : POSITION ;
                 float4 uv       : TEXCOORD1;
             } ;
             
             struct v2f
             {
                 float4 pos : SV_POSITION ;
                 float4 uv    : TEXCOORD1;
             } ;
             
             v2f vert (appdata v)
             {
                 v2f o ;
                 o.pos = UnityObjectToClipPos ( v.vertex ) ;
                 o.uv = v.uv ; 
                 return 0 ;
             }
             
             fixed4 frag (v2f i) : sv_TARGET
             {
                 fixed4 tex = tex2D( _MainTex, i.uv);
                 return tsx;
             }
             
             ENGCG

        }
    
    }

}

4.2 基本运算符

  • 击打闪白效果
Shader "taecg/FrameWork"
{
    properties
    {
    _Tex ( "MainTex" , 2D ) = "White" { }
    _Color ( "Color",color ) = (1,1,1,1)

    }
    SubShader
    {
        pass
        {
            CGPROGRAM
            #pragma vertex vert
             #pragma fragment frag
             
             spmpler 2D _MainTex;
             fixed4 _color ;
             
             struct appdata
             {
                 float4 vertex : POSITION ;
                 float4 uv       : TEXCOORD1;
             } ;
             
             struct v2f
             {
                 float4 pos : SV_POSITION ;
                 float4 uv    : TEXCOORD1;
             } ;
             
             v2f vert (appdata v)
             {
                 v2f o ;
                 o.pos = UnityObjectToClipPos ( v.vertex ) ;
                 o.uv = v.uv ; 
                 return 0 ;
             }
             
             fixed4 frag (v2f i) : sv_TARGET
             {
                 fixed4 c;
                 fixed4 tex = tex2D( _MainTex, i.uv);
                 c = tex ;
                 c + = _Color;
                 return c;
             }
             
             ENGCG

        }
    
    }

}

学习产出:

  • 4.2
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值