现代计算机图形学入门-Lecture04 transformation cont
上节课补充:
1.Basic 3D Transformations
(1)Scale
(2)Translation
(3)Rotation around x-, y-, or z-axis
z叉乘x得到y所以y是反的
绕x 轴,第一列1000
绕y轴,第二列0100
2.3D Rotations
任意一个旋转都可以被分解成由绕x,y,z轴的三个旋转的组合,称为欧拉角
3.Rodrigues’Rotation Formula
旋转轴n,起点认为在原点上
4.Viewing transformation
Model view projection 模型视图投影
(1)Define the camera first
(2)Key observation
约定了将摄像机的位置(0,0,0),永远往-z方向看,以y轴为向上方向。
(3)Transform the camera by Mview
Mview in math:Mview = RviewTview
Translate e to origin
Rotate g to -Z,(g x t)to X
在写旋转矩阵的时候,从g,t和 gxt变换到-Z、Y、X不好写,但是可以反过来。只要求出Rview 的逆矩阵,再求逆,即可得到Mview
旋转矩阵是正交矩阵,所以该矩阵的逆就是该矩阵的转置矩阵
5.Projection transformation
正交投影与透视投影
(1)Orthographic projection
简单的理解方式是将所有三维空间的物体挤压到一个二维的平面,也就是将所有物体的z坐标直接去掉。
先把长方体平移到原点,再把其他边变为(-1,1)映射成一个中心在原点的立方体
在X轴上,定义左和右(l和r),在Y轴上,下和上(b和t),在Z轴上,远和近(f和n)
(2)Perspective projection
将左侧这个视锥挤成右边这个长方体,再做一次正交投影
挤压之后,远平面在挤压过程中,Z值不会变;远平面的中心点在挤压之后也不会发生变化
如何挤压?
近平面在挤压之后,任何一个点都不会变,远平面在挤压过程中,Z值不会变
前两行跟x,y无关,所以一定是0
经过挤,压远平面中心点不变
两个式子联立,求出AB
整个变换的矩阵全部填完了
继续做正交投影才是透视投影
Mpersp= MorthoMpersp->ortho