UnityShader之空间变换解析

本文介绍了Unity中坐标空间变换的过程,包括模型空间、世界空间、观察空间和裁剪空间的转换。Unity提供了一系列矩阵,如UNITY_MATRIX_MVP、UNITY_MATRIX_MV等,用于协助进行这些变换。特别强调了UNITY_MATRIX_IT_MV矩阵在处理法线从模型空间到观察空间变换中的作用,以及在存在非统一缩放时如何避免方向失真。此外,还提到了UNITY_MATRIX_T_MV矩阵在正交矩阵情况下作为逆矩阵的替代使用,用于计算方向矢量从观察空间到模型空间的变换。
摘要由CSDN通过智能技术生成
都知道要渲染出一个物体,需要经历空间变换,模型坐标(通常由美术决定)----->世界坐标----->观察空间(相机位置决定)------------>裁剪空间(相机类型和参数决定)------->投影
unity提供了一系列的矩阵来帮助用户进行坐标空间变换,这里列个表记录下:

1:模型空间 2:世界空间 3:观察空间 4:裁剪空间

UNITY_MATRIX_MVP:将坐标或者方向从1到4
UNITY_MATRIX_MV:将坐标或者方向从1到3
UNITY_MATRIX_VP:将坐标或者方向从2到4
UNITY_MATRIX_V:将坐标或者方向从2到3
UNITY_MATRIX_P:将坐标或者方向从3到4

unity_ObjectToWorld:将顶点或者方向从1到2
unity_WorldToObject:unity_ObjectToWorld的逆矩阵,用于将顶点方向从2到1
重点讲下
UNITY_MATRIX_IT_MV:专门用于将法线从模型空间变换到观察空间,为UNITY_MATRIX_MV的逆转置矩阵,如果UNITY_MATRIX_MV为正交矩阵(意味着只有旋转操作),那么UNITY_MATRIX_MV就等于UNITY_MATRIX_IT_MV,如果有统一缩放操作,UNITY_MATRIX_IT_MV=(1/k)*UNITY_MATRIX_MV ,k为缩放系数((为什么不
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值