Fluids —— FLIP SOP

本文详细介绍了FLIP技术中的关键组件,包括创建容器域的FLIPContainer,用于生成或删除粒子的FLIPBoundary,添加碰撞体的FLIPCollide,以及FLIPSolver解算器的工作原理。讨论了粒子分离、流体行为、碰撞设置和可视化技巧等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

FLIP Container —— 创建容器域及相关场和属性

FLIP Boundary —— 为生成或删除粒子而创建的surface或density VDB

FLIP Collide —— 添加碰撞体

FLIP Solver —— 解算器

FLIP Volume Combine —— 合并不同精度的FLIP场


FLIP Container —— 创建容器域及相关场和属性

        此节点创建并初始化粒子流体的域;连入闭合对象或体积(不必是矩形,也可移动或变形),以自定义形状;无输入,则通过节点参数控制域的尺寸和位置;

  • Particle Separation,不仅控制域的精度,还控制粒子和体素的数量,及碰撞对象的精度;
  • 该节点还提供流体的物理属性,如density、viscosity;
  • 当开启FLIP Solver SOP/Waterline选项,可观察到域边界外也会创建粒子,这是由于受环境影响并向域内流体注入velocity和pressure;在域的边界粒子持续的发射和删除,以维持水线和粒子数量;
  • 边界框总是存在的,即使没有waterline;可通过FLIP Boundary SOP测试;

注,当surface粒子时边界粒子也会被考虑,生成的mesh会变大,通过Bounding Box参数剪切;

流体框的大小 = 输入模型边界框 + 间隙

Sources

  • source,流体总是在此SDF内创建;
    • source -> sourcesurface,补种seed生成粒子(Gas Seed Fluid Particles);
    • flipsolver(DOP)/Volume Motion/Solver/Guiding Fields/Source Surface

注,souce、collision、sink激活区域其值,当带宽超过其激活区域会全部填满;

  • sink,流体总是在此SDF内移除;
    • sink -> sinksurface,删除补种的粒子(Gas Seed Fluid Particles);
    • flipsolver(DOP)/Volume Motion/Solver/Guiding Fields/Sink Surface
  • velsurface,在此SDF边界使用速度边界条件,以使流体速度不会突然跨过velsurface边界;
    • 会先和collision SDF合并,以作为projection_collision(Project Non-Divergent);
    • flipsolver(DOP)/Volume Motion/Solver/Collision Fields For Solver/Collision Surface
  • vel,通过“velsurface”或“guidingsurface”设置速度时,使用的速度值;
    • vel -> guidingvel,复制引导速度到vel(Gas Calculate)及粒子v;
      • flipsolver(DOP)/Volume Motion/Solver/Guiding Fields/Guiding Velocity
    • vel -> vel,初始化vel场;
  • guidingsurface,在pressure projection后,在此SDF内设置速度vel;
    • guidingsurface -> guidingsurface,用于计算vel(复制guidingvel);
    • flipsolver(DOP)/Volume Motion/Solver/Guiding Fields/Guiding Surface       
  • pressuresurface,在此SDF的边界应用pressure边界条件;会产生气泡;
    • 从surface场移除此SDF,以作为projection_surface
    • flipsolver(DOP)/Volume Motion/Solver/Surface Fields For Solver/Surface  
  • pressure,在free surface或pressuresurface边界应用;
    • 此场被添加到surfacepressure;
  • massdensity、viscosity、age,及自定义场;

Collision

  • surface
  • vel

FLIP Boundary —— 为生成或删除粒子而创建的surface或density VDB

        此节点将输入的几何体转化为volume,以控制解算,也可直接连入volume;可Merge多个对象以获得更加复杂的外形;

  • source,作为发射源创建粒子,可添加额外的速度;
    • Pressure-based sourcing,通过定义Hydrostatic Pressure,填充杯子或水池;达到水位,即停止;
    • velocity-based sourcing,会溢出,在整个模拟过程中创建粒子;
  • sink,会删除粒子;有负速度或压力,产生吸力效果;

注,仅当想添加或移除粒子(从source或sink)使用;

