计算机图形学

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
•在我们可以看到边上其他面的时候,与投 影平面平行的面上的角度会被保持不变 •在现实世界中,不能通过简单的照相机创 建,可能需要折叠暗箱照相机或特殊镜头 才可以 •对计算机编程人员来说,不同的平行投影 之间没有很大不同
三点透视 Three-Point Perspective
•没有主面平行于投影平面 •立方体有三个灭点
•一个主方向平行于投影面 •立方体有两个灭点
两点透视 • 一个主方向平行于投影面
y
z
x
Projection plane
两点透视
Painting in two point perspective by Edward Hopper The Mansard Roof 1923 (240 Kb); Watercolor on paper, 13 3/4 x 19 inches; The Brooklyn Museum, New York
计算机图形学
Computer Graphics
第七讲 投影与视图变换
福州大学软件学院 陈昱
投影 Project
• 投影是将三维空间的一个坐标映射到 二维平面上一个点的过程,所见的区 域称为视见体
– 正交投影 – 透视投影
p 投影平面 P 的投影
经典观察
•视图需要三个基本元素 –一个或多个对象 –一个观察者和一个投影平面 –投影体从对象到投影平面
正交投影
• 投影线与投影平面成正交
多视图正投影
•投影平面平行于主面 •通常生成正视图,俯视图,侧视图
等轴测投影 (非多视图正投影)
在CAD和建筑领域,我 们通常显示三个多视图 正投影加上等轴测投影
俯视图
正视图 侧视图
优点和缺点
•线段被经过了缩短 (foreshortened) 但可以 找到缩放比率 •直线仍然是直线,但角度可能会改变
glMatrixMode(GL_MODELVIEW): glLoadIdentity(); gluLookAt(1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0., 1.0. 0.0);
•经典观察基于这些元素之间的关系 •每个物体被假定由平的主面构造而成
–建筑物体,几何物体,机械制造部件
平面几何投影分类
平面几何投影
平行投影
透视投影
多视图正投影 轴测投影
斜投影
一点透视
两点透视
三点透视
等轴测投影 正二测投影 正三测投影
几何流水线回顾
从场景创建一幅图像
• 计算机图形软件有三个主要部分:
– 建模:定义场景 – 视图和投影:定义如何查看场景 – 渲染:模型和视图被转换成一幅图像
• 今天,我们假设场景已经被建模,只 讨论如何定义查看场景的方式
平面几何投影 Planar Geometric Projections
•标准投影的投影面是平面 •投影线是直线
–会聚于投影中心 –或是平行的
•这样的投影保持直线关系
–但不会保持角度
•非平面投影也是有用的,比如构造地图 的应用
透视投影
投影线
灭点
优点和缺点
•保留了距离和角度
–物体的形状被保留了 –可以用于测量
•建筑计划 •手稿
•不能够看到物体真实的样子,因为许多 表明被观察隐藏了
–通常我们会加上等轴测投影
斜投影 Oblique Projection
•最一般的平行投影,投影线与投影平面成 任意角度,就得到了斜投影
透视投影 (perspective projection)
一点透视 One-Point Perspective
•一个主面平行于投影面 •立方体有一个灭点
一点透视 • 一个主面平行于投影面
计算机观察
•介绍投影的数学基础 •介绍 OpenGL 视图函数 •介绍可替代的观察API
移动照相机标架
• 如果我们希望在正方向和负方向上物体都是可见 的,我们可以 –向正方向上移动照相机 • 平移照相机标架 –向负方向上移动物体 • 平移世界坐标系
–一个圆在于投影平面不平行的面上的投影是一个 椭圆
•对立方体形状的对象可以看到三个主面 •物体看起来不够真实,因为远处的物体和 近处物体的缩放比率相同 •用在 CAD 应用中
灭点 Vanishing Points
•物体上的平行线(不需要和投影平面平行) 在投影中交汇在一个点(灭点,vanishing point) •就是通过这些灭点来手工绘制简单投影图
对象
投影平面
wenku.baidu.com
建模与视图
• 建模:计算机如何表示物体 • 观察(视图)和投影:观察者如何查
看物体
建模 Modeling
观察(视图) Viewing
经典观察
经典投影图
前立面图(正视图)
斜立面图
斜立面图
等轴测
平行投影
一点透视
三点透视
对象
投影线 投影平面 把投影中心移到无穷远处,成为投影方向
观察(视图) Viewing
• 物体与所成的图像是不同的,用不同 的方式观看可以看到不同的图像
经典观察
•介绍经典观察方法 •比较对比计算机成像方法和建筑家,艺 术家,工程师构图方法的不同 •每种观察方法的优点和缺点
透视 vs 平行
•计算机图形学用相同的方式处理所有的 投影,并用同一个流水线实现它们 •经典观察为绘制每种类型的投影发明了 不同的画法 •本质区别存在于平行和透视观察之间, 虽然数学上平行观察是透视观察的特例
轴测投影的类型
正二测投影
正三测投影
等轴测投影
透视投影 Perspective Projection
• 投影线交汇在投影中心
三点透视
• 三个主面都与投影平面都不平行
一副画(City Night, 1926) by Georgia O'Keefe, 近似展示 了三点透视
y
z
x
投影平面
两点透视 Two-Point Perspective
投影线汇聚到一点
轴测投影
•允许投影平面相对物体位移
通过投影的立方体的一个角有多少个 是相等的来分类 •没有相等的: 正三测投影 trimetric •两个相等: 正二测投影 dimetric •三个都相等: 等轴测投影 isometric
θ1 θ2 θ3
优点和缺点
•可以调整角度来强调特定的一个面 –建筑设计:plan oblique, elevation oblique
•这些观察方式是等价的,可以用模-视矩阵决 定
–一个平移变换 (glTranslatef(0.0,0.0,-d);)
–d > 0
LookAt 函数
•GLU函数库包含的函数 gluLookAt 可 以通过一个简单的接口生成期望的模 型视图矩阵 •注意需要指定向上的方向 •仍然需要初始化为单位矩阵 –可以与模型变换矩阵级联
相关文档
最新文档