shader文件格式
Shader "ShaerName"{//UnityShader名称
Properties{
//属性
}
SubShader {
//显卡A使用的子着色器,至少一个subshader,包含多个pass(通道,每个通道执行一次渲染)
}
SubShader {
//显卡B使用的子着色器
}
FallBack "VertexLit"
}
shader文件示例
Shader "Custom/NewSurfaceShader"
{
Properties{}
SubShader
{
Tags { "RenderType"="Opaque" }
Pass
{
CGPROGRAM
#pragma vertex vert //设置顶点shader函数
#pragma fragment frag //片段shader函数
struct Input
{
float4 pos:POSITION;
};
struct Output
{
float4 pos:SV_POSITION;
float4 texcoord:TEXCOORD0;
};
Output vert(Input i)
{
Output o;
o.pos = UnityObjectToClipPos(i.pos);
o.texcoord = i.pos +float4(0.5,0.5,0.5,0);
return o;
}
float4 frag(Output i):Color
{
return i.texcoord;
}
ENDCG
}
}
}
shader绑定到material后,在cube上显示
shader的Properties,在material中配置
参考: https://blog.csdn.net/qq_36107199/article/details/86705121 https://blog.csdn.net/zhangxiao13627093203/article/details/52926686