• 特殊变换(读书笔记6 --- Real-Time rendering)


    本章主要介绍对于real-time graphics非常重要的矩阵变换和操作

    欧拉变换

    欧拉变换是构建使你自己(即相机)或者任何其他实体朝向某个方向的矩阵变换的最直观方式。

    首先必须确立默认的view direction.欧拉变换是三个矩阵的乘积,即如图所示的旋转。

     

    由于E是一连串的旋转,所以它也是正交的。所以它的逆矩阵就是

    欧拉角h,p,r代表head,pitch,roll的旋转角度和顺序。如,改变head的角度会使viewer摇脑袋说no,改变pitch会使它点头,rolling会使他的头斜向一边。

    使用欧拉变换时,可能会发生 gimbal lock(万向节锁)。万向节锁是指物体的两个旋转轴指向同一个方向。实际上,当两个旋转轴平行时,我们就说万向节锁现象发生了,换句话说,绕一个轴旋转可能会覆盖住另一个轴的旋转,从而失去一维自由度 欧拉角有一些限制。两个欧拉角很难结合在一起工作,如欧拉角插值不适合用来表示旋转插值(等角速度)。可以使用四元数插值来代替。

    从欧拉变换中提取参数

    从正交矩阵中提取欧拉参数h,p,r

     

    特殊情况,cosp=0时,f01=f11=0,不能用atan2函数

     矩阵分解

    矩阵分解的使用场合:

    1. 从一个object中提取scaling factors

    2. 特殊系统需要找到变换矩阵

    3. 确定某个model是否只经过了rigid-body变换

    4. 当只有object矩阵提供时,在动画中关键帧的插值

    5. 从旋转矩阵中去除shears

    绕任意轴旋转

    变换过程:先找到和r互相垂直的两个轴,作为basis,然后将base从standard basis变换到一个新的basis,再绕x轴(r)旋转 a 弧度,最后再变换回standard basis

    变换公式为

  • 相关阅读:
    The kernel’s command-line parameters(1)
    Linux kernel release 5.x <http://kernel.org/>(1)
    2020 LInux Kernel History Report(2)
    2020 LInux Kernel History Report
    Android下拉刷新,上拉加载
    多条目加载和适配器
    PAT:1071. Speech Patterns (25) AC
    PAT:1054. The Dominant Color (20) AC(map法)
    PAT:1054. The Dominant Color (20) AC(抓住最多的特点,处理不同和相同的情况,留下剩余的答案)
    PAT:1060. Are They Equal (25) AC
  • 原文地址:https://www.cnblogs.com/lxb0478/p/6323515.html
Copyright © 2020-2023  润新知