Shader(着色器)之各种空间概念

来源:互联网 发布:nga宁芙淘宝店地址 编辑:程序博客网 时间:2024/06/08 06:23
  1. 模型空间
    在Unity的脚本中,可以通过transform.wordToLocalMatrix这个矩阵的MultiplyPoint()或者MultiplyVector()的方法,把世界坐标表达的矢量转化为此物的模型空间表达的矢量,在Shader中,可以通过左乘_World2Object这个矩阵来完成此项任务。
  2. 世界坐标空间
    物体的Transfrom组件的localToWorldMatrix矩阵的MulitplyPoint和MultiplyVector方法能把此物体自身以模型空间坐标表达的矢量变换为以世界坐标表达的矢量,在Shader中,对应的矩阵_Object2World
  3. 视空间
//视空间,又称相机空间,是为了方便表达以相机为世界的中心时,所有物体的相互关系的一个空间
//我们可以通过相机的组件Camera组件的WorldToCamreaMatrix来把一个世界坐标的向量重新表示为一个以相机为中心的空间的表达式,如果想把一个相机空间的向量重新表示到世界坐标,可以用CameraToWorldMatrix来实现,在Shader中,有一个矩阵UNITY_MATRIX_MV可以把向量一次性从模型空间转换到视空间内。
  1. 空间的一块:视椎体

  2. 剪切空间

  3. NDC之后

原创粉丝点击