Skip to content

Commit 246cff2

Browse files
committed
add lesson advanced computer graphics
1 parent 2d00570 commit 246cff2

File tree

1 file changed

+205
-0
lines changed

1 file changed

+205
-0
lines changed
Lines changed: 205 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,205 @@
1+
---
2+
title: 计算机高级图形学 期末复习
3+
categories:
4+
- 校内课程
5+
- 计算机高级图形学
6+
abbrlink: 1b712153
7+
date: 2025-11-04 21:40:00
8+
updated: 2025-11-04 21:40:00
9+
---
10+
11+
<meta name="referrer" content="no-referrer"/>
12+
13+
# 第一章 绪论
14+
15+
## 本章复习重点
16+
17+
- 图形学和图像学的区别。
18+
- 走样的原因和反走样的概念。
19+
- 选择题(直线算法)。
20+
- 光栅显示系统。
21+
22+
<!-- more -->
23+
24+
## 计算机图形学概述
25+
26+
| | 图形处理 | 图像处理 |
27+
| -------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
28+
| 数据来源 | **多来源于主观世界,人为地由计算机产生,由数据描述而生成图形。** | **多来源于客观世界,来自对实物的拍摄、捡取。** |
29+
| 处理方法 | 图形处理技术包括:几何变换,拟合,图形操作,图形模型产生,图形处理,隐藏线,面的消除,浓淡处理,色彩纹理处理,图案生成等。 | 图像处理技术包括:图像几何修正(校正),图像采集、存储、编码、滤波、增强、压缩、复原、重建、图形理解识别等。 |
30+
| 理论基础 | 多利用数学矩阵代数、计算几何、分形几何等。 | 多利用二维数字信号滤波,各种信号正交变换等。 |
31+
| 应用领域 | 多应用 CAD/CAM/CAE/CAI 等领域,以及计算机艺术、计算机模拟、计算机动画、多媒体系统应用等。 | 多应用于多媒体系统,医学,遥感遥测,工业控制,监测监视,天文气象,军事侦察等。 |
32+
33+
## 图形学研究内容
34+
35+
1. 建模:创建用计算机表示的三维物体模型,主要是形状表述与定义。
36+
2. 渲染:通过各种矩阵变换从模型产生物体的二维图像,主要考虑光照、透视变换。
37+
3. 动画:描述物体运动变化。
38+
39+
## 光栅扫描系统
40+
41+
### 随机扫描与光栅扫描
42+
43+
随机扫描技术的本质是按照显示命令的任意顺序,将电子束从一个端点偏转到另一个端点。
44+
45+
<img src="https://cdn.davidingplus.cn/images/2025/11/04/image-20251104203112346.png" alt="image-20251104203112346" style="zoom:50%;" />
46+
47+
光栅图形具有对显示区域填充颜色或图案的能力,存储的图像更加易于操作。
48+
49+
<img src="https://cdn.davidingplus.cn/images/2025/11/04/image-20251104203145253.png" alt="image-20251104203145253" style="zoom:60%;" />
50+
51+
光栅显示器上的图形由光栅(raster)形成。
52+
53+
**光栅是一组互相平行的水平扫描线。每行扫描线是由大小一致的显示单元组成的显示序列,每一显示单元称为一个像素,可显示给定的颜色和灰度。**
54+
55+
光栅显示器将显示图元(primitive)如线、文字、填充颜色或图案区域等,以像素的形式存储到一个刷新缓冲器中。
56+
57+
### 光栅扫描系统
58+
59+
构成:
60+
61+
1. 帧缓冲区(Frame Buffer)。
62+
2. 视频控制器(Video Controller)。
63+
3. 显示处理器(Display Processor / GPU)。
64+
65+
视频控制器如何实现基本刷新:
66+
67+
1. 有两个寄存器用来存放屏幕像素的坐标。
68+
2. 存储在帧缓冲区中该像素对应位置的值被取出,并用来设置 CRT 电子束的强度值。
69+
70+
显示处理器的主要任务是**将应用程序给出的图形定义数字化为一组像素强度值,并存放在帧缓冲区中**。这个数字化过程称为**扫描转换(Scan Conversion)**
71+
72+
### 直线段的扫描转换算法
73+
74+
当我们对直线进行光栅化时,需要在显示器有限个像素中,确定最佳逼近该直线的一组像素,并且按扫描线顺序,对这些像素进行写操作,这个过程称为用显示器绘制直线或直线的扫描转换。
75+
76+
三种算法:
77+
78+
1. 基本增量算法(DDA)数值微分算法。
79+
2. 中点画线算法。
80+
3. **Bresenham 算法(使用最广泛)。**
81+
82+
#### DDA 算法
83+
84+
在一个坐标轴上以单位间隔对线段取样,则另一个坐标轴以常数 m 或 1/m 变化,从而获得线段上各像素点。
85+
86+
<img src="https://cdn.davidingplus.cn/images/2025/11/04/image-20251104205009793.png" alt="image-20251104205009793" style="zoom:50%;" />
87+
88+
算法迭代公式:
89+
$$
90+
\text{若 } |m| \le 1:
91+
\begin{cases}
92+
x_{k+1} = x_k + 1, \quad y_{k+1} = y_k + m, & (x_a < x_b) \\
93+
x_{k+1} = x_k - 1, \quad y_{k+1} = y_k - m, & (x_a > x_b)
94+
\end{cases}
95+
96+
\\
97+
98+
\text{若 } |m| \ge 1:
99+
\begin{cases}
100+
y_{k+1} = y_k + 1, \quad x_{k+1} = x_k + \dfrac{1}{m}, & (y_a < y_b) \\
101+
y_{k+1} = y_k - 1, \quad x_{k+1} = x_k - \dfrac{1}{m}, & (y_a > y_b)
102+
\end{cases}
103+
$$
104+
105+
#### Bresenham 算法
106+
107+
**只用整数计算寻找最接近实际直线的整数坐标。即从 Yk 和 Yk + 1 中取出最贴近 y 坐标的点作为拟合点,但只通过整数计算。**
108+
109+
<img src="https://cdn.davidingplus.cn/images/2025/11/04/image-20251104211634765.png" alt="image-20251104211634765" style="zoom:50%;" />
110+
111+
推导过程如下:
112+
$$
113+
\\
114+
\textbf{假定:} \quad 0 < m < 1
115+
\\
116+
117+
已知点 (x_k, y_k),求下一点 (x_{k+1}, y_{k+1})。(x_{k+1}, y_{k+1}) 的两种可能为:(x_{k+1}, y_k) \quad \text{或} \quad (x_{k+1}, y_k + 1)。其中:x_{k+1} = x_k + 1
118+
\\
119+
120+
\textbf{推导:}
121+
\\
122+
设两点与理想直线的距离分别为 d_1、d_2:
123+
124+
\\
125+
\begin{aligned}
126+
d_1 &= y - y_k = m x_{k+1} + b - y_k, \\
127+
d_2 &= y_{k+1} - y = y_{k+1} - (m x_{k+1} + b).
128+
\end{aligned}
129+
\\
130+
因此:d_1 - d_2 = 2m x_{k+1} - 2y_k + 2b - 1
131+
\\
132+
令:m = \frac{\Delta y}{\Delta x}
133+
\\
134+
代入上式,引入决策参数 P_k 表示相对距离:
135+
\\
136+
P_k = \Delta x (d_1 - d_2) = 2\Delta y x_k - 2\Delta x y_k + C
137+
\\
138+
其中:C = 2\Delta y + \Delta x (2b - 1)
139+
\\
140+
141+
\textbf{推论:}
142+
\\
143+
\begin{cases}
144+
P_k < 0, & \text{则选择 } y_{k+1} = y_k \\
145+
P_k \ge 0, & \text{则选择 } y_{k+1} = y_k + 1
146+
\end{cases}
147+
\\
148+
149+
P_k 的递推公式:
150+
\\
151+
152+
153+
\\
154+
\begin{aligned}
155+
P_{k+1} &= 2\Delta y x_{k+1} - 2\Delta x y_{k+1} + C, \\
156+
P_k &= 2\Delta y x_k - 2\Delta x y_k + C,
157+
\end{aligned}
158+
\\
159+
160+
两式相减得:
161+
\\
162+
P_{k+1} - P_k = 2\Delta y (x_{k+1} - x_k) - 2\Delta x (y_{k+1} - y_k)
163+
\\ = 2\Delta y - 2\Delta x (y_{k+1} - y_k)
164+
165+
\\
166+
\therefore \; {P_{k+1}} \text{ 的递推公式:}
167+
\\
168+
169+
P_{k+1} =
170+
\begin{cases}
171+
P_k + 2\Delta y, & (P_k < 0) \\[6pt]
172+
P_k + 2\Delta y - 2\Delta x, & (P_k \ge 0)
173+
\end{cases}
174+
\\
175+
176+
初始值为:\\
177+
178+
P_0 = 2\Delta y - \Delta x
179+
$$
180+
181+
#### 中点画线算法
182+
183+
用判别式判断点与直线的关系。
184+
185+
<img src="https://cdn.davidingplus.cn/images/2025/11/04/image-20251104213004956.png" alt="image-20251104213004956" style="zoom:50%;" />
186+
187+
算法思路:
188+
$$
189+
F(x, y) = (m x + b) - y \\[6pt]
190+
F(x_{k+1},\, y_k + 0.5) = 0,
191+
\quad \text{对应点 } (x_{k+1},\, y_{k+1}) \text{ 可能为 } (x_{k+1},\, y_k + 1) \text{ 或 } (x_{k+1},\, y_k) \\[6pt]
192+
\begin{cases}
193+
F(x_{k+1},\, y_k + 0.5) < 0, & \text{中点在直线上方,选择 } (x_{k+1},\, y_k) \\[6pt]
194+
F(x_{k+1},\, y_k + 0.5) > 0, & \text{中点在直线下方,选择 } (x_{k+1},\, y_k + 1)
195+
\end{cases}
196+
$$
197+
198+
### 走样与反走样
199+
200+
对于光栅系统来说,只能用光栅网格上的像素近似地描绘平滑的直线、多边形和圆、椭圆等曲线图元。如果引起了图中看到的**锯齿状或阶梯状的边界线问题**,在图形学中称为“走样”。
201+
202+
用于减少或消除这种现象的技术称为“反走样”。
203+
204+
<img src="https://cdn.davidingplus.cn/images/2025/11/04/image-20251104213414197.png" alt="image-20251104213414197" style="zoom:67%;" />
205+

0 commit comments

Comments
 (0)