四种空间
- 模型空间
- 世界空间
- 观察空间
- 裁剪空间
以下为个人理解,大佬请绕道
模型空间:建模时在模型空间进行,模型自带的坐标均为模型空间下的表示
观察空间:以摄像机位置为原点,摄像机局部坐标轴为坐标轴的坐标系
裁剪空间:一般理解为从Scene中看到的空间
世界空间:理解为从Game窗口看到的空间
空间变换函数
UnityCG.cginc中一些常用的函数
摄像机方向(视角方向)
- float3 WorldSpaceViewDir(float4 v) 根据模型空间中的顶点坐标 得到
(世界空间)从这个点到摄像机的观察方向 - float3 UnityWorldSpaceViewDir(float4 v)
世界空间中的顶点坐标==》世界空间从这个点到摄像机的观察方向 - float3 ObjSpaceViewDir(float4 v) 模型空间中的顶点坐标==》模型空间从这个点到摄像机的观察方向
光源方向
- float3 WorldSpaceLightDir(float4 v) 模型空间中的顶点坐标==》世界空间中从这个点到光源的方向
- float3 UnityWorldSpaceLightDir(float4 v)
世界空间中的顶点坐标==》世界空间中从这个点到光源的方向 - float3 ObjSpaceLightDir(float4 v) 模型空间中的顶点坐标==》模型空间中从这个点到光源的方向
方向转换
-
float3 UnityObjectToWorldNormal(float3 norm) 把法线方向 模型空间==》世界空间
-
float3 UnityObjectToWorldDir(float3 dir) 把方向 模型空间=》世界空间
-
float3 UnityWorldToObjectDir(float3 dir) 把方向 世界空间=》模型空间
空间转换函数 -
UnityObjectToClipPos //模型空间转到剪裁空间中
-
UnityViewToClipPos
光照模型
- 高光反射
来源:CSDN
作者:哈氏奇
链接:https://blog.csdn.net/qq_42555291/article/details/103496083