第3章 计算机图形处理技术¶
学习目标¶
掌握常用图形(直线、圆弧、曲线)的生成算法及其在显示器上的呈现原理
理解二维/三维图形几何变换的矩阵表示及组合变换的合成方法
熟悉常用消隐算法(画家算法、Z 缓冲区)的基本思想与适用场景
核心概念¶
图形生成算法:在光栅显示器上生成基本图元(直线 DDA、bresenham、圆弧等)的方法
窗口与视区:在世界坐标系中定义的可见区域(窗口)和设备坐标系中对应的显示区域(视区)
齐次坐标变换:用 n+1 维向量表示 n 维几何变换,使平移、缩放、旋转等变换统一为矩阵乘法
几何变换矩阵:表示平移、旋转、比例、对称、错切等变换的二维/三维矩阵
投影变换:将三维模型映射到二维平面的过程,包括正平行投影(三视图)与轴测投影
消隐技术:识别并去除被遮挡的不可见线/面,使显示图形更具真实感
本章导读¶
本章从图形显示原理出发,介绍光栅显示器上直线的生成、几何变换的矩阵方法以及三维投影与消隐技术。这些内容是 CAD 软件实现视图操作(缩放、旋转、平移)和真实感显示的基础,也是理解 OpenGL 等图形 API 工作原理的预备知识。
3.1基本图形生成技术及算法¶
3.1.1图形在计算机屏幕上的显示¶
3.1.2图形的生成方法¶
轮廓线法
参数化法
图形元素拼合法
尺寸驱动法
三维实体投影法
3.2图形的几何变换技术¶
3.2.1窗口与视区¶
世界坐标系与窗口
设备坐标系与视区坐标系
世界坐标系与设备坐标系的转换
窗口与视区的变换
3.2.2二维图形几何变换¶
平移变换
旋转变换
比例变换
对称变换
错切变换
二维图形的组合变换
二维齐次变换矩阵¶
二维图形的齐次坐标变换可以用 3×3 矩阵表示:
其中,平移变换矩阵为:
旋转变换矩阵(绕原点旋转 \(\theta\) 角)为:
3.2.3三维图形几何变换¶
三维平移变换
三维旋转变换
三维比例变换
三维对称变换
三维错切变换
三维组合变换
3.2.4三维图形的投影变换¶
三视图
投影方向垂直于投影平面时称为正平行投影,通常说的三视图均属于正平行投影。
正轴测图
轴测图具有一定的立体感,可以帮助设计者或生产者了解物体的形状。
3.3图形的消隐技术¶
画家算法
画家算法的基本思想,是先把屏幕置为背景色,再把物体的各个面按其离视点的远近进行排序。离视点远的在表头, 离视点近的在表尾,构造深度优先表。然后,从表头至表尾逐个取出多边形,投影到屏幕上,显示多边形所包含的实心区域。 由于后显示的图形取代先显示的图画,而后显示的图形所代表的面离视点更近,所以,由远及近地绘制各面,就相当于消除隐藏面。
Z缓冲区算法
Z缓冲区算法需要一个帧缓冲区来存放各个像素的亮度值,还需要一个Z缓冲区来存放每个像素的深度值,即Z坐标。
关键术语¶
图形生成算法(Graphics Generation Algorithm)
设备坐标系(Device Coordinate System, DCS)
世界坐标系(World Coordinate System, WCS)
窗口(Window)/视区(Viewport)
齐次坐标(Homogeneous Coordinates)
变换矩阵(Transformation Matrix)
正平行投影(Orthographic Projection)
轴测投影(Axonometric Projection)
消隐(Hidden Surface Removal)
画家算法(Painter's Algorithm)
Z 缓冲区算法(Z-Buffer Algorithm)
深度优先表(Depth Priority List)
工程应用场景¶
- CAD 软件视图操作
二维/三维几何变换矩阵是 CAD 软件实现缩放、旋转、平移、镜像等视图操作的核心,用户拖动鼠标即触发对应变换矩阵的实时更新。
- 工程图三视图生成
通过正平行投影将三维模型沿主视图、俯视图、左视图方向投影,自动生成符合国标的工程图。
- 装配爆炸图与可视化
利用几何变换实现零件的位移/旋转爆炸分解,并结合 Z 缓冲区消隐技术呈现装配体的空间关系。
复习问题¶
什么是齐次坐标?为什么要引入齐次坐标来表示几何变换?
三视图与轴测图在投影方式上有什么本质区别?各自的工程用途是什么?
比较画家算法和 Z 缓冲区算法的优缺点,并说明各自的适用场景。
延伸学习建议¶
学习 OpenGL 或 WebGL 基础,亲手实现一个二维图形的平移/旋转/缩放交互程序
阅读 Foley《计算机图形学原理及实践》前 5 章,深化对图形管线与变换矩阵的理解
了解现代渲染引擎(Unity/Unreal)中的图形变换与消隐实现