齐次空间的裁剪-为什么不在投影除法后裁剪重要
来源:互联网 发布:midi钢琴软件 编辑:程序博客网 时间:2024/05/16 12:33
图形流水线中齐次空间的裁剪(1)
1. 本文将分为下面三部分
- 引入:为什么不在投影除法后裁剪?
- 为什么能用齐次坐标进行裁剪
- 使用齐次坐标裁剪的步骤
2. 引入:为什么不在投影除法后裁剪
在齐次空间对顶点和线裁剪是如今图形学管线进行裁剪的标准做法。一个世界坐标系下点经过观察变换后会映射到屏幕空间,在这其中会经过如下的矩阵变换:世界坐标系到相机坐标系的变化,相机坐标系下的透视投影变换到规范化空间,然后从规范化空间变换到屏幕空间。其中,裁剪就发生在透视投影变化之后,但在透视除法之前。先简单解释透视投影和透视除法:
透视投影指经过透视变化矩阵之后的得到齐次坐标;
透视除法指将透视投影得到的齐次坐标转化为三维坐标,即除以齐次分量,经过透视除法的点才是在规范化裁剪立方体中的点。
为什么不在投影除法后裁剪呢?为了简单起见,取投影参考点是观察坐标原点,近裁剪平面是观察平面的透视变化矩阵:
其中
对于相机坐标系下的任意一点
3. 为什么能用齐次坐标进行裁剪
从世界坐标系到透视变换的矩阵的一般形式是:
其中
由于齐次坐标是四维空间,为了方便展示,可以将
4. 使用齐次坐标裁剪的步骤
从上面的分析中可以看到在其次空间进行裁剪的步骤分为如下步骤:
(1)经过投影变化后得到其次坐标
(2)根据规范化立方体所确定的裁剪空间求得齐次空间中进行线性插值的参数
(3)利用该参数对齐次空间中的点进行线性插值,包括坐标,纹理,颜色等
举例说明:
(1) 对于相机坐标系的两个点
(2) 对于规范化后的裁剪立方体
上面的分析指出齐次空间的点与透视除法后的点是一一映射的,所以对于其次空间中与
(3) 将
下期将介绍一种特殊情形:经过透视投影后w<0该怎么处理。同时介绍一些GPU在裁剪时真正的做法是什么。(哎,其实介绍了这么多,现今的GPU根本不是这么做的裁剪,这只是理论上的东西,想想真是学术界和工业界的距离啊。。)
- 齐次空间的裁剪-为什么不在投影除法后裁剪重要
- 为什么不在投影除法后裁剪
- 齐次空间的裁剪
- OpenGL 透视投影 齐次裁剪空间 深度缓存
- OpenGL 透视投影 齐次裁剪空间 深度缓存
- OpenGL 透视投影 齐次裁剪空间 深度缓存
- 屏幕空间变换在透视除法裁剪的DNS空间后进行和glViewport
- 5.6.3 投影和均匀裁剪空间
- DirectX投影变换矩阵的原理与推导,齐次裁剪空间的应用举例
- 裁剪空间
- 为什么图片裁剪后尺寸会变大
- 裁剪后的进程列表
- 裁剪后的进程列表
- 构造投影矩阵/裁剪矩阵
- 裁剪
- 裁剪
- 裁剪
- 裁剪
- AndroidStudio 日常总结
- 3种web会话管理的方式
- iOS App启动流程
- String的不可变性
- 设备类型问题
- 齐次空间的裁剪-为什么不在投影除法后裁剪重要
- 润乾报表v4-怎样实现用存为本地的html离线填报到其他服务器
- iOS10以后的推送
- tensorflow on win7 / win10 64
- jq实现图片的轮播,以及图片的等比例缩放
- Git命令使用总结
- ubuntu12.04安装tomcat
- android中xml tools属性详解
- out.clear(); out = pageContext.pushBody();