Unity shader
外部特性声明
Properties{
//特性名(“外部名”,变量类型)= 默认值
_Color("color",Color)=(1,1,1,1) //颜色
_Skininess("skininess",float)=0.5//浮点
_Position("position",Vector)=(0,0,1,1)//向量
_Range("Range",Range(0,1))=0.5//范围
_MainTex("MainTex",2D)="white" {}//采样图
}
语义
- 输入
POSITION //模型空间中顶点坐标
NORMAL//normal法线
TEXCOORD0//贴图1
TEXCOORD2//贴图2
...
- 输出
SV_POSITION//剪裁空间/视口空间的顶点坐标
NORMAL//视口空间中的法向
COLOR//片段颜色
SV_Target//视口对象
入口函数:顶点、片段函数
- 宏声明:
#pragma vertex vert
#pragma fragment frag
内部函数
自定义函数
CG标准库常用函数
mul():矩阵/向量乘法
tex2D():纹理映射
noise():噪声
saturate():限制【0,1】范围
sincos():传入angle弧度值,获取sin,cos值
lerp():线性插值
四大空间
-
世界空间:表示绝对位置关系,一般不在世界空间进行光照计算,
-
模型空间/建模空间:建模时候的物体空间
-
摄像机空间/眼睛空间:以摄像机为原点,y轴向上,摄像机面向z轴负方向的坐标系
-
剪裁空间/视口空间:从摄像机空间经投影变换而来的