计算机图形学
ch1绪论
1.1计算机图形学及其概念
计算机图形学(Computer Graphics)是研究怎样利用计算机来生成、处理和显示图形的原理、方法和技术的学科。
cg研究对象是图形
图形的要素
- 几何(轮廓、点、线、面)
- 非几何要素(色彩、纹理)
图形的表示方法
- 参数法(图形,面向对象表示,代码生成)
- 点阵法(图像,像素组成,扫描输入)
cg与相关学科的关系
1.2计算机图形学发展概况
设备
-
随机扫描
-
存储管式
-
光栅扫描
官方标准
GKS PHIGS
非官方标准
DirectX Xlib Postscript OpenGL
1.3计算机图形学应用领域
虚拟现实 地理信息系统
1.4计算机图形学技术
OpenGL Web3D ACIS
ch2计算机图形系统
2.1计算机图形系统概述
计算机系统功能:计算、存储、对话、输入、输出
计算机系统包括
- 图形硬件
- 图形软件
图形硬件包括
- 计算机平台
- 图形设备(输入、输出、显示和绘制)
图形软件包括
- 数据结构
- 应用软件
- 支撑软件
2.2计算机图形硬件系统
输入设备
- 键盘
- 鼠标
- 光笔
- 触摸屏
- 触摸板
- 操纵杆
- 跟踪球
- 空间球
- 数字化仪
- 扫描仪
输出设备
- CRT
- 随机扫描显示器(顺序扫描)
- 光栅扫描显示器(随机扫描)
阴极射线管(CRT)显示器原理
电子枪发射电子束,经过聚焦系统、加速电极、偏转系统,轰击到荧光屏的不同部位,被其内表面的荧光物质吸收,发光产生可见的光点。即发射、聚焦、加速、偏转、显示
CRT分辨率
CRT在水平或竖直方向单位长度上能识别的最大光点个数(物理分辨率)
刷新频率
每秒的重绘次数
点距
光点的距离
光栅扫描
电子束依照固定的扫描线和规定的扫描顺序进行扫描。
双缓存技术
一个缓存用来刷新的同时,另一个写入数据信息,尔后这两个缓存可互换角色。这种方式称为双缓存
帧缓存作用
存储屏幕像素的颜色信息
帧缓存保存像素信息的方式
- 像素颜色值
- 像素颜色在查色表的索引值
位面技术
显存分成若干颜色的位平面(bit plane)。每像素一位的帧缓存称为位图(bitmap)
颜色查找表
帧缓存保存颜色的索引,而不是颜色本身
2.3计算机图形软件系统
计算机图形接口标准
CGI
计算机图形文件元标准
CGM SVG
图形核心系统标准
GKS PHIGS GL
交互式图形系统标准
STEP IGES
ch3二维图形生成算法
3.1直线
哪个方向平把哪个作为自变量,下面都假设0°<=arctan(Δy/Δx)<=45°,注意三种方法在自变量改变时,增量也会对称改变
DDL
因变量变化量=Δy/Δx(向下取整)
中点画线
通过判断备选点中点带入一般式方程后的正负取点,为了不用小数计算,算式都乘2
设d(x,y)=ax+bx+c
Δ0=d(x+1,y+0.5)-d(x,y)=2a+b
Δk>0 选(x+1,y) Δ(k+1)=Δk+2a
Δk<=0 选(x+1,y+1) Δ(k+1)=Δk+2(a+b)
Bresenham
通过判断准确点带入一般式方程后与备选点坐标的对比取点(Δy/Δx与1/2的比较),为了不用小数计算,算式都乘2Δx
Δ0=((f(x+1)-y)-1/2)**2Δx=(Δy/Δx-1/2)*2Δx=2Δy-Δx
Δk>0 选(x+1,y+1) Δ(k+1)=Δk+2Δy-2Δx
Δk<=0 选(x+1,y) Δ(k+1)=Δk+2Δy
有点像中点和实际点比赛,谁赢了下次就多给点,但因为始终往前走所以2Δy必须存在
3.2圆
由圆的对称性知,只需画出八分圆就可以画出其他部分
数值微分
略
中点画圆
使用顺时针第一部分作图,用一般式作为判断
Δ0=1-r
Δk>0 圆外,选(x+1,y-1) Δ(k+1)=Δk+2(xk-yk)+5
Δk<=0 圆内,选(x+1,y) Δ(k+1)=Δk+2xk+3
Bresenham
Δ0=2(1-r)
求H和D哪个近就行
δHD=mH-mD=2(Δk+yk)-1
δHD<=0 选H Δk+1=Δk+2xk+1+1
δHD>0 选D Δk+1=Δk+2(xk+1-yk+1+1)
3.3区域填充
区域表示类型
- 顶点
- 点阵
- 内点
- 边界
扫描线填充
- 计算交点(极小值记2个,极大值记0个,否则记1个)
- 交点排序
- 交点配对
- 区间填色
有序边表填充
- 数据准备
- 求交建立边表(ymax x dx)
- 扫描转换(活性边表)
- 更新
- 删除
- 插入
- 绘制
种子填充
-
四连通(边界是八连通)
-
八连通(边界是四连通)
方法
- 种子入栈
- 栈非空时重复
- 出栈
- 填色
- 按连通方法入栈周围像素,若栈不空,跳至2.1继续
扫描线种子填充
- 入栈
- 栈非空时重复
- 出栈
- 左右延伸填充至xleft和xright
- 上下找未填充区间,把每个区间最右像素入栈,若栈不空,跳至2.1继续
3.4字符处理
-
点阵
字符定义为位图矩阵
-
矢量
3.5属性处理
1.线宽
- 刷子绘制
- 线刷子(有缺口)
- 方刷子(线宽与斜率有关)
- 实区域填充
2.线型
位屏蔽器
3.颜色
略
3.6反走样
例子
- 阶梯走样
- 细节遗失与失真
- 运动图形闪烁
解决
- 硬件:采用高分辨率的光栅扫描
- 软件:高分辨率计算,低分辨率显示
ch4图形的表示与建模
4.1规则形体的基本概念
基本图形元素
点
- 线-
面-
环
体
图形对象的描述
- 图形信息
- 几何信息
- 拓扑信息(9种关系)
- 非图形信息
4.2三维形体的存储模型
- 线框模型
- 表面模型
- 实体模型
4.3三维实体的表示方法
-
分解表示
- 空间位置枚举
- 八叉树
- 单元分解
-
构造表示
- 扫描表示
- 构造实体几何表示(CSG)
- 特征表示
-
边界表示
- 半边
- 翼边
- 辐射边
表示的评判指标
- 精确性
- 封闭性
- 有效性
- 简洁性
4.4非规则几何形体的表示
- 分形几何
- 粒子系统
- 形状语法
ch5交互式绘图技术
5.1交互式绘图系统概述
软件层次
- 应用程序
- 应用模型
- 图形系统
硬件层次
- 交互设备
图形系统的作用
应用程序和显示硬件之间的中介,起着将应用模型中定义的对象转化为模型视图的输出变换作用
输入模式
- 请求
- 采样
- 事件
5.2交互式绘图系统的输入处理
5.3交互式绘图的交互技术
- 构图
- 拾取
- 菜单
- 反馈
5.4交互式绘图系统的构造
ch6图形几何变换
6.1图形变换的数学基础
齐次坐标
n维坐标用n+1维表示
规范化齐次坐标
好处
为坐标系变换提供了有效方法
可以表示无穷远点(h=0)
6.2二维基本变换
平移
比例
旋转
对称
错切
仿射(前五种的任意组合)
复合变换
6.3三维基本变换
需要注意的
旋转
错切
对称
逆变换(即变回去)
绕任意轴的旋转,先将轴移至与Z轴重合
ch7图形观察显示
7.1二维图形观察
7.2二维图形裁剪
直线段裁剪
1.编码裁剪算法
都是0
都在内部全部保留
相乘不为0
都在外部,全部舍弃
不都是0且相乘为0
边裁边判断
2.中点分割算法
3.liang-Barskey算法
多边形裁剪
Sutherland-Hodgman逐边裁剪
ch9真实感图形绘制
常见坐标系
场景世界坐标系(右手)
场景局部坐标系(右手)
观察坐标系(左手)
设备坐标系
取景变换(视向变换)
场景坐标系->观察坐标系
物体的消隐
在给定视点和视线方向后,决定场景中哪些物体的表面是可见的,哪些是被遮挡不可见的。