Shader"UnityShaderBook/SimpleShader"
{
SubShader
{
Pass
{
CGPROGRAM
#pragma vertex vert // 定义顶点着色器函数为vert
#pragma fragment frag // 定义片元着色器函数为frag
// 这两行是非常重要的编译指令,vert和frag分别是顶点着色器和片元着色器的函数名
float4 vert(float4 v:POSITION):SV_POSITION
{
return UnityObjectToClipPos(v); //将顶点进行MVP矩阵变换
}
fixed4 frag():SV_Target
{
return fixed4(1.0,1.0,1.0,1.0);
}
ENDCG
}
}
}
如果想要读取更多的顶点信息,需要引入结构体
Shader "Unity Shaders Book/Cha5/Simple shader Struct"
{
SubShader
{
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
struct a2v
{
float4 vertex : POSITION;
float3 normal : Normal;
float4 texcoord : TEXCOORD0;
}; //读取顶点的位置 法线 和第0套UV信息;
float4 vert(a2v v) : SV_POSITION
{
return UnityObjectToClipPos(v.vertex);
}
fixed4 frag() : SV_Target
{
return fixed4(1.0, 1.0, 1.0, 1.0);
}
ENDCG
}
}
}
网友评论