基于SDF的布尔运算

多边形的布尔运算使用起来非常方便,但由于对拓扑要求较高,而且生成的模型往往没有良好的布线,对于后续的加工非常麻烦。

最近在学习Volume rendering,作为练习,做了一个小工具,是基于SDF的布尔运算。


优势:

    1, 对模型的拓扑没有要求,而且支持各种数据类型的几何体,比如NURBS可以和polygon运算。

    2, 生成的模型总是有着良好而平均的拓扑结构。

劣势:

    1,输入的模型最好是连续且闭合的,否则会效果会很差

    2,生成的模型会有锯齿,锯齿无法消除,只能通过提高细分精度,来让模型达到理想的视觉效果。这对机器性能要求较高,生成的模型往往有较多的面数

    3,无法保持硬边,硬边会被圆滑,同上,提高细分精度可以逐步改进。

    4,无法保持UV。

由此可见,这个工具虽然有优势,但缺点也很明显,在当前的普遍机能条件下,实用价值不大。我只希望它在一些特殊场合能起作用。

我相信在未来的几年,基于体积的几何体会得到越来越高的重视。

下面是例子:

以前做过一个骨牌,是在低模上挖出方形的洞,然后再细分,最后获得圆形的洞。

对于简单的模型还好,然而对于稍微复杂一些的效果,从头开始考虑布线也许会困难,这时可以用布尔运算。如下图:


左:原始模型;右:进行“差集”运算


左:原始模型;右:进行“并集”运算


左:原始模型;中:进行“差集”运算;右:运算后的布线情况

发表评论

电子邮件地址不会被公开。