如图,对于某个物体的渲染是通过操作点,或者渲染点组成的面两种方式。所以shader中有顶点函数和片元函数。
顶点函数通过对于渲染点,点之间部分通过插值运算得到,片元函数则是直接渲染点。
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
Shader"Custom/second"
{
Properties{
}
SubShader{
Pass{
CGPROGRAM
//顶点函数 这里只是声明了顶点函数的函数名
//基本作用是从模型空间到剪裁空间的转换(游戏环境到视野相机)
#pragma vertex vert//声明函数名
//片元函数 这里只是声明了片元函数的函数名
//返回屏幕上每一个像素的颜色值
#pragma fragment frag
//sv_osition是说明返回值是剪裁空间下的顶点坐标
float4 vert(float4 v:POSITION):SV_POSITION//position是通过语义告诉系统是干嘛的
{
//完成一个矩阵和一个positoion的运算
//float4 pos= mul(UNITY_MATRIX_MVP,V);
//return pos;
return UnityObjectToClipPos(v);
}
fixed4 frag():SV_Target
{
return fixed4(0.5,0.5,1,1);//用什么颜色去渲染片元
}
ENDCG
}
}
FallBack"VertexLit"
}