基本数据类型与surface一致,就不在此文章赘述了
顶点语义绑定
float4 POSITION 顶点坐标位置
float3 NORMAL 顶点法线向量坐标
float4 TEXCOORD0 第一个UV坐标
float4 TEXCOORD1..N 第二个到第N个UV坐标
float4 TENGENT 顶点切线向量坐标
float4 COLOR 顶点颜色值
常用函数库
HLSLSupport.cginc 辅助为跨平台的着色器编译宏和定义
UnityShaderVariables.cginc 常⽤用全局变量量
UnityCG.cginc 常⽤用辅助函数
AutoLight.cginc 光、影函数
Lighting.cginc 光照模型相关
TerrainEngine.cginc 地形植被辅助
首先我们应该知道顶点片段着色器的基本框架
Shader "MyVFShader/VFShader_001"
{
Properties
{
}
SubShader
{
Pass
{
CGPROGRAM
//预编译指令关键词 | 函数类型 | 函数名
#pragma vertex vert //vertex 是顶点着色器
#pragma fragment frag // fragment 是片段着色器
void vert(){}
void frag(){}
ENDCG
}
}
}
接下来先来用顶点片段着色器写一个纯色的Shader
Shader "MyVFShader/VFShader_002"
{
Properties
{
_MainColor("颜色",Color) = (1,1,1,1)
}
SubShader
{
Pass
{
CGPROGRAM
//预编译指令关键词 | 函数类型 | 函数名
#pragma vertex vert //vertex 是顶点着色器
#pragma fragment frag // fragment 是片段着色器
//输入一个顶点坐标 名称vertexPos 语义绑定POSITION
//输出一个像素坐标 语义绑定SV_POSITION
float4 vert(float4