正交投影
[43:00]
准备工作
把相机 view 变换为期望 view(转换到原点),方法是让相机参数乘以一个矩阵。
为了保持camera和object的相对位置不变,object也要同样乘以这样一个矩阵。
这样调整之后,object位于z轴负方向上的某个位置。
正交投影的主要过程
Mortho=Mscale⋅Mtrans
💡 PPT P21 [43:01]介绍了正交投影的一种简单理解的方式,让人能够直观地理解正交投影的结果,却也引入的歧义。让人误以为正交投影就是这么简单的过程。以至于后面讲正交投影的完整过程时听众会觉得confuse,为什么会有两个不一样的正交投影流程?因此在本文是中去掉了第一种理解方式。
正交投影中的平移
当前位置 | 期望位置 | |
---|---|---|
左右 | [l,r] | [-(r-l)/2, (r-l)/2] |
上下 | [b,t] | [-(t-b)/2, (t-b)/2] |
远近 | [f,n] | [-(n-f)/2, (n-f)/2] |
📌补充: 由于投影的设定,l在坐标值上,小于r;b小于t,f小于n(因为朝向-Z轴)
正交投影的平移矩阵为:
Mtrans=[100−r+l2010−t+b2001−n+f20001]
正交投影中的缩放
与平移同理。
正交投影的缩放矩阵为:
Mscale=[2r−l00002t−b00002n−f00001]
正交投影中的旋转
正交投影过程不涉及object的旋转,因此旋转矩阵Mrotation是单位阵。
此处变换顺序为:先平移再缩放无旋转,因此
M=Mscale˙Mtrans
本文出自CaterpillarStudyGroup,转载请注明出处。
https://caterpillarstudygroup.github.io/GAMES101_mdbook/