慣例是先導(dǎo)課汗菜。
什么是VDB?
OpenVDB是夢工廠為制作《穿靴子的貓》和《守護(hù)者聯(lián)盟》于2012年開發(fā)的一種高效存儲(chǔ)Volume數(shù)據(jù)的通用型全新數(shù)據(jù)架構(gòu)让禀。
Volume是向量場,SDF (Signed Distance Field)是距離場陨界,從中可以得到距離巡揍,方向等數(shù)據(jù),而OpenVDB就厲害了菌瘪。它里面不光包含了向量和距離腮敌,還有更復(fù)雜的密度等體積數(shù)據(jù),是比fog俏扩,SDF等更大的一個(gè)合集數(shù)據(jù)糜工。
說人話
技術(shù)上的事情一句兩句也說不清楚,簡單理解一下录淡,VDB也是以Voxel體素驅(qū)動(dòng)的一種算法捌木,如果單單只是建模,甚至可以約等于實(shí)體建模赁咙,所以Entagma老哥也用了實(shí)體運(yùn)算的Boolean來作為課程名稱钮莲。
回到項(xiàng)目
這一步需要將幾何體轉(zhuǎn)化為VDB的形式,然后通過VDBreshape來調(diào)整膨脹或者收縮大小
利用VDBcombine中的布林運(yùn)算求出交集
依然是利用VDBcombine中的布林運(yùn)算求出差集
再求和然后執(zhí)行VDB SmoothSDF 算法崔拥,將Voxel邊緣模糊,獲得嘟嘟效果凤覆。
那么讓我們開始造人吧链瓦!
模型處理部分無非就是旋轉(zhuǎn)縮放,不再贅述盯桦。
注:既然VDB是Volume慈俯,那么原始Polygon必須為閉合多邊形,片體是不存在體積的拥峦。
然后結(jié)合前面的理論知識(shí)贴膘,通過一系列膨脹求交集和求差集操作獲得一個(gè)坑,記得將坑通過Convert VDB轉(zhuǎn)化回Polygon略号。