04 变换(模型、视图、投影)
MVP变换
MVP变换用来描述视图变换的任务,即将虚拟世界中的三维物体映射(变换)到二维坐标中。
MVP变换分为三步:
●模型变换(model tranformation):将模型空间转换到世界空间(找个好的地方,把所有人集合在一起,摆个pose)
●摄像机变换(view tranformation):将世界空间转换到观察空间(找到一个放相机的位置,往某一个角度去看)
●投影变换(projection tranformation):将观察空间转换到裁剪空间(茄子!)
在这之后,还有一个视口变换。
视图变换(View)
视图变换的目的是变换Camera位置到原点,上方为Y,观察方向为-Z,即
定义Camera:
- Camera位置 e
- 观察方向 g
- 视点上方向 t
规定:
- Camera的y轴正方向向上,z轴方向是 -x 叉乘 y(右手系)
- 对物体进行运动,摄像机会跟随着一起运动保持相对位置不变。
步骤
变换Camera位置到原点,上方为Y,观察方向为-Z:
模型变换和视图变换经常被一起叫作模型视图变换(ModelView Translation)即
投影变换(Projection)
投影变换分为两种:
- 正交投影变换:透视线平行
- 透视投影变换:透视线相交,近大远小
正交投影
透视投影
视口变换
视口变换
将处于标准平面映射到屏幕分辨率范围之内,即[-1,1]^2->[0,width]*[0,height], 其中width和height指屏幕分辨率大小
视锥
视锥表示看起来像顶部切割后平行于底部的金字塔的实体形状。这是透视摄像机可以看到和渲染的区域的形状。
定义视锥:
- 长宽比 Aspect
- 垂直的角度 FovY
利用视锥得到物体长宽高:
屏幕(Screen)
- 二维数组,数组元素为像素
- 典型的光栅成像设备
光栅(Raster)
- 德语中的屏幕
- 画在屏幕上
像素(Pixel <- PIcture element)
- 像素是一个颜色均匀的小正方形
- 颜色混合而成(红、绿、蓝)
屏幕空间
认为屏幕左下角是原点,向右是x,向上是y
规定:
- 像素坐标(Pixel’s indices)是(x, y)形式,x, y都是整数。
- 所有的像素都在(0, 0)到(width-1, height-1)之间
- 像素的中心:(x+0.5, y+0.5)
- 整个屏幕覆盖(0,0)to(width,height)
视口变换
中…(img-bRwKXua0-1710211927718)]
屏幕(Screen)
- 二维数组,数组元素为像素
- 典型的光栅成像设备
光栅(Raster)
- 德语中的屏幕
- 画在屏幕上
像素(Pixel <- PIcture element)
- 像素是一个颜色均匀的小正方形
- 颜色混合而成(红、绿、蓝)
屏幕空间
认为屏幕左下角是原点,向右是x,向上是y
[外链图片转存中…(img-X0B8gGMR-1710211927718)]
规定:
- 像素坐标(Pixel’s indices)是(x, y)形式,x, y都是整数。
- 所有的像素都在(0, 0)到(width-1, height-1)之间
- 像素的中心:(x+0.5, y+0.5)
- 整个屏幕覆盖(0,0)to(width,height)