Pressure-based sourcing

  • Uniform Pressure,粒子会沿源对象法线方向发射(在给定的压力下),如给定的压力被达到,则源停止;动画此参数,以约束粒子;在sink模式下,设置为-1可创建吸力效果,正值则会排斥;
  • Hydrostatic Pressure,粒子会沿源对象法线方向发射(在给定的压力下),如Water Level被达到,则源停止;动画此参数,以约束粒子;建议值在0~1;在sink模式下,与Uniform Pressure,区别不大;
  • Water Level,仅与Hydrostatic Pressure一起才有效,以定义阈值;一旦水平面被达到,则源停止;如填充杯子或水池;

FLIP Collide —— 添加碰撞体

        此节点接收2D/3D几何体和volume,作为碰撞体;将对象连入到第四个端口,以将对象转为碰撞体;唯一调整碰撞体精度的方法是FLIP Container SOP/Particle Separation参数,Grid Scale参数谨慎调节;

        精确的碰撞体速度对流体解算非常重要,不正确的碰撞速度可能会导致缺少动态飞溅或流体泄漏;

        可使用merge连入多个对象,或使用多个FLIP Collide节点;可处理开放或封闭的3D对象,及2D几何体(如grids、planes);碰撞体可移动或变形,默认会计算速度(Point Velocity SOP);

VDB Convex Clip SDF SOP,使用Convex hull裁切SDF;

  • 相对于Shrink Wrap/VDB from Polygons/VDB Combine;

FLIP Modify Volume,更新碰撞速度;

FLIP Solver —— 解算器

        该解算器是基于粒子和基于体积解算的混合;所有流体数据均存于粒子,只有粒子需逐帧保存,确保不会发生不必要的流体混合或损失;但pressure projection是在体积(被实时创建)上完成的;流体是被具有pscale属性的粒子表示的,可被POP/DOP力移动;

        当FLIP流体解算时,临时的速度场会被创建;粒子速度会被传递到该场,该场被用于执行流体projection;避免粒子相互叠加及相似方向运动;

        FLIP Solver的优点是每帧只需运行几个子步,然而SPH则需要5-10个子步或更多才能稳定;FLIP利用一些体积场,来帮助约束可能出现的瞬间impulse;可在任何时候引入新粒子,可使用许多POP工作流;

Waterline

        会创建初始的水体,如部分填充容器或创建水面(用于交互);默认是特定厚度的水层,是因为narrow band(可加速模拟并降低内存,水面以下的流体由体积或场表示);

        第四端口的边界传递,则必须禁用waterline

Boundary Condition

        水一旦到达域的边界就会消亡,且新粒子会被创建以保持平衡;粒子在source band内生成和删除(在域外部周围);该参数也与边界传递相关,如产生翻滚的海浪;对于不接触边界的模拟不必考虑“类型”,如填充杯子;

  • Pressure Driven,流体会更飞溅和扰乱,也缺乏稳定;
  • Velocity Driven,缺乏扰乱,但更稳定;

Initial Surface

        如何填充域的方式,依据 Initial SurfaceWaterlineEnable Particle Narrow Band的组合;

Collision

Particle Collisions,依赖FLIP Collide SOP节点的Volume CollideSurface Collide设置;

  • None,禁用碰撞粒子与对象碰撞;
  • Particle,如是2D或开放的3D几何体使用此模式;
  • Move Outside Collision,如是封闭的3D对象和体积使用此模型;

Fluid Behavior

  • 在空气区域内不解算速度,只是限制流体的速度以压缩或膨胀空气体积;
  • 在Paticle Fluid Surface内使用Preserve Bubbles以保留流体内的气泡;
  • 禁用Solver Pressure with Adaptivity参数;

Visualization

Advanced

FLIP Volume Combine —— 合并不同精度的FLIP场

        可将两个不同精度的FLIP场(surface、vel、pressure),融合到一组场中;在FLIP up-res工作流中非常有用,其使用低精度驱动高精度;需使用mask平滑过渡;可仅融合surface场;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值