Foundations Of 3DComputer Graphics 中文第三章

所需积分/C币:10 2016-07-06 20:54:24 191KB PDF
收藏 收藏
举报

http://blog.csdn.net/hopposite 博客中连载的计算机图形学笔记系列, Foundations Of 3DComputer Graphics 翻译的第三章。 本章内容主要是一些概念的理解~ 1. 将坐标系从原先的三维拓展到了四维,从线性变换拓展到了仿射变换,简单理解就是从旋转/缩放变换增加了位移变换的功能。 2. 注意一下 *刚体变换* 这个概念,指的是只有 [旋转+位移] 的变换, 因为在这两种变换中,对象点与点之间的点乘关系不变,也就是说保持了刚体状态。 3. 最后讨论了仿射变换中,如何计算法线向量的问题
第三章AFFⅠNE仿射 24 我们来定义一个4乘4矩阵形式的仿射矩阵(1 ine matri. r f 9 h k 000 [对点进行仿射变换] 用以下方式对点=fc进行仿射变换: b3 b ae.20 k 或者简写为 fc→fAc 我们可以验证上面公式的第二行描述了一个合法的点,根据乘法 e f g h k 000 我们得到了一个4项的向量,其中第4项为1。此外,我们可以看到 k l 000 第三章AFFⅠNE仿射 其中0定义为0,我们得到了一个由3个向量和一个点组成的坐标系。 需要注意如果矩阵的最后一行不是0,0,0,1,那它通常会给我们一个非法的结 果 对坐标系进行仿射变换] 与线性变换相似,我们可以对坐标系进行仿射变换 → bf.0 cgk0 或者简写为 f→fA 3.3 Applying Linear Transformations to points 对点进行线性变换 将3x3线性矩阵嵌入到4x4仿射矩阵] 假设我们有一个表示一个线性变换的3乘3矩阵。我们可以将它嵌入到4乘4矩阵 的左上角,并使用这个更人的矩阵来对点(或坐标系)进行变换: 6 c k:0 这一变换与线性变换对α冇同样的效果。如果我们将点p看作从原点∂偏移了 向量,我们可以看出这一变换与对该向量进行线性变换具有同样的效果。所以,例 如,如果该3乘3矩阵是一个旋转矩阵,则这一线性变换会将该点绕着原点旋转(图 第三章AFFⅠNE仿射 26 31)。我们将会在第4章中看到,当对点进行线性变换时坐标系原点的位置会起到很 重要的作用。 [4x4矩阵的简写形式] 我们使用以下简写方式来措述只进行线性变换的4乘4矩阵 L 其中L是一个4乘4矩阵,是一个3乘3矩阵,右上角的0是一个由0组成的3 乘1矩阵,左下角的0是一个由0组成的1乘3矩阵,而右下角的1是一个标量。 0 Figure 3.1 对一个点进行线性变换。由对从原点出发到该点的向量进行线性变换来完成 3.4 Translations 位移 对点进行位移操作 对点的位移操作非常有用。这一变换不是线性的(见练习2.4)。仿射变换主要的新功 第三章AFFⅠNE仿射 7 能就在于,它能够表示位移。特别是,如果我们进行以卜变换 100t →bb0 010 3 我们可以看出它对坐标系向量造成的影响为 C1→C1+tx C2→C2+ C3→C3+t 对于位移,我们使用以下方式简写 T 其中T是一个4乘4矩阵,i是一个3乘3单位矩阵,右上角的t是一个表示位移 的3乘1矩阵,左下角的0是一个由0组成的1乘3矩阵,而右下角的1是一个标 注意,如果c的第4项为0,那么它表示向量而不是一个点,那么它就不会受 到位移的影响。 3.5 Putting Them Together 综合这些要素 综合线性与位移 第三章AFFⅠNE仿射 任意仿射矩阵都可以被分解为一个线性部分和一个位移部分 0 10he f 0 jk 001ijk0 000 000 000 或者简写为 A=TL (3.2 注意矩阵相乘是不满足互易性的,TL相乘的顺序有意义,一个仿射矩阵也可以 用一个不同的位移矩阵⑦被分解为A=Lm′,但我们不会使用这个形式 [刚体变换] A=TR (3.3) 在这个情况中,我们将矩阵A称作一个刚体矩阵( rigid body matris),它所进行的变 换称为刚体变换( rigid body transformation,或RBT。一个刚体变换保持了向量间 的点乘关系,向量基的手性信息,以及点与点之间的距离关系 3.6 Normals 法线 在仿射变换中处理法线信息 在计算机图形学屮,我们常常使用表面的法线信息来决定表面上的一个点应当如何 被着色。因此,我们需要了解当表面上的点发生由矩阵A所描述的仿射变换时,表 面的法线会如何变化。 有人会猜测我们可以将法线坐标系简单的与A相乘。例如,当我们旋转几何体 时,法线会以同样的方式旋转。但是使用矩阵A,事实上,并不总是正确。例如,如 图3.2所示,我们沿着y轴方向挤压一个球休。在此情况屮,实际上法线破沿着y 方向拉伸而不是挤压。在这里,我们需要在所有情况下都能适用的正确变换 第三章AFFⅠNE仿射 9 [定义法线为垂直于无穷接近的两个点相减的向量] 让我们定义一个光滑表面上某一点的法线(0ma)为一个向量,垂直于表面在 该点处的切线平面。切线平面是由在该表面上接近(无穷小)的点相减得到的向量来 定义的,由此,我们得到了 Figure 3.2 左:有色形状和黑色的法线。中:形状在y方向上被减小,并且(未被归一化的)法线在y方向 被拉伸。右:法线被重新校正为对挤压后形状来说正确的单位法线。 7·(p1-y0)=0 对于法线冗和两个在表面上非常近的点1和。在某些固定的正交坐标系统当中 它可以被表示为 0 1.2y02 (34) z1 20 我们在第4项使用”*”,因为它会与0相乘因而无关紧要 推导变换后的法线向量 假设我们使用一个仿射矩阵A来对我们所有的点进行仿射变换。那么什么向量 对于所有切线向量都保持垂直呢?我们将等式(34)重写为 C72y2 000 xy21 (3.5 第三章AFFⅠNE仿射 如果我们定义[x,y/,/,1]=Ax,y,z,1为一个变换后点的坐标系向量,并且让 na,ny,m,*]={nx,ny,m,1]A,那么我们有 C0′ 3.6 O 由此我们可以看出nx,my,n是形状变换后法线的坐标系向量(由缩放决定) 注意,我们不关心*”处的取值,因此我们也不关心A-1的第4列。同时,A 是一个仿射矩阵,因此A-1也是,由此得出余下3列的第4行全部为0可以安全的 被忽略。因此,使用简写 我们可以看出 nx/ ny/ ni=nx my nz t-1 (3.8 最终的法线向量 并将整个表达式转置,我们就得到了 ny/=l- ny (3.9 ≈1 0≈ 其中11是3乘3矩阵的逆转置(与转置的逆相等)。注意如果是一个旋转矩阵 该矩阵是正交的,因此它的逆转置实际上与l相同。在这个情况下,一个法线的坐 标系向量与一个点的坐标系向量表现相同。对于其他的线性变换,它们却有不同的 表现(图3.2)。也需要注意下,A的位移部分对法线没有影响。 Exercises 练习 31如果给出以下定义的对于点的运算:对于实数a,有a1p1+a22,其中1 ∑αa。证明它可以被解释为在3.1节开始部分描述过的对于点和向量的运算

...展开详情
试读 9P Foundations Of 3DComputer Graphics 中文第三章
立即下载 低至0.43元/次 身份认证VIP会员低至7折
抢沙发
一个资源只可评论一次,评论内容不能少于5个字
关注 私信 TA的资源
上传资源赚积分,得勋章
最新推荐
Foundations Of 3DComputer Graphics 中文第三章 10积分/C币 立即下载
1/9
Foundations Of 3DComputer Graphics 中文第三章第1页
Foundations Of 3DComputer Graphics 中文第三章第2页

试读结束, 可继续读1页

10积分/C币 立即下载 >