1.UnityObjectToClipPos(float4 pos)
把pos从object space 转换到 clip space.
2.把法线从局部控件转换到世界空间
(1)UnityObjectToWorldNormal(float3 normal)
(2)mul(i.normal, unity_WorldToObject);
3.片元-->模版测试-->深度测试-->混合-->颜色缓冲区
4.透明度测试
指定片元的透明度不满足条件,那么这个片元就会被丢弃,被丢弃的片元不做任何处理,也就没有上面第3点中片元之后的任何操作。使用clip函数来进行测试
5.WorldSpaceViewDir
输入模型空间坐标,返回一个世界空间中该点到摄像机的观察方向
6.ObjSpaceViewDir
输入模型空间坐标,返回一个模型空间中该点到摄像机的观察方向
7.WorldSpaceLightDir
输入模型空间坐标,返回一个世界空间中该点到光源的光照方向
8.ObjectSpaceLightDir
输入模型空间坐标,返回一个模型空间中该点到光源的光照方向
9.UnityWorldSpaceViewDir
输入一个世界空间坐标,返回一个世界空间中该点到摄像机的观察方向
10.UnityWorldSpaceLightDir
输入一个世界空间坐标,返回一个世界空间中该点到光源的光照方向
11.UnityObjectToWorldDir
把向量从模型空间转换到世界空间
12.UnityWorldToObjectDir
13.Unity中的uv原点坐标是在左下角
14.环境光颜色
UNITY_LIGHTMODEL_AMBIENT
15.如何写入深度到屏幕空间的depth texture
(1)shader中有LightMode 为 ShadowCaster的pass, 该pass可以自定义或者存在与Fallback中
(2)Render Queue <= 2500
(注:对于透明clip的,我们要自定义ShadowCaster来剔除掉对应片元,阻止写入depth texture中)
16._WorldSpaceCameraPos(float3)
摄像机的世界空间下的坐标
17._ProjectionParams
x 1.0f或者是-1.0,如果当前渲染使用的是翻转矩阵
y 摄像机的近裁剪面
z 摄像机的远裁剪面
w 1/farplane
18._ScreenParams
x 摄像机渲染目标纹理的宽度(像素单位)
y 摄像机渲染目标纹理的高度(像素单位)
z 1.0 + 1.0/width
w 1.0 + 1.0/height
19.float4x4等类型变量是按行优先的方式存储