这只是一个静帧的图片,用了大概3个2D流体(没记错应该是),没什么特别的动画,只是常规的流体的向上运动。合成中用了几个调色节点,边缘调节,辉光之类的特效。到了真正如果用到制作中,最少也得有六个左右的容器,条件允许的情况下,10个以上是最好的。而且分辨率会调到更高。底层粒子的数量也需要增加,属性需要更细致地描述。好了,说说原理。
This is just a single frame sample, with about 3 2D fluids, nothing special to the animation, just regular upward normal fluid movement. A couple of nodes like grading, edge treatment, glow and such are used, nothing fancy still. When it comes to production, the number of fluid objects should be up to at least 6, and above 10 if possible, with higher resolution. The underlying particles needs to be cranked up, better described attributes.
我看了Christopher Hovath的论文,这项用2D流体来模拟大规模火焰运动的方法是他在工业光魔的时候提出来的,在哈利波特与混血王子中用到过。
I read the paper by Christopher Hovath, he brought up this method that simulates large scale fast motion fire animation during time at ILM.
它的基本原理是,用低精度的流体模拟驱动底层粒子模拟,粒子中有Point cloud属性,包括燃料,温度,速度,强度或者其他辅助属性。这些粒子被保存下来,到下一步的GPU 2D流体模拟中提供所需的属性。这里有意思的是他们的2D流体设置,他们根据摄像机,会在空间中跟摄像机平面摆出深度不同的若干2D流体容器,这些由近及远的容器可能会在分辨率上逐渐减小。因为是2D容器,容器之间不需交互,使得他们可以轻松地把计算任务分配给GPU做并行运算,而且分辨率可以轻松达到1000以上。当然,他们成熟的技术还使用了贴图坐标的流体动态模拟,直接把细节度又提升好几个层次。
There's a featured article posted in CGTalk, with detailed description of this technique.
不过因为流体容器的相互间没有交互,也会使一些效果,比如穿越摄像机平面的深度的效果,大打折扣。这项技术对于需要快速精确导向的火焰流体模拟来说还是很有用的,如果换回3D流体模拟,恐怕达到一样的效果的代价是很巨大的。
But because of the lack of communication between individual fluid containers, some depth representation related effects couldn't be done. It's truly useful for high speed, precisely directed fire simulation, the effort will be massive if one use 3D fluid method.
我在Maya中用脚本和表达式实现了一个简易版的"粒子 => 流体"的数据传递功能,很山寨,不过还可以用。发现的问题是,2D流体的形态跟3D有本质上的不同,少了一个深度的流体运动,效果会显得很平。以后有时间会尝试做一个类似哈利波特电影中的火焰的效果,对于高速运动的流体,我想这项技术的应用会更适合一些。
I implemented a simple version of "Particle => Fluid" data transfer function using Mel and expressions, not good, but it can work : ) Problem found:
2D is not same as 3D, without the third dimension movement, the result is generally flat as you can see in the image. I'll see if I can pull out some time to do a shot like the one in HP6 movie, I think it's more suitable for high speed fluid animation.