图形学复习3——观察和裁剪
来源:互联网 发布:微信淘宝秒杀群怎么弄 编辑:程序博客网 时间:2024/06/04 18:36
图形学复习
CH5 二维观察
5.1 窗口、视口和二维观察流水线
窗口是指世界坐标系中要显式的区域称,窗口定义了显式的内容
视口是指窗口映射到显示器的区域,视口定义了在什么位置显示
通常将世界坐标系中一部分区域映射到设备坐标系的操作称为观察变换,二维观察变换流水线如下:
模型局部坐标→ 世界坐标 → 观察坐标 -(通过窗口视口描述)→ 规范化观察坐标 → 设备坐标
5.2 裁剪窗口到规范化视口的映射
通常所说的裁剪窗口就是窗口,即世界坐标系中要显示的区域,我们可以选择裁剪窗口的不同形状、大小以及方向来确定裁剪效果,也可以自己实现裁剪算法和变换算法获取特殊形状的裁剪窗口
大多数图形系统将规范化和窗口-视口转换合成一步,先让视口坐标在[0,1]范围内(即让视口位于单位坐标系内),裁剪后将包含视口的单位正方形(规范化视口)映射到输出设备
设窗口内点
![p2](./p2.png =480x)
为了保持视口和窗口中对象相对位置相同,必须满足等比例条件,求解出视口坐标为:
其中系数为:
不难发现,规范化变换的复合变换矩阵为
5.3 裁剪算法
识别指定区域内或区域外图形部分的过程称为裁剪,裁剪策略包括:
- 先裁剪后扫描转换
- 边扫描转换边裁剪
二维裁剪就是判断图形的点
二维裁剪包括了以下几个方面:
- 线段裁剪
- 多边形填充区裁剪
- 曲线裁剪
- 文字裁剪
裁剪算法有很多种(具体略),多数都是按照裁剪策略中的两种策略:
- 按裁剪窗口的四条边依次裁剪,裁剪四次后的到窗口内图形
- 沿图形边界扫描(按一定方向),保留在裁剪窗口内的点
CH6 三维观察
6.1 三维观察流水线
三维观察和二维类似,都需要裁剪并且流水线基本相同,但不同点在于:
- 投影:视口/设备屏幕总是二维的,总要把三维图形投影到二维平面中显示
- 识别可见部分:三维图形存在被遮挡部分,投影过程中被遮挡部分不被显示
- 光照:三维渲染效果
三维观察流水线如下:
模型局部坐标 -[建模变换]→ 世界坐标 -[观察变换]→ 观察坐标 -[投影变换]→ 投影坐标 -[规范化和窗口裁剪]→ 规范化观察坐标 -[视口变换]→ 设备坐标
定义观察点
选定观察物体上一点
6.2 投影变换
投影变换就是将维数为n的点变换成维数小于n的点,常见的投影有:
- 平行投影(包括正投影、斜投影):平行线投影
- 透视投影:汇聚线投影
(1)正投影
正投影是投影线垂直于投影平面(即观察平面)的平行投影
正投影裁剪窗口限制了观察坐标系中的x和y的限制,再定义两个近-远裁剪平面构成一个封闭的裁剪体,叫做正投影观察体
注意,投影过程中保留坐标的Z分量,用于可见性检查
下面是从正投影观察体[
(2)斜投影
斜投影是投影路径与观察平面不垂直的平行投影,斜投影投影坐标为:
(3)透视投影
记透视投影的汇聚点为投影参考点
其中
- 图形学复习3——观察和裁剪
- 计算机图形学——编码裁剪
- 光栅图形学算法——裁剪算法
- 图形学复习——中点BH算法
- 图形学复习2——几何变换
- 图形学学习笔记4——平面图形裁剪
- 图形学复习1——图形学图形系统概述与对象表示
- 图形学复习
- 裁剪算法(计算机图形学)
- 计算机图形学_复习整理(3)
- 图形学——材质和纹理
- 图形学复习4——光栅化(画线画圆扫描线反走样算法)
- 计算机图形学 复习笔记
- 图形学复习文档
- 图形学复习要点
- 《计算机图形学》实验四:裁剪
- 计算机图形学 - 多边形裁剪算法
- 计算机图形学基础(三) 观察1
- Flexbox布局
- [machine learning]clusteing algo and PCA
- poj 2409 Let it Bead 【poyla计数 打表】
- ThinkPHP3.2学习(2)入口文件
- vector和set的区别
- 图形学复习3——观察和裁剪
- php字符串处理函数大全
- 机房收费系统之子窗体显示的那些事儿
- 做一个有反弹效果的ScrollView
- MotionEvent事件在onInterceptTouchEvent()、onTouchEvent()中的传递顺序
- 机器学习概览(持续更新)
- HDU 1800 Flying to the Mars( map or hash )
- Servlet--ServletRequest接口,ServletResponse接口
- UML简单介绍(十七)——一个售票系统的详细介绍