Entagma的 Boolean Denting教程联想到西部世界的造人,简单而且容易出效果
惯例是先导课。
什么是VDB?
OpenVDB是梦工厂为制作《穿靴子的猫》和《守护者联盟》于2012年开发的一种高效存储Volume数据的通用型全新数据架构。
Volume是向量场,SDF (Signed Distance Field)是距离场,从中可以得到距离,方向等数据,而OpenVDB就厉害了。它里面不光包含了向量和距离,还有更复杂的密度等体积数据,是比fog,SDF等更大的一个合集数据。
说人话
技术上的事情一句两句也说不清楚,简单理解一下,VDB也是以Voxel体素驱动的一种算法,如果单单只是建模,甚至可以约等于实体建模,所以Entagma老哥也用了实体运算的Boolean来作为课程名称。
回到项目
首先要有两个互相接触的几何体
将两个几何体膨胀
这一步需要将几何体转化为VDB的形式,然后通过VDBreshape来调整膨胀或者收缩大小
算出交集部分
利用VDBcombine中的布林运算求出交集
然后用原物体挖去交集部分,就获得了嘟嘟的部分
依然是利用VDBcombine中的布林运算求出差集
先看一下最终的嘟嘟效果
再求和然后执行VDB SmoothSDF 算法,将Voxel边缘模糊,获得嘟嘟效果。
那么让我们开始造人吧!
模型处理部分无非就是旋转缩放,不再赘述。
在Polygon层面将脸和“溶液”的关系调整好
注:既然VDB是Volume,那么原始Polygon必须为闭合多边形,片体是不存在体积的。
然后结合前面的理论知识,通过一系列膨胀求交集和求差集操作获得一个坑,记得将坑通过Convert VDB转化回Polygon。
最后一定要merge原来的高模,不要用VDB产生的体,那个可以方便计算,但是用于视觉呈现还是差了些