1.我们已经清楚了unity shader的基本结构,它包含了shader,properties,subshader,fallback这样的语义块。看下面的结构。
#pragma vertex vert
#pragma fragment frag
这两行编译指令告诉unity哪个函数包含了顶点着色器代码,哪个函数包含了片元着色器代码。
float4 vert(float4 v:POSITION):SV_POSITION{
return mul(UNITY_MATRIX_MVP,v);
}
POSITION和SV_POSITION都是CG中的语义,这些语义告诉用户需要输入或者输出是什么,例如在上面所示POSITION代表把模型空间的顶点坐标填充到输入参数v中,SV_POSITION 表明了顶点着色器的输出是裁剪空间中的顶点坐标。在这个函数中的操作就是把顶点坐标从模型空间转换到裁剪空间。
UNITY_MATRIX_MVP
UNITY_MATRIX_MVP矩阵是unity内置的模型观察投影矩阵。
fixed4 frag():SV_Target{
return fixed4(1,1,1,1)
}
SV_Targrt是HLSL中的一个语义,代表把用户的输出颜色存储到一个渲染目标中。
点击蓝色字体关注---》欢迎关注我的微博,闲暇之余给大家带来欢乐
网友评论