Przeglądaj źródła

BVH 物体划分

usuiforhe 3 lat temu
rodzic
commit
943dff0c2e

BIN
图形学/Image/128.png


BIN
图形学/Image/129.png


BIN
图形学/Image/130.png


BIN
图形学/Image/131.png


+ 26 - 2
图形学/图形学.md

@@ -2295,9 +2295,33 @@ $t_{quit} = max(t_{x_{max}}, t_{y_{max}}, t_{z_{max}})$
 10. C节点下的右节点3 判断是否与光线相交 发现相交,与3区域所有物体求交
 11. 结束
 
-按照上图,虽然成功进行了空间划分,但是也暴露的一些问题
+需要注意的点是,上图中的空间划分是 **横一刀**,**竖一刀** 循环来的,保证空间均匀划分,如果所有包围盒都是 横着切/竖着切 那么就从树形结构退化成链表的表现效果了
 
-1. 有些物体横框了多个包围盒,也就是说每个包围盒叶子节点都要存一份该物体,但其实最好一个物体就存在一个叶子节点中
+按照上图,虽然成功进行了空间划分,但是也**暴露一些问题**
+
+1. 有些物体横跨了多个包围盒,也就是说每个包围盒叶子节点都要存一份该物体,但其实最好一个物体就存在一个叶子节点中
 2. 如何计算物体与包围盒相交,这个计算其实比较复杂
 
+#### 物体划分 (Object Partition) & Bounding Volume Hierarchy(BVH)
+
+**常用**
+
+将包围盒中所有物体划分成两个部分
+
+![](./Image/128.png)
+
+![](./Image/129.png)
+
+![](./Image/130.png)
+
+![](./Image/131.png)
+
+如上图所示, 将原本一个大的包围盒中的所有物体划分成两部分, 并且将两部分重新定义包围盒, 之后再次重复包围盒划分操作, 直到划分后的包围盒达到某种要求
+
+这样子可以保证一个物体只会在记录一个包围盒中(**包围盒可以重叠**),并且包围盒的范围更好计算(取所有物体点坐标的最小x、最小y、最大x、最大y就是包围盒的范围)
+
+但是 BVH 引入了一个新问题那就是 **包围盒可以相交**,那么如何进行空间划分能够让包围盒重叠尽可能少?
+
+
+
 # 动画模拟、仿真