您的位置:首页 > 理论基础

计算机图形学笔记(三):变换进阶

2020-08-05 19:48 881 查看

目录

  • 观测变换
  • 投影变换
  • 视频地址:https://www.bilibili.com/video/BV1X7411F744?p=4

    三维变换





    任意三维物体的旋转


    四元数

    四元数是简单的超复数。 复数是由实数加上虚数单位 i 组成,其中i^2 = -1。 相似地,四元数都是由实数加上三个虚数单位 i、j、k
    组成,而且它们有如下的关系: i^2 = j^2 = k^2 = -1, i^0 = j^0 = k^0 = 1 , 每个四元数都是
    1、i、j 和 k 的线性组合,即是四元数一般可表示为a + bi+ cj + dk,其中a、b、c 、d是实数。
    对于i、j、k本身的几何意义可以理解为一种旋转,其中i旋转代表X轴与Y轴相交平面中X轴正向向Y轴正向的旋转,j旋转代表Z轴与X轴相交平面中Z轴正向向X轴正向的旋转,k旋转代表Y轴与Z轴相交平面中Y轴正向向Z轴正向的旋转,-i、-j、-k分别代表i、j、k旋转的反向旋转。

    观测变换

    Viewing transmation

    学习目的:为了弄清楚 三维->二维 经历了那些变换

    视图/摄影机变换

    什么是视图变换

    与拍照类比:

    • 物体(motion)
    • 角度、位置(view)
    • 姿势(projection)
      MVP变换

    相机参数(三个向量):

    • Position e
    • gaze direction g
    • up direction t

    举例:把相机放在标准位置(0,0)上

    之前在对物体做变换的时候,是先旋转后平移;
    而对摄像机做变换,需要先平移后旋转

    要求摄影机的旋转很困难(难以通过理解来把它直接地写出来),可以求它的逆变换,即:

    • 把(0,0,1)(z轴)旋转到g的位置处
    • 把(0,1,0)(y轴)旋转到t的位置处
    • 把(1,0,0)(x轴)旋转到g叉乘t的位置处
      由于旋转矩阵是正交矩阵,所以它的逆矩阵就是它的转置

    投影变换


    正交投影

    正交投影不会产生“近大远小”,多用于工程制图


    以上变换写成矩阵的形式:

    缺陷:

    • 在右手系下用远近来标识物体在z轴上的距离,与常识相违背(远的数值小,近的数值大)
    • FIY: OpenGL就用了左手系

    透视投影

    人眼的成像方式,也是图形学中用得最广泛的投影



    为了透视投影,需要把距离摄像机远的点集挤压
    挤压遵循原则:

    • z轴上的点不变
    • 被挤压点集的中心点不变

    从侧面看,可以看到相似三角形





    远平面的中心点也满足不变的条件,将它代入:

    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: