3

我目前正在为 3D-Triangles 实施边界体积层次结构。可悲的是,所有对 BVH 的解释都未能体现在您对对象进行分类以进行拆分的部分。对于初学者,我想以平衡树为目标并使用中位数切割。这将要求我在当前节点的拆分轴上的空间标准之后对三角形或其边界框(AABB)进行排序。我真的不确定BB或三角形的最大或最小延伸是否足以进行适当的分离,因为某些三角形可能更大。我也不确定比较边界框还是三角形更好。

问题的第二部分是对每一步进行排序似乎很昂贵。计算机图形学中的其他算法使用预先排序的列表,然后根据拆分标准拆分这些列表。我看不出如何有效地比较三角形并确保它们属于一个列表。这是否意味着我必须每一步都对列表进行排序?

4

2 回答 2

1

SAH(表面区域启发式)是评估在用于光线追踪的 BVH 中分割一组三角形的最常用方法。您可以在 PBRT 书 ( http://www.pbrt.org )的第 4 章找到很好的解释。它可以在这里免费获得:http: //pbrt.org/pbrt-2ed-chap4.pdf

如果你甚至对光线追踪有一种模糊的兴趣,我建议你购买完整的书。

于 2013-02-25T23:19:20.337 回答
1

正如您所发现的,您有多种选择。最容易想到的是使用边界框的质心。您还可以按最小坐标和最大坐标分别排序。

您可以按每个轴排序作为预处理。然后每次迭代都是一个分区,涉及选择要在哪个轴上拆分以及在哪里拆分,并将起点/终点存储在该轴的排序列表中。

参见 Ingo Wald 的论文:http ://www.sci.utah.edu/~wald/Publications/2007/FastBuild/download/fastbuild.pdf

更快、质量更低的方法是线性化 BVH - 将每个质心映射到空间填充曲线上的坐标,例如 Morton 代码,然后按 Morton 代码对所有三角形进行排序,然后将跨度拆分为框。

于 2013-02-22T18:18:58.343 回答