在国外,每次拍一部电脑制作的电影,不仅有非常优秀的美术人员参与其中,还有自己的一支技术研发队伍。为了取得视觉效果上的突破,常用的3D制作软件总是达不到导演的要求。因此总是要由工程师们与学术界紧密合作开发出各类专用软件,研究出新的解决办法。《怪物史莱克》第一集在2001年上映时,全球票房达到4亿5500万美元,并获得奥斯卡金像的第一座最佳动画长片奖。接下来的《怪物史莱克2》(Shrek 2)不仅剧情生动有趣,在3D绘制技术上更是取得多项突破。其中流体动力学系统打造的海浪、牛奶和魔法药水让人在动画片中看到了非常具有真实感的一幕。
描述流体运动的Navier-Stokes方程,在一百多年前就根据牛顿定律(F=ma)推导出来了。但是该方程在图形学中的探索应用却是在二十世纪九十年代中期。在这以前流体的绘制只是追求视觉上接近,并不根据其内在物理规律。Navier-Stokes方程在3D绘制上的广泛应用起源于1999年stam公开的一篇论文“stable fluids”。当时stam供职于ALIAS公司,从论文中的语气看,此方法好象几年前就研究出来了,只是未加以公开。该文的一个贡献是使用了半拉格朗日方法来取得Advect方程无条件的稳定解,而不必考虑步长的大小;另外还使用了一种投影的方法来保证质量守恒。以前的方法要用非常小的步长,才能求得Advect方程的近似解,这样运算的速度非常慢而且结果也不一定准确。
“stable fluids”论文的公开,引发了随后几年学术界对Navier-Stokes方程在流体绘制中研究的热潮。斯坦福大学的Ronald Fedkiw是其中的领军人物,完成了一系列的在该领域的里程碑式的文章。“Visual Simulation of Smoke”,将“stable fluids”方法引入到了烟的真实绘制,并且做出一个非常有效的改进Vorticity Confinement,解决了半拉格朗日方法由于在粗格子计算导致漩涡过快消失这一弱点。该论文的结果非常的漂亮,在Ronald Fedkiw的网站上有演示动画片。在SIGGRAPH2001,“Practical Animation of Liquids”一文问世了,是PDI/DreamWorks的Nick Foster与Ronald Fedkiw合作的文章,在“stable fluids”的基础上,创造性地运用Dynamic Level Set来模拟水的表面。《怪物史莱克2》的流体绘制软件就是PDI/Dream Works科学家Nick Foster开发的。SIGGRAPH2002“Animation and Rendering of Complex Water Surfaces”使用了Particle Level Set Method方法,使水的绘制达到了照片般的逼真。SIGGRAPH2004“Simulating Water and Smoke with an Octree Data Structure”更是百尺竿头更上一层,相关图片可见http://graphics.stanford.edu/~fedkiw/
最近我一直在看这些论文,仔细地思考这些问题。很希望能在网上成立一个流体绘制兴趣小组,大家能一起讨论,共同编写自己的流体绘制软件。我的EMAIL是szlongman@hotmail.com.
下图为“Visual Simulation of Smoke”中的图片