5.2.3 顶点着色器和偏远着色器的通信
Shader "Custom/Chap5.2.3/Simpler Shader"
{
SubShader {
pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
struct a2v {
float4 vertex: POSITION;
float3 normal: NORMAL;
float4 texcoord: TEXCOORD0;
};
struct v2f {
float4 pos: SV_POSITION;
fixed3 color: COLOR0;
};
v2f vert(a2v v) {
v2f o;
o.pos = UnityObjectToClipPos(v.vertex);
o.color = v.normal * 0.5 + fixed3(0.5, 0.5, 0.5);
return o;
}
fixed4 frag(v2f i): SV_Target {
return fixed4(i.color,1.0);
}
ENDCG
}
}
}
- vert 中返回的 o 会作为参数传入到 frag 中的 i 。 o 对应 output ,i 对应 input。