数学常量 | |
宏 | 描述 |
UNITY_PI | 圆周率 |
UNITY_TWO_PI | 2倍圆周率 |
UNITY_FOUR_PI | 4倍圆周率 |
UNITY_INV_PI | 圆周率的倒数 |
UNITY_INV_TWO_PI | 2倍圆周率的倒数 |
UNITY_INV_FOUR_PI | 4倍圆周率的倒数 |
UNITY_HALF_PI | 半圆周率 |
UNITY_INV_HALF_PI | 半圆周率的倒数 |
UNITY_MATRIX_V | 观察矩阵 |
UNITY_MATRIX_P | 投影矩阵 |
UNITY_MATRIX_VP | 观察矩阵与投影矩阵的乘积 |
TANGENT_SPACE_ROTATION | 一个类型为float3x3的矩阵。这个矩阵由顶点的法线、切线,以及与顶点的法线和切线都垂直的副法线组成,构成了一个正交的切线空间。 |
unity_ObjectToWorld | 把一个顶点从模型空间变换到世界空间的变换矩阵 |
unity_WorldToObject | 把一个顶点从世界空间变换到模型空间的变换矩阵 |
_WorldSpaceLightPos0 | 世界空间中主光源位置 |
_WorldSpaceCameraPos | 世界空间中主摄像机位置 |
结构体 | |
顶点信息结构体 | 描述 |
appdata_base |
|
appdata_tan |
|
appdata_full |
该结构体定义了四层纹理坐标和顶点颜色,在做地形渲染时,通常会用到非常多的纹理以产生复杂多变的地面效果。
|
颜色空间工具函数 | |
函数 | 描述 |
bool IsGammaSpace() | 判断当前是否启用了伽马颜色空间。函数内部根据宏UNITY_COLORSPACE_GAMMA是否被启用了来做出判断。 |
float GammaToLinearSpaceExact(float value) | 把一个颜色值精确的从伽马颜色空间变换到线性颜色空间。 |
half3 GammaToLinearSpace(float sRGB) | 把一个颜色值近似的从伽马颜色空间变换到线性颜色空间。 |
float LinearToGammaSpaceExact(float value) | 把一个颜色值精确的从线性颜色空间变换到伽马颜色空间。 |
空间变换工具函数 | |
函数 | 描述 |
float4 UnityWorldToClipPos(in float3 pos) | 世界空间坐标转齐次裁剪空间坐标。 |
float4 UnityViewToClipPos(in float3 pos) | 观察空间坐标转齐次裁剪空间坐标。 |
float3 UnityObjectToViewPos(in float3 pos) | 模型局部空间坐标转观察空间坐标。 |
float3 UnityObjectToViewPos(float4 pos) |
重载版。 模型局部空间坐标转观察空间坐标。 |
float3 UnityWorldToViewPos(in float3 pos) | 世界空间坐标转观察空间坐标。 |
float3 UnityObjectToWorldDir(in float3 dir) | 把一个方向向量从模型空间变换到世界空间并进行单位化。 |
float3 UnityWorldToObjectDir(in float3 dir) | 把一个方向向量从世界空间变换到模型空间并进行单位化。 |
float3 UnityObjectToWorldNormal(in float3 norm) | 把某顶点的法线从模型空间变换到世界空间。 |
float3 UnityWorldSpaceLightDir(in float3 worldPos) | 返回从worldPos指向世界空间中光源位置_WorldSpaceLightPos0的方向矢量。 |
float3 WorldSpaceLightDir(in float4 localPos) | 函数先将localPos从模型空间变换到世界空间,再调用UnityWorldSpaceLightDir()函数计算从localPos指向世界空间中光源位置_WorldSpaceLightPos0的方向矢量。 |
float3 ObjSpaceLightDir(in float4 v) | 函数先将_WorldSpaceLightPos0从世界空间变换到模型空间,再计算从v指向模型空间中光源位置_WorldSpaceLightPos0的方向矢量。 |
float3 UnityWorldSpaceViewDir(in float3 worldPos) | 计算世界空间中worldPos到摄像机位置_WorldSpaceCameraPos的连线向量。 |
float3 WorldSpaceViewDir(in float4 localPos) | 函数会先将localPos变换到世界空间中。再计算世界空间中localPos到摄像机位置_WorldSpaceCameraPos的连线向量。 |
float3 ObjSpaceViewDir(in float4 v) | 函数会先将_WorldSpaceCameraPos变换到模型空间中。再计算模型空间中v到摄像机位置_WorldSpaceCameraPos的连线向量。 |