概述
该项目在不漏水的情况下将STL文件中的网格体素化。 由于我们正在使用assimp库加载文件,因此它仅支持多种格式。 基本上,该项目可以概括为两个步骤:
表面体素化对于每片网格(三角形),我们以两种方式检查碰撞的体素:
获取每个三角形的最小边界框,并用三角形检查该框中的每个体素;
从与三角形碰撞的任何体素开始,然后进行bfs搜索以检查相邻的体素。
第一种方法是轻量级的,但当(三角形的体积/边界框的体积)的比率小时,可能会变得更糟。 而第二种方式具有相当大的恒定开销。 对于线程池中的每个线程,它将选择一个三角形进行体素化。 时间复杂度为O(m * c),其中m是三角形数,c是某些因素,例如边界框中的体素数或bfs的恒定开销。
固体体素化配备表面体素化后,固体体素化可能很简单:填充。 我们尝试像雕刻木头一样填充网格的外部空间,因为它更简单并且不需要水密性。 但是,使用bfs的基本
2021-06-18 17:15:39
55KB
C++
1