我正在尝试构建一个表示最初由 CSG(构造实体几何)树描述的体积的八叉树。
我最初的计划是从一个包含整个对象的大立方体开始,然后对八个子立方体中的每一个进行测试,哪些是完全在外部的,哪些是完全在对象内部的,哪些是内部的和外部的。然后这些“中间”立方体将被递归细分。
我的问题可能很愚蠢,但我无法设计一种方法来找到立方体和 CSG 对象的交集,以便能够如上所述对立方体进行分类。
我的 CSG 结构是由诸如立方体、球体和圆柱体(未来可能还有环面)之类的基元构建的,具有并集、交集和减法的布尔运算。
除了 CSG 的显式树结构之外,从它的表示来看,我还有一种距离函数d(x,y,z)
,它可以告诉我该点(x,y,z)
是在对象外部 (>0) 还是在对象内部 (<0)。
如何找到一个立方体是否与 CSG 结构所描述的对象相交?