北大计算机系多媒体与人机交互 1
第八讲 投影
8.1 三维图形的基本问题
8.2 平面几何投影
8.3 观察坐标系中的投影变换
*投影举例
8.4 三维图形的显示流程图
8.5 三维裁剪
*图形显示过程小结
北大计算机系多媒体与人机交互 2
8.1 三维图形的基本问题( 1/4)
– 显示器屏幕、绘图纸等是二维的
– 显示对象是三维的
– 解决方法 ----投影
– 三维显示设备正在研制中
– 二维形体的表示 ----直线段,折线,曲线段,多边形区域
– 二维形体的输入 ----简单 (图形显示设备与形体的维
数一致)
1,在二维屏幕上如何显示三维物体?
2,如何表示三维物体?
北大计算机系多媒体与人机交互 3
三维图形的基本问题( 2/4)
– 三维形体的表示 ----空间直线段、折线、曲线段、多
边形、曲面片
– 三维形体的输入、运算、有效性保证 ----困难
– 解决方法 ----各种用于形体表示的理论、模型、方法
– 物体之间或物体的不同部分之间存在相互遮挡关系
– 遮挡关系是空间位置关系的重要组成部分
– 解决方法 ----消除隐藏面与隐藏线
3,如何反映遮挡关系?
北大计算机系多媒体与人机交互 4
三维图形的基本问题( 3/4)
– 何谓真实感图形
? 逼真的
? 示意的
– 人们观察现实世界产生的真实感来源于
? 空间位置关系 ----近大远小的透视关系和遮挡关

? 光线传播引起的物体表面颜色的自然分布
– 解决方法 ----建立光照明模型、开发真实感图形绘制
方法
4,如何产生真实感图形
北大计算机系多媒体与人机交互 5
三维图形的基本问题( 4/4)
三维图形的基本研究内容
1,投影
2,三维形体的表示
3,消除隐藏面与隐藏线
4,建立光照明模型、开发真实感图形绘制方法
北大计算机系多媒体与人机交互 6
8.2 平面几何投影( 1/12)
? 照像机模型与投影
– 如何投影?
– 生活中的类比 --如何拍摄景物?
? 拍摄过程
– 选景
– 取景 --裁剪
– 对焦 —参 考点
– 按快门 --成像
? 移动方式
– 移动景物
– 移动照相机
? 两个坐标系
北大计算机系多媒体与人机交互 7
平面几何投影( 2/12)
– 投影 — 照 相机模型
? 选定投影类型
? 设置投影参数 – 拍 摄方向、距离等
? 三维裁剪 –取 景
? 投影和显示 –成 像
– 简单的三维图形显示流程图
北大计算机系多媒体与人机交互 8
平面几何投影( 3/12)
?平面几何投影及其分类
– 投影
? 将 n维的点变换成小于 n维的点
? 将 3维的点变换成小于 2维的点
– 投影中心 (COP:Center of Projection)
? 视觉系统 —观 察点、视点
? 电影放映机 —光 源
– 投影面
? 不经过投影中心
? 平面 --照 相机底片
? 曲面 —球 幕电影,视网膜
北大计算机系多媒体与人机交互 9
平面几何投影( 4/12)
– 投影线
? 从投影中心向物体上各点发出的射线
? 直线 —光 线
? 曲线 —喷 绘
– 平面几何投影
? 投影面是平面
? 投影线为直线
– 投影变换
? 投影过程
? 投影的数学表示
北大计算机系多媒体与人机交互 10
平面几何投影( 5/12)
– 投影分类 投影中心与投影平面之间的距离为无限
投影中心与投影平面之间的距离为有限
根据投影
方向与投
影平面的
夹角
根据投影
平面与坐
标轴的夹

