对每一个网格朝向,我们可以构造一个网格,然后在各个方向做随机扰动平移,以最大化可以被包含进物体内部的方格的数量。网格中的方格大小即为我们所使用的正方形通用模块的大小。另外,为了可打印性的考虑,残留外壳最好具有一定厚度,因此我们进一步设置最小的残留外壳厚度阈值(dmJ,只有当方格与物体表面的最小距离大于此阈值的时候,该方格才会被计算为处于物体内部。最后,我们选中可以在物体内部包含最多方格的网格,并使用其他类型的通用模块来填补空余空间,产生一个最大的内核作为初始化。
支撑材料的预计算
为了在后续迭代优化过程可以快速估计支撑材料,我们对支撑材料进行一次性的预计算。在这个支撑材料的预计算中,我们首先使用双向深度剥离在不同的方向下来对物体进行多次深度图渲染,这些方向包括:(在二维空间中)水平双向、竖直双向、和两个对角线双向。通过计算一个方向上相邻两次渲染的深度图的深度差异,我们可以快速地判断空间内此方向上的坐标是在物体内部或者外部。
我们在网格上建立半边数据结构。由于有预先渲染的深度图,对于一个半边结构,我们可以通过计算该半边结构所对应的方向下渲染的相邻深度图之间的差,来快速计算出位于物体外部的体积部分作为支撑结构的体积计算。对于每一个半边,我们将其延长投射到物体的最外层表面得到一个柱状空间,然后利用该半边结构所对应方向上预计算的深度图,来计算柱状空间中处在物体外部的体积来作为该半边结构所对应的支撑结构(Aw)。若这个半边成为了一个金字塔块的底面的一部分,其上所存的预计算的支撑结构即可算为该金字塔块底面所对应的支撑结构的一部分。