【UE4】空间划分Octree、BVH、BSP简介

常用的空间划分算法有什么

空间划分是计算机图形学中的一种技术,它将场景对象按照空间位置进行分割。常见的空间划分方法有以下几种类型:

  1. Octree八叉树:是一种基于递归分割的空间划分方式,将空间划分成八个部分,然后再将这八个部分继续划分为八个子节点。八叉树广泛应用于游戏中的视锥裁剪和物体可见性问题;

  1. KD-Tree K叉树:是一种基于分治法的空间划分结构,用于快速检索最近邻数据点。KD-Tree通常应用于三维建模、光线跟踪等方面;

  1. BSP二叉空间划分:BSP全称为Binary Space Partitioning,即二叉空间划分。BSP是由多个平面把整个场景划分为前后两个区域,并且可以在每个区域内再使用平面进行划分。该技术应用广泛,如虚幻引擎中的地图编辑器就采用了BSP技术。

  1. BVH层次包围体:全称为Bounding Volume Hierarchy,它是一种将树形结构应用于多维划分的方法,可以使用较小数量的特定方法来查找射线所穿过的所有物体,并且能够有效地处理离散数据。在游戏渲染领域,BVH 就是用来加速光线追踪计算,光线射出后判断当前光线所需反弹到哪里通过 BVH 对模型进行裁剪,排除掉不需要渲染的模型。此外,在游戏物理引擎中,BVH 也是用于加速空间分区与碰撞检测等。

AABB树是什么

AABB Tree 全名 Axis-Aligned Bounding Box Tree,也称为包围盒树或轴对齐包围盒树。这是一种快速的查找物体的算法,广泛应用于 3D 游戏中的空间划分、碰撞检测等领域。

在游戏开发和计算机图形学中,AABB (Axis-Aligned Bounding Boxes) 树是一种加速数据结构。它以轴对齐边框框架方式,将三维空间中的物体分解成一系列盒子,然后将它们以树状结构排列。AABB树的每一层将物体划分为两个或更多的子集,直到每个子集都只包含单个物体。

AABB树的基本思想是通过快速的剖分检测最小的作物选择并标记处理范围来提升渲染性能。特别是那些拥有大量复杂多边形的场景,与其每次进行整个场景的碰撞检测,我们可以先把场景分解到许多的Physics Volume里面去,再利用AABB Tree优化交互检测效率。

AABB树和BVH的关系是什么

AABB树实际上是BVH(Bounding Volume Hierarchy)数据结构,因为AABB树是根据包围盒进行层次划分的,它本身就是 BVH 的一种常见表现形式。

二者都是对三维坐标的优化算法,用于加速复杂的计算。他们优化求交问题的形式是:查询射线是否与场景中物品相交。

AABB树计算效率高,但不能超出它们的范围而存在覆盖它的许多目标的情况。而BVH可以处理反射和折射,同时也减少了计算机的相交测试。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值