三维动画中的大尺度流体仿真模拟表现
2016-04-20戴冬妮
徐 莉 戴冬妮
三维动画中的大尺度流体仿真模拟表现
徐 莉 戴冬妮
一、引言
近年来计算机三维动画特效领域发展迅猛,在众多模拟对象中,流体以其特有的高自由度和另类审美价值占据了重要位置。大尺度流体模拟、流体混合与相变、流固耦合等复杂运动形式一直都是三维中的挑战性课题。
大尺度流体模拟中不仅要展现大尺度流体正确的体量关系,更要实现如泡沫、水雾、飞溅等细节的构建。运用流体动力学模拟软件Realflow下的Hybrido混合式大尺度液体求解系统,使用网格流体与粒子流体相结合的新解算方法来快速模拟真实的大尺度流体运动,实现电影级别的大规模流体效果。
二、大尺度流体解算方法Hybrido系统
Next Limit公司出品的流体动力学模拟软件是一款独立特效软件,建立在流体动态计算技术上的物理粒子系统。在RealFlow5中引入网格流体解算器的新系统。
网格流体解算器Hybrido作为一个全新的复杂大型水体解算的方法,它结合了grid-based与 particle-based的手法,既能实现复杂大尺度核心流体运动效果,还能自动创建和控制飞溅浪花、泡沫、烟雾等细节效果,运用上百万个粒子实现流体大场景特效惊人的画面,如海洋与翻滚的波浪、大型洪水、汹涌海浪冲击峭壁岩石等。
三、海水冲刷岩石仿真模拟研究
(一) 建立核心流体
进行海浪冲刷岩石场景模拟时,核心流体体现在两方面,有深度的海面和海浪。核心流体模拟的前提就是不需要精确到细节的大量粒子,使用Hybrido系统,它将整个场景限定在一个空间范围内,给大尺度流体的模拟设定Domain,网格流体可以快速的模拟大尺度范围下的液体流动的状态,grid domain的分辨率区别于传统的分辨率,只会间接地影响粒子数目,越高的分辨率,仿真就会越细致精确。
液体中水是具有代表性的,液体的基本特性是易流动性、不易压缩等向的连续介质,液体的惯性、重力特性和粘滞性对液体运动有重要的影响。Grid Fluid Emitter发射器是大量流体粒子的流体源,Domain是控制流源体发射出来的粒子属性的核心元素,主导粒子整体效果。源源不断的粒子冲击海岸,粒子的连续发射及发射速度的随机性,都集中控制在这三个属性上。Stream控制场景中发射源的持续发射,Initial speed对发射器发射的初始速度进行设置,该参数可配合调整发射器的发射方向。另外,真实海水粒子的分布是不规则的,而发射粒子是根据grid的位置,会得到很规则的粒子发射,所以模拟时可以增大Jittering参数上随机移动粒子,消除过度明显规则粒子,如图1。
图一: 动画片《世界的味道》2分55秒 核心流体模拟效果
图二: 次级细节模拟效果 副本
图三: 动画片《世界的味道》2分46秒 网格添加模拟效果
(二) 次级细节模拟
海浪冲刷海岸岩石中次级细节模拟来自于海浪相互作用、海水冲击岩石所生成的飞溅水花、泡沫、水雾等,如图2。
Hybrido系统下的Splash,即场景中单独设置的飞溅粒子控制场,飞溅水花的范围是伴随核心流体运动而生的,所以需调整场的大小以配核心流体碰撞运动的范围,选择其Inverse反向属性为Yes,模拟场景设置其大小匹配Domain即可。在添加飞溅粒子后,会发现浪头与沙滩岩石旁,细节上就会出现一些飞溅的粒子,模拟后会发现飞溅粒子似乎不受Domain影响,依旧有许多逃逸的粒子漏出来,添加K-Volume杀场就能清除多余的粒子。
为了场景中流体仿真形态细节的丰富多元,可依照Splash的添加方式依次为场景添加Hybrido系统下的雾、泡沫等。真实状态下的飞溅水花、雾和泡沫基本是浮在海面上的,所以模拟中可删除全局链接里的重力Gravity,解除重力对这三者的影响。泡沫不会保持恒定的数量大小存在,它会随着海浪运动会出现大小变化、产生消亡等,因此模拟时需要考虑泡沫的大小随生命值的变化、泡沫与核心流体贴服距离。泡沫属性中的Radius threshold 能控制泡沫产生的飞溅粒子的最小半径,用来控制泡沫的数量;Detail threshold,决定了泡沫粒子与液体表面之间的高度与距离。
(三) 网格添加Grid mesh
网格添加是把握流体质感和细节的重要步骤。海浪冲刷海岸场景,核心流体与次级细节流体是各自不同的粒子场,所以网格mesh需要在核心流体与次级流体splash和foam之间无缝地产生网格,解决不同粒子的网格添加问题。Grid网格就是完全针对其设计,它并不是仰赖粒子所计算的,尽管如此grid fluid particles可以跟标准的网格一起使用产生立体的流体,可以添加particle-based fluids到grid mesh中,所以结合了grid-based fluid 与 particle-based fluids这两者,唯一的限制是:一个grid domain只能有一个grid mesh。
为了让网格看起来更像自然状态的水, 可在三个方面进行调试:1)基于domain对粒子的控制,grid domain的grid细节越多,就能产生越平滑的网格,细密的网格使得流体相对会变得柔和光滑自然;2)放松值,这个功能会拉伸网格形状。放松值可以用较低分辨率的发射产生高质量的网格。3)张力值,要产生写实的流体就必须要小心地使用放松这个参数,过度使用会导致尖锐不自然的边和细节的越少。运用上述模拟方法,其效果如图三。
动画中表现不同尺度和属性的流体制作方法会越来越丰富,在展现其独特的技术表现特性优势的同时也带来更深层次的艺术展现空间。
* 本文系2013教育部人文社科项目《触变性流体模拟应用研究》(项目编号:13YJC760099)阶段性成果
徐 莉:中国地质大学副教授
戴冬妮:武汉理工大学国际教育学院助教