爆炸泡泡

Houdini模拟,制作 VAT 与 SDF,Unity 渲染薄膜干涉



制作思路

我将详细的制作过程记录在知乎专栏中: 爆炸泡泡特效效果记录

1 在 Houdini 中制作爆炸泡泡特效,拆分为泡沫和泡泡两个部分
    
2 将泡沫部分使用 Remesh 和 Attrubute blur 节点减面到 5000 左右,并导出为 VAT
    
3 将泡泡部分使用 UV 烘焙出遮罩图,使用自制的 SDF 工具生成 SDF 和渐变遮罩图
    
4 在 Unity 中写 shader 利用渐变遮罩图制作泡泡爆开动画,配合 VAT 模型实现完整效果
    
5 在 Houdini 中绘制 Flow map,模拟泡泡表面流动
    
6 Unity 中用 Flowmap 扰动法线贴图,来形成表面流动的效果
    
7 液泡的水会从上往下流动,所以上面薄下面厚。再叠加法线的噪波最扰动,绘制厚度图,作为光谱采样的 X 轴
    
8 使用法线和视线方向计算角度,作为光谱采样的 Y 轴
    
8 使用厚度和角度来采样光谱图
    
9 用相反方向采样两次天空盒,使用厚度混合,模拟双面反射
    
10 因为泡泡中反射亮的地方薄膜干涉也明显,所以用反射天空盒的结果做一个明度图,去乘薄膜干涉图
    
11 最后把薄膜干涉图和天空盒加起来
    
12 泡沫也是用薄膜干涉。但泡沫厚度要比球厚很多,所以把厚度映射到更厚的范围内。最后主观调色一下:我希望泡沫和球最亮的部分明度差不多,让爆炸的时候泡沫成为视觉中心。
    
13 泡泡和泡沫叠加输出
    

借物表

SDF 生成器: unity SDF 生成工具开发