我有一个应用程序,其中我使用八叉树来存储轴对齐边界框(AABB)的体网格。
鉴于水密三角网,我需要:
查找AABB是否与表面网格相交或完全位于表面网格的内部/外部,
使用相交的AABB剪切曲面网格,以生成完全位于每个AABB内的三角形。
三角测量和包含AABB的八叉树都是动态的。八叉树中的叶节点数量很大。表面网格中的三角形数量要小得多(O(10 ^ 9 - 10 ^ 13)八叉树节点,相对于O(10 ^ 6)个三角形。
哪种数据结构和算法适合我的问题?
现在我:
节点中的三角形直到叶子完全包含在AABB中并且不需要任何剪辑,而从AABB到根节点中包含的那些三角形需要剪切。但是:
由于我存储三角形的方式,我不会在每个单个八叉树节点中存储的最大三角形数量的上限,所以我没有使用单个AABB剪切曲面网格时必须剪切的三角形数量的上限。
测试AABB是否与三角形网格相交可能需要剪裁,如果三角形存储在根节点中。
无法快速确定节点是否在网格内/外/相交。