基础只是我就不多说啦,开启我们的第一个shader——利用shaderlab创建一个白色的材质球
实现思路:白色的材质球,顾名思义,颜色的rgb的值为(1,1,1,1)(r,g,b,a)。
// Upgrade NOTE: replaced ‘mul(UNITY_MATRIX_MVP,)’ with 'UnityObjectToClipPos()’
Shader “Custom/FirstShader” {
SubShader{
pass{
CGPROGRAM//从CGPROGRAM到ENDCG为CG代码片段
#pragma vertex vert//编译指令(其中vert和frag为函数名)
#pragma fragment frag
//使用一个结构体定义顶点坐标的输入
struct a2v {
float4 peak:POSITION;//POSITION语义。将模型空间的顶点坐标填充到peak中
float3 normal:NORMAL;//NORMAL语义。将模型空间的法线方向填充到normal中
float4 texcoord:TEXCOORD0;//TEXCOORD0语义。将模型空间的第一套纹理坐标填充到texcoord中
};
//顶点着色器。SV_POSITION(顶点着色器的输出是裁剪空间中顶点坐标)
float4 vert(a2v v) :SV_POSITION{//POSITION语义返回一个float4类型的变量(将顶点坐标输入到v)
return UnityObjectToClipPos(v.peak);//顶点坐标从模型空间转成裁剪空间
}
fixed4 frag() : SV_Target{//没有输入
return fixed4(1,1,1,1);
}
ENDCG
}
}
学到了很多