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