因为unity shader的函数API不好找,碰到一个我就记录下来,下次好查。
1.坐标相关
float3 UnityObjectToWorldNormal(float3 normal):把法线方向从模型空间转换到世界空间
float3 UnityObjectToWorldDir(float3 dir) :把方向矢量从模型空间转换到世界空间
float3 UnityWorldSpaceViewDir(float4 v):输入一个世界空间的顶点坐标,返回世界空间的从该点到摄像机的观察方向
LinearEyeDepth:负责把深度纹理的采样结果转换到世界空间下的深度值,即Z'zisw
Linear01Depth:返回一个范围[0,1]的线性深度值,即 Z(01)
_ZBufferParams:得到远近裁剪平面的距离
_CameraDepthNormalsTexture:获取需要的深度+法线纹理
2.图片相关
1)float2 TRANSFORM_TEX(v.texcoord, _MainTex):作用是拿顶点的uv去和材质球的tiling和offset作运算, 确保材质球里的缩放和偏移设置是正确的,最后计算出实际显示用的定点uv
offset:指明使用贴图的起始位置,取值范围为0-1
tiling:指明从offset位置处的大小区域,区域的取值范围一般为(-1,1),超过的话部分会按比例生成新的区域拼接上原先的。