【计算机图形学理论】三维观察-投影变换
01 三维观察流水线
02 三维观察变换-模视变换
1.如何进行三维场景观察?
物体在世界坐标系内的物理位置并没有发生改变。
改变观察点的位置。
2.观察变换-建立观察(相机)坐标系
- 在世界坐标系中确定观察点(相机);
- 观察坐标系的原点放在观察点;
- 观察方向沿着z轴, 即z轴指向被观察物体参考点P;
- 观察坐标系采用左手坐标系。
3.世界坐标系到观察坐标系的变换-模视变换
把这点在世界坐标系下的坐标转换为在观察坐标系下的坐标。
实现思路:
将世界坐标系与观察坐标系重合,即将世界坐标系的原点Ow平移到观察坐标系的原点Ov,然后将右手世界坐标系变换为左手观察坐标系。
具体步骤:
第一步:世界坐标系原点到视点的平移变换。
第二步:绕y1轴顺时针旋转(180-α)角变换。
第三步:绕x2轴逆时针旋转(90-β)角变换。
第四步:关于y3OvZ3面反射变换。
03 投影变换概述
概念:
将三维物体变为二维图形的表示过程。
前提条件:
投影时平面几何投影(投影线是直线,投影面是平面。)
分类:
1.平行投影变换
基本概念:
投影中心:发出投影线的点,在无穷远点。(像太阳)
投影线:相互平行。
分类:正平行和斜平行投影。
正平行投影的性质:
直线投影大小与线段和投影面之间的距离无关。
正平行投影变换:
点(x,y,z)在xoy平面的正投影只需要去掉z坐标,为(x,y).
正平行投影的变换矩阵:
斜平行投影-轴测投影
2.透视投影变换
基本概念
- 投影线:不平行。
- 投影中心:到投影面的距离是有限的。
- 特点:所有的投影线都从空间一点投射,离视点近的物体投影大,离视点远的物体投影小,小到极点消失,称为灭点。三维物体中有多少组平行线就有多少个灭点。
- 主灭点:在坐标轴上的灭点。
分类:
观察坐标系到屏幕坐标系的变换:
屏幕坐标系和观察坐标系一样都为左手坐标系。
一点透视的变换矩阵
投影后屏幕坐标:
透视投影的观察体-观察空间
计算透视投影的伪深度坐标
【计算机图形学理论】三维观察-投影变换相关推荐
- 计算机图形学(三维观察投影线、视图变换、投影变换)
一.三维观察流水线 概念:将建立的三维场景显示在二维视口的过程称为三维观察流水线. 在三维观察流水线中,也就是在将三维场景显示在二维视口的过程中,需要在不同坐标系下进行不同的操作,这些坐标系包括: 建 ...
- 计算机图形学原理与实践 pdf,计算机图形学理论与实践.pdf
高校计算机教学系列教材 计算机图形学理论与实践 主 编 李春雨 副主编 邱道尹 谭同德 王玉琨 内容简介 在多年教学科研和开发的基础上K从计算机图形学的理论高度和计算机绘图的实用角度来 研究K编写这本 ...
- 计算机图形学实验——三维迷宫的创建及走迷宫过程中的交互功能的实现
计算机图形学实验2 三维迷宫的创建及走迷宫过程中的交互功能的实现 OpenGL三维迷宫创建及交互 三维"图元"的绘制 迷宫结构的储存 视角转换的实现 碰撞检测 纹理贴图 小结 Op ...
- 电影中计算机图形学发展,三维影视特效技术在动画电影产业中的发展历程
摘要: 三维影视特效技术和立体显示技术是近几年来被广泛应用于电影产业的炙手可热的制作手段,这些新颖的技术手段给电影工业带来的不仅仅是单纯技术上的突破,更多的是满足观众日益增长的艺术品味以及对视觉感受的 ...
- 图形学立方体三维观察之立方体视口变换
// 提示:在合适的地方修改或添加代码 #include <GL/freeglut.h> #include<stdio.h> // 评测代码所用头文件-开始 #include& ...
- 计算机图形学(三维对象的实体模型)
实体造型 计算机造型:如何在计算机中建立模型表示不同图形对象. 图形对象的描述包括图形信息和非图形信息. (1)图形信息又分为几何信息和拓扑信息.几何信息包括形体位置和大小,拓扑信息包括形体点.边.面 ...
- 计算机图形学之三维图形变换
三维物体几何变换 同二维变换一样,三维基本几何变换都是相对于坐标原点和坐标轴j进行的几何变换:有平移.比例.旋转.对称和错切等 与二维变换类似,引入齐次坐标表示,即:三维空间中的某点变换可以表示成点的 ...
- 计算机图形学实验-三维变换
第一步:创建三维正方体 创建新类CP3,该类中有三个变量x.y.z,一个变量w,用来进行矩阵运算,一个带参构造函数,用来传入三维点. CP2类也要创建一下. 在CView类中新建CP3类型的变量V,表 ...
- 【计算机图形学】三维图形投影和消隐(正等轴测投影图 消隐图构造)
模块4-2 三维图形投影和消隐 一 实验目的 编写三维图形各种变换的投影或消隐算法 二 实验内容 1:自行选择三维物体(不能选长方体),建立坐标系,给定点的三维坐标值,建立边表结构,完成正等轴测投影图 ...
最新文章
- 如何用css让一个容器水平垂直居中
- Python实现PS滤镜Fish lens图像扭曲效果示例
- 科大星云诗社动态20210819
- C++基础学习(01)--(介绍,环境配置,基本语法,注释)
- android 文件删除命令大全,Android中删除sdcard里文件的命令
- java 对称加密 教程_Java 对称加密算法DES 的使用教程
- Android8.1 Camere1+HAL3获取分辨率和芯片支持不一致(二十一)
- Scala编程指南——用更少的字做更多的事
- JAVA Thread的中断机制(interrupt)
- 第9批候选!高工智能汽车金球奖入围年度产品/方案公示
- Vue使用js读取Excel数据
- 第115章 SQL函数 REPEAT
- html向下的箭头符号,向下的箭头符号
- 2020 春节集五福最详细收集攻略
- Mac 系统更新系统安装包损坏丢失,崩溃
- wifi底层学习之路:四,iw指令剖析
- 邮件发送求职简历四大注意事项
- 【笔记】html 图片映射 usemap(vue环境下、map、area、coords)
- day25/RegexDemo1.java
- 关于MIT6.828_HW9_barriers xv6 homework9的一些问题