北大计算机系多媒体与人机交互 11
平面几何投影( 6/12)
北大计算机系多媒体与人机交互 12
平面几何投影( 7/12)
– 透视投影
? 投影中心与投影平面之间的距离为有限
? 参数:投影方向
? 例子:室内白炽灯的投影,视觉系统
? 灭点:不平行于投影平面的平行线,经过透视投影之后收
敛于一点,称为灭点,
? 主灭点,平行于坐标轴的平行线的灭点。
– 一点透视
– 两点透视
– 三点透视
? 特点:产生近大远小的视觉效果,由它产生的图形深度感
强,看起来更加真实。
灭点的个数?
主灭点的个数由什么决定?
北大计算机系多媒体与人机交互 13
平面几何投影( 8/12)
北大计算机系多媒体与人机交互 14
平面几何投影( 9/12)
北大计算机系多媒体与人机交互 15
平面几何投影( 10/12)
– 平行投影
? 投影中心与投影平面之间的距离为无限
? 是透视投影的极限状态
北大计算机系多媒体与人机交互 16
平面几何投影( 11/12)
? 正投影与斜投影
北大计算机系多媒体与人机交互 17
平面几何投影( 12/12)
? 三视图:正视图、侧视图和俯视图
北大计算机系多媒体与人机交互 18
8.3 观察坐标系中的投影变换( 1/15)
-如何进行投影变换?
-观察坐标系
– 生活中的类比 --移动舞台还是移动摄像机
? 移动舞台
– 投 影(摄像)简单
– 移动难度大
? 移动摄像机
– 移动容易
– 投影复杂
变换的分解与合成
采用观察坐标系,投影简单
北大计算机系多媒体与人机交互 19
观察坐标系中的投影变换( 2/15)
– 什么是观察坐标系
? View Reference Coordinate或 VRC
? 照相机所在的坐标系
– 如何建立观察坐标系
? 坐标原点 ----聚焦参考点在底片(投影平面)上
的投影,称为观察参考点 VRP( View Reference
Point)
? n轴 ----照相机镜头方向(投影平面的法向)
? v轴 ----照相机向上的方向(观察正向)
? u轴 ---- nvu ??
北大计算机系多媒体与人机交互 20
观察坐标系中的投影变换( 3/15)
北大计算机系多媒体与人机交互 21
观察坐标系中的投影变换( 4/15)
– 为什么需要观察坐标系
? 简化和加速投影变换
? 投影平面 ---- n=0
? 投影中心 ---- ( 0,0,d)
?视见体
– 视见体是三维裁剪窗口
– 建立步骤
定义窗口
形成观察空间
形成视见体
发出射线
前后裁剪面
北大计算机系多媒体与人机交互 22
观察坐标系中的投影变换( 5/15)
– 投影参考点
? PRP:Projection Reference Point
? 透视投影,COP==PRP
? 平行投影:投影方向 DOP=窗口中心 CW-PRP
北大计算机系多媒体与人机交互 23
观察坐标系中的投影变换( 6/15)
观察空间
有限观察空间亦称
视见体 或 裁剪空间
北大计算机系多媒体与人机交互 24
观察坐标系中的投影变换( 7/15)
参数 作用
投影类型 定义投影是平行投影还是透视投影
观察参考点 VRP 在世界坐标系中指定, 为观察坐标系原点
观察平面法向 VPN 在世界坐标系中指定, 为观察坐标的 n轴
观察正向 VUP 在世界坐标系中指定, 确定观察坐标系的 v轴
投影参考点 PRP 在观察坐标系中指定确定投影中心或投影方向
前裁剪面裁距 F 在观察坐标系中指定, n= F为前裁剪面
后裁剪面裁距 B 在观察坐标系中指定, n= B为后裁剪面
窗口 umin,umax,vmin、
vmax
在观察坐标系的 uv平面上指定, 确定窗口与视见体
定义一个视见体所需的投影参数及其作用
北大计算机系多媒体与人机交互 25
观察坐标系中的投影变换( 8/15)
?透视投影变换
– 问题 ----在 uvn中,投影平面为 n=0,投影中
心为( 0,0,d),待投影点为 P,求投影点
Q
北大计算机系多媒体与人机交互 26
观察坐标系中的投影变换( 9/15)
– 投影线的参数方程
– 投影平面方程 n=0
– Q点的坐标
?
?
?
?
?
???
???
??
??
),0[
)(
t
ddntn
vtv
utu
p
p
p
?
?
?
?
?
?
?
?
?
?
?
?
?
?
0
)/(1
)/(1
Q
P
P
Q
P
P
Q
n
dn
v
v
dn
u
u
由此式可解释为什么透视投影产生近大远小的视觉效果
北大计算机系多媒体与人机交互 27
观察坐标系中的投影变换( 10/15)
– 透视投影变换矩阵
perM
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
1
1
00
0000
0010
0001
d
M
p e r
PMQ p e r ??
北大计算机系多媒体与人机交互 28
观察坐标系中的投影变换( 11/15)
?平行投影变换
– 问题 ----在 uvn中,投影平面为 n=0,投影方
向为( 0,0,-1),待投影点为 P,求投影点
Q
北大计算机系多媒体与人机交互 29
观察坐标系中的投影变换( 12/15)
– 投影线的参数方程
– 投影平面方程 n=0
– Q点的坐标
?
?
?
?
?
???
??
?
?
),0[t
tdn
vv
uu
p
p
?
?
?
?
?
?
?
?
0Q
PQ
PQ
n
vv
uu
北大计算机系多媒体与人机交互 30
观察坐标系中的投影变换( 13/15)
– 平行投影变换矩阵
?透视投影与平行投影之间的关系
ortM
?
?
?
?
?
?
?
?
?
?
?
?
?
1000
0000
0010
0001
ort
M
PMQ o r t ??
北大计算机系多媒体与人机交互 31
观察坐标系中的投影变换( 14/15)
? 从世界坐标系到观察坐标系的变换
– 条件
? VRC的坐标原点(观察参考点) VRP(,, )
? 投影平面法向 VPN
? 观察正向 VUP
,,
VRPx VRP
y VRPz
?
?
?
?
?
?
?
?
?
???
?
?
?
?
??
],,[
],,[
],,[
zyx
zyx
zyx
vvvunv
uuu
V P NV U P
V P NV U P
u
nnn
V P N
V P N
n
记为
记为
记为
北大计算机系多媒体与人机交互 32
观察坐标系中的投影变换( 15/15)
– 结论
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
1000
100
010
001
1000
0
0
0
z
y
x
zyx
zyx
zyx
VRCWC
V R P
V R P
V R P
nnn
vvv
uuu
M
北大计算机系多媒体与人机交互 33
*投影举例( 1/5)
?待投影的单位立方体
?缺省投影参数
参数 值
投影类型 平行投影
VRP( WC) ( 0,0,0)
VPN( WC) ( 0,0,1)
VUP( WC) ( 0,1,0)
PRP( VRC) ( 0.5,0.5,1)
窗口( VRC) ( 0,1,0,1)
F(VRC) 正无穷
B(VRC) 负无穷
北大计算机系多媒体与人机交互 34
投影举例( 2/5)
?透视投影
– 一点透视
参数 值
投影类型 透视投影
VRP( WC) ( 0,0,0)
VPN( WC) ( 0,0,1)
VUP( WC) ( 0,1,0)
PRP( VRC)( 0.5,0.5,4)
窗口( VRC)( -0.5,1.5,-0.5,1.5)
参数 值
投影类型 透视投影
VRP( WC) ( 0,0,0)
VPN( WC) ( 0,0,1)
VUP( WC) ( 0,1,0)
PRP( VRC)( 2.0,2.0,4.0)
窗口( VRC)( -0.5,1.5,-0.5,1.5)
北大计算机系多媒体与人机交互 35
投影举例( 3/5)
– 两点透视
参数 值
投影类型 透视投影
VRP( WC) ( 0,0,0)
VPN( WC) ( 1,0,1)
VUP( WC) ( 0,1,0)
PRP( VRC) ( 0.5,0.5,4)
窗口( VRC) ( -1.5,1.5,-1.5,1.5)
参数 值
投影类型 透视投影
VRP( WC) ( 0,0,0)
VPN( WC) ( 1,0,1)
VUP( WC) ( 1,1,0)
PRP( VRC) ( 0.5,0.5,4)
窗口( VRC) ( -1.5,1.5,-1.5,1.5)
北大计算机系多媒体与人机交互 36
投影举例( 4/5)
?平行投影
参数 值
投影类型 平行投影
VRP( WC) ( 0,0,0)
VPN( WC) ( 0,0,1)
VUP( WC) ( 0,1,0)
PRP( VRC) ( 0.5,0.5,1)
窗口( VRC) ( -0.5,1.5,0.5,1.5)
参数 值
投影类型 平行投影
VRP( WC) ( 0,0,0)
VPN( WC) ( 1,1,1)
VUP( WC) ( 0,1,0)
PRP( VRC) ( 0.5,0.5,2)
窗口( VRC) ( -0.5,1.5,0.5,1.5)
北大计算机系多媒体与人机交互 37
投影举例( 5/5)
?前、后裁剪面的影响
参数 值
投影类型 透视投影
VRP( WC) ( 0,0,0)
VPN( WC) ( 0,0,1)
VUP( WC) ( 0,1,0)
PRP( VRC) ( 0.5,0.5,2)
窗口( VRC) ( -0.5,1.5,-0.5,1.5)
F( VRC) 1.2
B( VRC) 0.2
北大计算机系多媒体与人机交互 38
8.4 三维图形的显示流程图
(1/14)
?显示流程图
– 观察变换:从世界坐标系到观察坐标系的变

北大计算机系多媒体与人机交互 39
三维图形的显示流程图 (2/14)
?模型变换
– 模型坐标系
? Modeling Coordinate
? 物体的局部坐标系
? 在模型坐标系中物体的表示简单
北大计算机系多媒体与人机交互 40
三维图形的显示流程图 (3/14)
– 模型变换
? Modeling Transformation
? 将物体从本身的模型坐标系变换到上层物体的模
型坐标系(或世界坐标系)的几何变换
? 模型变换是构造复杂物体的方法
? 例子:
模型变换 1
北大计算机系多媒体与人机交互 41
三维图形的显示流程图 (4/14)
?何时裁剪
– 投影之前裁剪 ----三维裁剪
? 优点
– 只对可见的物体进行投影变换
? 缺点
– 三维裁剪相对复杂
– 投影之后裁剪 ----二维裁剪
? 优点
– 二维裁剪相对容易
? 缺点
– 需要对所有的物体进行投影变换
北大计算机系多媒体与人机交互 42
三维图形的显示流程图 (5/14)
– 采用二维裁剪的三维图形显示流程图
– 在投影之前裁剪的理由
? 三维物体的表面通常被离散表示成多边形或折线, 而对这
类简单图元, 三维裁剪同样比较简单 。
? 三维图形在显示过程中需要被消隐,做这个工作要有图形
的深度信息,所以必须在投影之前完成 。 消隐很费时,
如果在此之前裁剪(或部分裁剪)掉不可见的图形,可使
需要消隐的图形减至最小。
北大计算机系多媒体与人机交互 43
三维图形的显示流程图 (6/14)
?规范视见体
– 平行投影的规范视见体
? 半立方体
– 透视投影的规范时间体
? 四棱台
?
?
?
?
?
???
???
???
1,0
1,1
1,1
nn
vv
uu
?
?
?
?
?
????
???
???
1,
,
,
m i n nnn
nvnv
nunu
北大计算机系多媒体与人机交互 44
三维图形的显示流程图 (7/14)
– 为什么引入规范视见体
? 简化投影
? 简化裁剪
– 规范化变换
? 将任意视见体变换成规范视见体的变换
– 规范投影坐标(三维屏幕坐标 )
? 经规范化的观察坐标系
北大计算机系多媒体与人机交互 45
三维图形的显示流程图 (8/14)
– 采用规范视见体的三维图形显示流程图
北大计算机系多媒体与人机交互 46
三维图形的显示流程图 (9/14)
?平行投影视见体的规范化
– 将任意的平行投影视见体变换为规范平行投
影视见体
– 方法:变换的分解与合成
– 步骤
– 结果
12 parparparparpar TSHTSN ????
北大计算机系多媒体与人机交互 47
三维图形的显示流程图 (10/14)
北大计算机系多媒体与人机交互 48
三维图形的显示流程图 (11/14)
?透视投影视见体的规范化
– 将任意的透视投影视见体变换为规范透视投
影视见体
– 方法:变换的分解与合成
– 步骤
– 结果
p e rp e rp e rp e r TSHSN ???
北大计算机系多媒体与人机交互 49
三维图形的显示流程图 (12/14)
北大计算机系多媒体与人机交互 50
三维图形的显示流程图 (13/14)
? 规范视见体之间的变换
– 将透视投影的规范视见体变换为平行投影的规范视
见体
– 为什么
? 关于长方体的裁剪较关于正四棱台的裁剪简单 。
? 平行投影较透视投影简单 。
? 透视投影与平行投影都采用同一套裁剪与投影程序,处理
一致,便于用硬件实现。
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
??
?
0100
11
1
00
0010
0001
m i n
m i n
m i n
n
n
n
M
北大计算机系多媒体与人机交互 51
三维图形的显示流程图( 14/14)
– 将视见体变换结合到透视投影的规范化变换
矩阵中
– 采用视见体变换的三维图形显示流程图
p e rp e rp e rp e rp e r TSHSMNMN ???????
北大计算机系多媒体与人机交互 52
8.5 三维裁剪( 1/2)
?三维裁剪的两种方法
– 将齐次坐标转换为三维坐标,在三维空间关
于视见体裁剪
? 优点:三维裁剪相对容易
? 缺点:需要将齐次坐标转换为三维坐标
– 直接在四维齐次坐标空间中进行裁剪
? 优点:
– 不需要将齐次坐标转换为三维坐标
– 有理曲线曲面可能直接用齐次坐标来表示,对它们的
裁剪只能在齐次坐标空间中进行
? 缺点:四维裁剪相对复杂
北大计算机系多媒体与人机交互 53
三维裁剪( 2/2)
?关于规范视见体的裁剪
– 直线段裁剪的 Cohen_Sutherland算法,*梁 _Barskey
算法的直接推广
– 多边形裁剪的 Sutherland_Hodgman算法的直接推广
?齐次坐标空间中的裁剪
– 四维裁剪体的定义
北大计算机系多媒体与人机交互 54
*图形显示过程小结 (1/2)
? 对应于三维裁剪的实现过程
1、将三维坐标扩展为齐项坐标,(x,y,z)?(x,y,z,1);
2、进行模型变换;
3、进行观察变换;
4、进行视见体的规范化变换 Npar或 Nper;
5、除以 h返回三维空间(有些情况下,h保持为 1,所
以不必做除法运算);
6、关于规范视见体进行裁剪;
7、将三维坐标扩展为齐项坐标;
8、进行投影变换 Mort或 Mper;
9、进行窗口至视区的变换;
10、除以 h返回二维设备坐标系 ;
11、扫描转换(显示)。
北大计算机系多媒体与人机交互 55
*图形显示过程小结 (2/2)
?对应齐次坐标空间裁剪的实现过程
1,将三维坐标扩展为齐次坐标 ( 对于直接用齐次坐标
表示的图形不需要进行这一步 ) ;
2,进行模型变换;
3,进行观察变换;
4,进行视见体的规范化变换 Npar或 ;
5,在齐项坐标空间中关于裁剪窗口裁剪 ;
6,进行平行投影变换 Mort。
7,进行窗口至视区的变换 。
8、除以 h返回二维设备坐标系。
9、扫描转换(显示)。
?Nper
北大计算机系多媒体与人机交互 56
作业,自学 *号章节