UnityShader学习笔记(坐标空间知识)

UnityShader学习笔记(坐标空间知识)

空间变换

在这里插入图片描述在这里插入图片描述

模型空间

模型空间(modelspace),如它的名字所暗示的那样,是和某个模型或者说是对象有关的。有时模型空间也被称为对象空间(object space)局部空间(local space)。每个模型都有自己独立的坐标空间,当它移动或旋转的时候,模型空间也会跟着它移动和旋转。把我们自己当成游戏中的模型的话,当我们在办公室里移动时,我们的模型空间也在跟着移动,当我们转身时,我们本身的前后左右方向也在跟着改变。

世界空间

世界空间(world space) 是一个特殊的坐标系, 因为它建立了我们所关心的最大的空间。空间可以是无限大的,怎么会有“最大”这一说呢?这里说的最大指的是一个宏观的概念,也就是说它是我们所关心的最外层的坐标空间。

顶点变换的第一步, 就是将顶点坐标从模型空间变换到世界空间中。这个变换通常叫做模型变换( model transform )。

观察空间

观察空间(view space)也被称为摄像机空间(cameraspace)。观察空间可以认为是模型空间的一个特例一在所有的模型中有一个非常特殊的模型,即摄像机(虽然通常来说摄像机本身是不可见的),它的模型空间值得我们单独拿出来讨论,也就是观察空间。

顶点变换的第二步,就是将顶点坐标从世界空间变换到观察空间中。这个变换通常叫做观察变换(view transform)。

裁剪空间

顶点接下来要从观察空间转换到裁剪空间(clip space,也被称为齐次裁剪空间)中,这个用于变换的矩阵叫做裁剪矩阵(clip matrix),也被称为投影矩阵(projection matrix)。

屏幕空间

经过投影矩阵的变换后,我们可以进行裁剪操作。当完成了所有的裁剪工作后,就需要进行真正的投影了,也就是说,我们需要把视锥体投影到屏幕空间(screen space)中。经过这一步变换,我们会得到真正的像素位置,而不是虚拟的三维坐标。

unity中透视投影矩阵

dx中投影矩阵转换在这里插入图片描述
opengl中投影矩阵转换在这里插入图片描述

unity中透视投影矩阵

在这里插入图片描述
在这里插入图片描述

unity中正交投影矩阵

在这里插入图片描述在这里插入图片描述

unity屏幕空间公式

在这里插入图片描述

法线变换

法线向量是需要进行归一化的,它的长度必须为1.0。
法线向量是表示方向的,跟顶点不一样不是表示位置,所以法线向量只有三个分量,不存在齐次坐标。
法线向量的变换中,一般只有旋转变换和部分缩放变换。因为法线向量表示方向,平移后不变化,而且法线如果等轴缩放,归一化后也不变化,另外,法线主要是计算光照,透视变换也用不到。在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值