Shader "MyShaderName"{
Properties{
//属性
}
SubShader{
//针对显卡渲染状态标签
Pass{
//设置渲染状态和标签
//开始CG代码片段
CGPROGRAM
//该代码片段的编译指令
#pragma vertex vert
#pragma fragment frag
//CG代码写这里
ENDCG
//其他设置
}
//其他需要的Pass
}
SubShader{
//针对显卡B的SubSHader
}
//上述 SubShader 都SubShader 都失败后用于回调的Unity Shader
Fallback "VertexLit"
}
#pragma vertex vert
#pragma fragment frag
#pragma vertex 函数名
#pragma fragment 函数名
方法:
float4 vert(float4 v : POSITION) : SV_POSITION{
return mul(UNITY_MATRIX_MVP, v);
}
返回值 函数名(参数名字 参数名 : 语义) : 语义{
return 返回值;
}
结构体:
struct StructName{
Type Name : Semantic;
Type Name : Semantic;
}
struct 结构体名{
变量类型 名字 : 语义;
变量类型 名字 : 语义;
}