5.6.3.1 Defining a Frustum
2015-11-22 09:43
337 查看
我们可以在在视觉空间定义视锥体,其投影的中心在原点和俯视正z轴,由以下4个量:近平面n,远平面f,视角a,和纵横比r。注意,在视觉空间中,近平面和远平面平行于xy平面;因此,我们简单地沿着z轴从原点指定它们的距离。纵横比定义为:r= w / h,其中w是投射窗口的宽度,h为投射窗口的高度。该投射窗口实质上是视觉空间中2D图像中的场景。图像将最终被映射到后台缓冲区;因此,我们倾向于投射窗口尺寸的比值与后台缓冲器尺寸的比值相同。这么后台缓冲区尺寸的比值通常被指定为纵横比。例如,如果后台缓冲尺寸为800×600,然后我们指定r = 800 / 600 = 1.333,如果投射窗口和后台缓冲的纵横比不一致,则投影窗口映射到后台缓冲区将出现非均匀缩放,其会引起的失真(例如,投射窗上的圆可能会被拉伸成椭圆映射到后台缓冲区)。
视角β的水平场是由视角α的垂直场和纵横比r确定。 为了查看r如何帮助我们找到β,考虑图5.23。注意,投影窗口的实际尺寸并不重要,只是纵横比需要维护。因此,我们将选择2的方便的高度,因此,宽度必须是:
为了具有指定的垂直场,该投射窗必须放置在从原点距离d的位置:
现在,我们可以解决β。纵观图5.23的xz平面,我们现在看到的是:
所以,给定的视角a的垂直场和纵横比,我们总能得到视角β的水平场:
本文固定链接:http://www.oxox.work/web/directx11/defining-a-frustum/ | 虚幻大学
视角β的水平场是由视角α的垂直场和纵横比r确定。 为了查看r如何帮助我们找到β,考虑图5.23。注意,投影窗口的实际尺寸并不重要,只是纵横比需要维护。因此,我们将选择2的方便的高度,因此,宽度必须是:
为了具有指定的垂直场,该投射窗必须放置在从原点距离d的位置:
现在,我们可以解决β。纵观图5.23的xz平面,我们现在看到的是:
所以,给定的视角a的垂直场和纵横比,我们总能得到视角β的水平场:
本文固定链接:http://www.oxox.work/web/directx11/defining-a-frustum/ | 虚幻大学
相关文章推荐
- [团队制度]得分宝宝概论
- android108 内存分配
- opencv:轮廓属性
- 蓝桥杯——矩阵乘法
- 欢迎使用CSDN-markdown编辑器
- PHP入门(5)-运算符
- Linux可重入函数
- P,NP,NPC以及NP-Hard问题说明
- javascript实现别踩白块儿小游戏程序
- 大话设计模式之面向对象基础篇(一)
- IOS 修改App的状态栏颜色为白色
- 在SQL Server中创建用户角色及授权
- 抽象类和抽象函数
- 继承:extends
- AltiumDesigner05——常见芯片的封装类型
- 我的第一个JAVA程序
- this
- C++11 你真的会用迭代器(iterator)么?
- 构造函数/方法
- HDU 1698 Just a Hook