12.5. 本章小结#
本章系统地介绍了计算机图形学中的核心内容——几何变换,阐述了如何通过数学工具来描述和操控二维及三维空间中的对象。
我们从基础的二维几何变换入手,包括平移、旋转、缩放和剪切。通过引入齐次坐标,我们将这些变换统一为矩阵乘法的形式,这不仅简化了变换的复合(如“先旋转后平移”),也为更复杂的仿射变换奠定了基础。齐次坐标还能自然地表达无穷远点,并区分点与向量,在后续的投影变换中展示了其威力。
随后,我们将讨论扩展到三维空间。三维变换中的平移和缩放是二维的直接扩展,但旋转变得更为复杂。本章详细介绍了两种主流的三维旋转表示方法:欧拉角和轴角表示法。欧拉角(如航空领域的偏航-俯仰-滚转角)直观易懂,但存在万向锁问题;轴角表示法(通过一个旋转轴和一个旋转角定义)更为通用,并引出了罗德里格斯旋转公式,但其插值相对复杂。
接着,本章探讨了坐标系之间的变换,解释了如何将对象从一个局部坐标系转换到另一个(如世界坐标系),以及如何在不同的坐标系统(如笛卡尔坐标系与球面坐标系)之间进行切换。这是构建复杂场景和实现相机功能的关键。
最后,我们聚焦于三维到二维的投影变换,这是将三维场景渲染到二维屏幕的核心步骤。本章详细推导了两种主要的投影方式:正交投影和透视投影。正交投影保持物体的比例关系,常用于工程制图;而透-视投影模拟了人眼的“近大远小”效果,更具真实感。我们通过将观察体(无论是长方体还是棱台)映射到规范化的立方体,推导出了这两种投影的变换矩阵,为现代图形渲染管线提供了理论基础。
12.5.1. 思考题#
为什么需要将透视投影表示为式 (12.18)?其中出现的问号项具有什么实际含义?
12.5.2. 习题#
在 §12.2.1 中我们提及,三次绕固定轴旋转的最终姿态和以相反顺序三次绕运动轴旋转的最终姿态相同。以 ZYX 欧拉角为例,证明:绕固定轴的 XYZ 旋转与绕运动轴的 ZYX 欧拉角所表示的旋转相同。
式 (12.20) 是透视投影矩阵被表示为了含有 \(x_\mathrm{min},x_\mathrm{max},y_\mathrm{min},y_\mathrm{max}\) 的形式,请将其改写为用相机参数表示的形式。以针孔相机模型为例,已知 \(x_\mathrm{min}+x_\mathrm{max}=y_\mathrm{min}+y_\mathrm{max}=0\),相机参数包括:
焦距 \(f\);
宽高比 \(\mathrm{aspect}=\frac{x_\mathrm{max}-x_\mathrm{min}}{y_\mathrm{max}-y_\mathrm{min}}\);
水平视场角 \(\mathrm{hfov}=2\arctan\frac{x_\mathrm{max}-x_\mathrm{min}}{2f}\);
近平面 \(z_\mathrm{near}\);
远平面 \(z_\mathrm{far}\)。
12.5.3. 参考文献#
Baoquan Chen and Arie Kaufman. Two-pass image and volume rotation. In Proceedings of the 2001 Eurographics Conference on Volume Graphics, VG'01, 329–344. Goslar, DEU, 2001. Eurographics Association.