我将详细的制作过程记录在知乎专栏中: 爆炸泡泡特效效果记录
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 生成工具开发