视锥体——初等几何解析
透视与正交
视锥体是当前3D行业最重要的透视模型,想要理解视锥,首先要区分透视和正交的区别。
正交与透视的对立统一:当视点远离物体无穷远,视野角度无穷小,此时的透视就是正交。
透视投影是模拟物理世界的规律,将眼睛或相机抽象成一个点,此时视锥体内的物体投影到视平面上的物体满足近大远小的规律,而正交投影的所有投影射线都平行,物体大小不随距离变化而变化。
本期讨论的重点是透视投影中的视锥头部,也就是被近截面截掉的那一部分金字塔模型。这个四棱锥本身就是一个初等几何体,没有曲面,所以比较简单,花一点点时间研究一下非常有必要。
先认识一下相关的名词,看一下上图就好了。然后看一下近截面的面积公式:其中宽和高都和近截距成正比(截距=视点到截面中心的距离),和FoV的正切值成正比,这些都不言而喻,可以画个图简单证明一下,这里就不证明了。
虚幻引擎的FoV默认指的是水平FoV,即hFoV,但是可以根据以下的等比公式计算出垂直方向和斜边方向的FoV,可以看出,它们的半角正切值和它们在近截面上的投影线端的长度成正比,证明略。
比较难懂的是立体FoV,即视锥头占据的立体角,由于立体角的计算涉及到球面积的积分,属于高等几何学的范畴,所以这里只要记住它的公式就行了。如果想要证明的话,外网搜索关键词“四棱锥顶点”+“球面度”找一找。
视锥体——初等几何解析相关推荐
- DirectX11进阶5_硬件实例化与视锥体裁剪及鼠标拾取交互
一.硬件实例化(Hardware Instancing) 硬件实例化指的是在场景中绘制同一个物体多次,但是是以不同的位置.旋转.缩放.材质以及纹理来绘制(比如一棵树可能会被多次使用以构建出一片森林). ...
- 【unity】性能优化之——视锥体剔除(Frustum Culling)(一)
一.应用背景 在现代游戏中,游戏资源越来越多,游戏场景也越来越大越来越复杂,虽说硬件设备更新迭代很快,性能也日渐强大,但这还远不能缓解复杂繁多的资源带来的性能压力,因而性能优化仍然很有必要.场景资源的 ...
- 土圭垚㙓数学课(二)视锥体八个顶点的计算方法
视锥体是摄像机可见的空间,看上去像截掉顶部的金字塔.视锥体由6个裁剪面围成,构成视锥体的4个侧面称为上左下右面,分别对应屏幕的四个边界.为了防止物体离摄像机过近,设置近切面,同时为了防止物体离摄像机太 ...
- OpenGL 视锥体求法
看了这个https://blog.csdn.net/qq_31709249/article/details/80175119 是高手 讲的是假设P是空间的一点(x,y,z)写成vec4(x,y,z,1 ...
- 视锥体与AABB和OBB包围盒相交判断
1.视锥体与AABB包围盒相交判断 template <class TYPE> class Frustum { public:Frustum(){}Frustum(const Frustu ...
- 【基础】什么是视锥体
前言 视锥体常出现在计算机3D图形软件当中,用于定义用户的视角. 理解视锥体对掌握好3D图形图像有很大的好处. 目录 前言 视锥体 约束 总结 参考资料 视锥体 视锥体是摄像机可见的空间,看上去像截掉 ...
- 视锥体裁剪(从矩阵中提取6个裁剪面)
视锥体(frustum),是指场景中摄像机的可见的一个锥体范围.它有上.下.左.右.近.远,共6个面组成.在视锥体内的景物可见,反之则不可见.为提高性能,只对其中与视锥体有交集的对象进行绘制. 视锥体 ...
- webgl 视锥体剔除不可见的物体
这里新的东西就是 包围盒,就是把物体用盒子装起来,这样只需要计算面到这个是否相交,在外边,减少了很多计算量: 这个其实就是计算问题, 视锥体求的那个几个面的公式,自己用就可以了,不要问为什么,推导很麻 ...
- 【Unity】相机视锥体剔除算法
视锥体剔除是Unity常用的剔除方法,其原理就是通过判定目标包围盒与组成相机视锥体的6个平面进行同侧判定,只要在6个平面之间的包围盒即为可见. 具体原理可见参考以下文章: 视锥体剔除(Frustum ...
最新文章
- 纠错工具之 - Proovread
- devc++调试下一步没反应_某化工厂污水处理站SBR工艺调试方案
- 如果和对方的意见或者事件冲突了怎么办?让步
- python创_Python创建Windows 服务
- 招远西苑学校计算机老师,招远市西苑学校积极开展综合实践活动
- shiro学习(10):servelet实现权限认证一
- Java程序-进程中的进程
- 客户关系管理之会员管理(转)
- RMDB与hadoop的实时整合
- 回家_洛谷U3427_dfsbfs
- 【2018-2019 ACM-ICPC Pacific Northwest Regional Contest (Div. 1) F】Rectangles【扫描线】
- 认知系列1:认知是什么
- 【英语语法入门】 第23讲 动词的用法
- jmeter的apple to sample是什么意思02
- Android开发书籍推荐
- 计算机网络,操作系统,微机原理,uml,java都非常重要
- 游戏一、脑洞大开3(密文破译)
- 如何在CSDN写笔记_写笔记前的插件安装
- 程序运行时的内存空间分布
- android 背光灯分析,Android-Android 触摸屏按键背光灯控制
热门文章
- Power Bi Desktop 中如何做出像 Excel 一样的透视表,PowerBi的分组依据用法
- 以核心竞争力为基础实施多元化经营
- Win11怎么禁止软件后台运行?Win11系统禁止应用在后台运行的方法
- springboot毕设项目小区停车场管理系统zvzay(1)(java+VUE+Mybatis+Maven+Mysql)
- 【电脑】如何在win10建立分区,删除分区,合并可用空间
- weui 搜索 weui-search-bar
- Tampermonkey[油猴插件]开发者的神级工具!
- 在内容合规上,如何建立内容审核体系?
- 日本小学生就要学编程了
- 【云计算】Pod概念及介绍