Shader初级学习(空间)

跟風遠走 提交于 2019-12-11 18:42:49

四种空间

  • 模型空间
  • 世界空间
  • 观察空间
  • 裁剪空间
    以下为个人理解,大佬请绕道

模型空间:建模时在模型空间进行,模型自带的坐标均为模型空间下的表示
观察空间:以摄像机位置为原点,摄像机局部坐标轴为坐标轴的坐标系
裁剪空间:一般理解为从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

光照模型

  • 高光反射
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!