透视与正交

视锥体是当前3D行业最重要的透视模型,想要理解视锥,首先要区分透视和正交的区别。

正交与透视的对立统一:当视点远离物体无穷远,视野角度无穷小,此时的透视就是正交。

透视投影是模拟物理世界的规律,将眼睛或相机抽象成一个点,此时视锥体内的物体投影到视平面上的物体满足近大远小的规律,而正交投影的所有投影射线都平行,物体大小不随距离变化而变化。

本期讨论的重点是透视投影中的视锥头部,也就是被近截面截掉的那一部分金字塔模型。这个四棱锥本身就是一个初等几何体,没有曲面,所以比较简单,花一点点时间研究一下非常有必要。

先认识一下相关的名词,看一下上图就好了。然后看一下近截面的面积公式:其中宽和高都和近截距成正比(截距=视点到截面中心的距离),和FoV的正切值成正比,这些都不言而喻,可以画个图简单证明一下,这里就不证明了。

虚幻引擎的FoV默认指的是水平FoV,即hFoV,但是可以根据以下的等比公式计算出垂直方向和斜边方向的FoV,可以看出,它们的半角正切值和它们在近截面上的投影线端的长度成正比,证明略。

比较难懂的是立体FoV,即视锥头占据的立体角,由于立体角的计算涉及到球面积的积分,属于高等几何学的范畴,所以这里只要记住它的公式就行了。如果想要证明的话,外网搜索关键词“四棱锥顶点”+“球面度”找一找。

视锥体——初等几何解析相关推荐

  1. DirectX11进阶5_硬件实例化与视锥体裁剪及鼠标拾取交互

    一.硬件实例化(Hardware Instancing) 硬件实例化指的是在场景中绘制同一个物体多次,但是是以不同的位置.旋转.缩放.材质以及纹理来绘制(比如一棵树可能会被多次使用以构建出一片森林). ...

  2. 【unity】性能优化之——视锥体剔除(Frustum Culling)(一)

    一.应用背景 在现代游戏中,游戏资源越来越多,游戏场景也越来越大越来越复杂,虽说硬件设备更新迭代很快,性能也日渐强大,但这还远不能缓解复杂繁多的资源带来的性能压力,因而性能优化仍然很有必要.场景资源的 ...

  3. 土圭垚㙓数学课(二)视锥体八个顶点的计算方法

    视锥体是摄像机可见的空间,看上去像截掉顶部的金字塔.视锥体由6个裁剪面围成,构成视锥体的4个侧面称为上左下右面,分别对应屏幕的四个边界.为了防止物体离摄像机过近,设置近切面,同时为了防止物体离摄像机太 ...

  4. OpenGL 视锥体求法

    看了这个https://blog.csdn.net/qq_31709249/article/details/80175119 是高手 讲的是假设P是空间的一点(x,y,z)写成vec4(x,y,z,1 ...

  5. 视锥体与AABB和OBB包围盒相交判断

    1.视锥体与AABB包围盒相交判断 template <class TYPE> class Frustum { public:Frustum(){}Frustum(const Frustu ...

  6. 【基础】什么是视锥体

    前言 视锥体常出现在计算机3D图形软件当中,用于定义用户的视角. 理解视锥体对掌握好3D图形图像有很大的好处. 目录 前言 视锥体 约束 总结 参考资料 视锥体 视锥体是摄像机可见的空间,看上去像截掉 ...

  7. 视锥体裁剪(从矩阵中提取6个裁剪面)

    视锥体(frustum),是指场景中摄像机的可见的一个锥体范围.它有上.下.左.右.近.远,共6个面组成.在视锥体内的景物可见,反之则不可见.为提高性能,只对其中与视锥体有交集的对象进行绘制. 视锥体 ...

  8. webgl 视锥体剔除不可见的物体

    这里新的东西就是 包围盒,就是把物体用盒子装起来,这样只需要计算面到这个是否相交,在外边,减少了很多计算量: 这个其实就是计算问题, 视锥体求的那个几个面的公式,自己用就可以了,不要问为什么,推导很麻 ...

  9. 【Unity】相机视锥体剔除算法

    视锥体剔除是Unity常用的剔除方法,其原理就是通过判定目标包围盒与组成相机视锥体的6个平面进行同侧判定,只要在6个平面之间的包围盒即为可见. 具体原理可见参考以下文章: 视锥体剔除(Frustum ...

最新文章

  1. 纠错工具之 - Proovread
  2. devc++调试下一步没反应_某化工厂污水处理站SBR工艺调试方案
  3. 如果和对方的意见或者事件冲突了怎么办?让步
  4. python创_Python创建Windows 服务
  5. 招远西苑学校计算机老师,招远市西苑学校积极开展综合实践活动
  6. shiro学习(10):servelet实现权限认证一
  7. Java程序-进程中的进程
  8. 客户关系管理之会员管理(转)
  9. RMDB与hadoop的实时整合
  10. 回家_洛谷U3427_dfsbfs
  11. 【2018-2019 ACM-ICPC Pacific Northwest Regional Contest (Div. 1) F】Rectangles【扫描线】
  12. 认知系列1:认知是什么
  13. 【英语语法入门】 第23讲 动词的用法
  14. jmeter的apple to sample是什么意思02
  15. Android开发书籍推荐
  16. 计算机网络,操作系统,微机原理,uml,java都非常重要
  17. 游戏一、脑洞大开3(密文破译)
  18. 如何在CSDN写笔记_写笔记前的插件安装
  19. 程序运行时的内存空间分布
  20. android 背光灯分析,Android-Android 触摸屏按键背光灯控制

热门文章

  1. Power Bi Desktop 中如何做出像 Excel 一样的透视表,PowerBi的分组依据用法
  2. 以核心竞争力为基础实施多元化经营
  3. Win11怎么禁止软件后台运行?Win11系统禁止应用在后台运行的方法
  4. springboot毕设项目小区停车场管理系统zvzay(1)(java+VUE+Mybatis+Maven+Mysql)
  5. 【电脑】如何在win10建立分区,删除分区,合并可用空间
  6. weui 搜索 weui-search-bar
  7. Tampermonkey[油猴插件]开发者的神级工具!
  8. 在内容合规上,如何建立内容审核体系?
  9. 日本小学生就要学编程了
  10. 【云计算】Pod概念及介绍