Fluids —— FLIP SOP

22.03.19【随便写写】【复习Flip】 出于一些问题颓废了3天;今天开始康复性训练 houdini Flip Object Grid Scale :体积的精度(粒子的精度乘以该值,得到体积精度) Collision Separation :单独设置碰撞体的精度 Initial Data:当sop的物体转化为粒子流 Initial Configuration(配置) :tetrahedral(四面体)点的排列方式 volume offset :加入碰撞体,可对碰撞体有简单的偏移 Flip solver Res... 阅读详情

目录

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|(如surface和vel);可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的话,source就为0,就不会生成粒子(除非第四端口有连入);

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

Boundary Condition

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

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

Initial Surface

        勾选第一帧会完全填充水面以下空间,否则仅填充边界周围(SourceBand),依据 Initial Surface、Waterline、Enable Particle Narrow Band的组合,且必须开启waterline;

边界宽外围粒子宽度,由多个因素决定:

  • 本身vdb的exterior band voxels;
  • source,及domain场;

 

Collision

Particle Collisions,依赖FLIP Collide SOP节点的Volume Collide、Surface 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场;

Houdini FLIP流体新手避坑指南:从Particle Motion到Volume Limits的完整参数解析 本文深入解析Houdini FLIP流体模拟中的核心参数设置,从粒子运动控制到体积约束的优化技巧,帮助新手避开常见陷阱。重点探讨FLIP与APIC模式的选择、体积边界控制及性能优化策略,为影视特效和动态图形创作者提供实用指南。 阅读详情

相关推荐

fluids_v3:来自http的GPU SPH流体v3

液体v.3 R.Hoetzlein(c)2012, //fluids3.com Fluids v.3是使用平滑粒子流体动力学方法的CPU和GPU的大型开源流体模拟器。 Fluids能够在GPU(1500 MB内存)上有效地模拟多达800万个粒子。 要求:Fluids v.3要求具有CUDA功能的NVIDIA图形卡/ w计算能力2.1或更高版本。 在Windows 7和Visual Studio 2010上经过测试的内部版本 通过运行fluids_v3.exe启动Fluids。有关许可条款,请参见下文。 有关软件的详细信息,请参见网站。 Fluids使用以下库:CUDA- //www.nvidia.com/object/cuda_home_new.html OpenGL- //www.opengl.org/ FreeGlut- //freeglut.sourceforge

Fluids —— FLIP DOP

FLIP DOP;

NapoleonCoder的博客 2047

统信UOS/麒麟Kylin OS下利用pyenv实现Python多版本开发环境搭建指南

本文详细介绍了在统信UOS和麒麟Kylin OS国产操作系统下使用pyenv搭建Python多版本开发环境的完整指南。从系统环境准备、pyenv定制安装到Python版本编译实战,提供了针对国产CPU架构的特殊优化方案和常见问题解决方法,帮助开发者高效管理不同Python版本需求。

sea99的博客 1051

Fluids —— Minimal fluid setups

创建SOP流体设置;

NapoleonCoder的博客 567

Oracle Primavera P6实战手册:从入门到精通的企业项目管理秘籍

本文详细介绍了Oracle Primavera P6在企业项目管理中的实战应用,从环境配置到高级进度控制技巧,帮助用户从入门到精通。通过WBS设计、资源优化和情景模拟等核心功能,提升项目管理效率。特别适合需要处理复杂项目和多团队协作的企业用户。

weixin_29235923的博客 252

多目标进化算法——NSGA-II(python实现)

NSGA-II(python实现)--最全注释,痴呆能懂--

no___good的博客 5279

Fluids —— 案例

案例及技巧;

NapoleonCoder的博客 1427

【知识点总结】电路原理 第一讲

大家好,从今天起,我将开始更新自上大学以来所学到的各种知识,之所以选择更新它们是因为最近我一直在收拾整理自己自上大学以来所收获到的各种知识,看着那厚厚一沓的书本心里不由得犯愁。如果我想找到特定的知识,那岂不是得翻到猴年马月。俗话说得好,下雨天打鞋子,闲着也是闲着,为此我设置一个专栏,将知识点一一分类总结,目的在于更好的整理所学的知识。本人学艺不精,有一些知识点地方可能存在瑕疵,希望各位大佬可以多多指教。以下是本篇文章正文内容虚断:一般通用性运算放大器的正反向输入端之间的电阻非常非常的大。

weixin_51130221的博客 4万+

Fluids —— Fluids SOP

Fluids SOP 节点;

NapoleonCoder的博客 1397

如何有效爬取“好大夫”评论数据?技术实现与合规性分析

本文探讨了爬取好大夫在线医生评论数据的技术与合规性问题。分析了好大夫平台评论数据的价值和特点,指出其动态加载和反爬机制的挑战。技术上,推荐使用Selenium模拟浏览器行为获取数据,并提供了分页爬取、代理IP、验证码识别等解决方案。同时强调必须遵守平台的爬虫策略,关注用户协议和隐私保护法规,建议通过官方API或授权方式获取数据。文章还讨论了数据清洗存储方法,并提醒注意数据伦理和最小化抓取原则。本文为医疗数据爬取提供了技术实现和合规性指导的平衡方案。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1052

COMSOL实战:如何用有限元法(FEM)准确仿真电磁场问题?避坑指南

本文是一份COMSOL电磁场仿真实战指南,重点讲解如何运用有限元法(FEM)准确模拟电磁场问题。文章通过矩形波导和偶极子天线两大经典案例,详细剖析了从几何建模、物理场设置、网格剖分到结果验证的全流程,并提供了处理非线性材料、求解器收敛失败等高级问题的避坑技巧,旨在帮助工程师建立可靠的仿真工作流。

weixin_29297127的博客 511

Fluids —— DOP and SOP workflows

DOP与SOP工作流;

NapoleonCoder的博客 1036

【linux】解决报错:Network error: Connection refused

【linux】解决报错:Network error: Connection refused

weixin_44502754的博客 4936

Fluids —— Whitewater (SOP)

白水;

NapoleonCoder的博客 1394

190、LLC谐振变换器的样机调试实战(问题定位)

这篇实战笔记总结了LLC谐振变换器样机调试中的五大典型问题及解决方案:1)空载炸机源于谐振电容纹波电流能力不足;2)轻载啸叫因控制环路不稳定,需调整突发模式阈值;3)MOSFET过热由死区时间不当导致,需精确优化实现ZVS;4)输出纹波大由PCB布局耦合引起,需优化共模抑制;5)启动过冲需延长软启动时间。作者强调调试需结合示波器、热成像仪等工具,理论计算与实测并重,并详细记录每次参数调整。文章指出LLC调试是不断试错的过程,关键是通过现象分析本质原因。

Jack010169的博客 48

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Fluids —— Fluid-object collisions

流体碰撞;

NapoleonCoder的博客 653

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Fluids —— Boundary conditions

流体边界条件;

NapoleonCoder的博客 817

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Fluids —— Fluid sourcing

Fluid sourcing;

NapoleonCoder的博客 742

Fluids —— Guided ocean waves

引导海浪;

NapoleonCoder的博客 494

Fluids —— Viscosity: honey

粘性;

NapoleonCoder的博客 651

Fluids —— Narrow band and variable density

Narrow band与不一的密度;

NapoleonCoder的博客 604

Fluids —— Up-ressing simulations

低精度驱动高精度;

NapoleonCoder的博客 532

Fluids —— Moving domains and waterlines

运动的域和水面;

NapoleonCoder的博客 540

Pyro —— Understanding how pyro works

理解Pyro如何工作;

NapoleonCoder的博客 1549

一个FLIP solver源代码

先mark一下,待详细研究 http://rlguy.com/gridfluidsim/

beidou111的博客 213

关于Houdini flip的一些体会

flip本质来说还是粒子,所以些用在粒子上的操作例如popvop也可以用在flip上,可以再popvop中随意操作v,p什么的。例如:让flip沿着碰撞物体表面下滑,就要用到popvop中用v和volume gradient做向量的叉乘,得到的向量再与volume gradient做一次叉乘; 又例如:想让flip的粒子不会流到碰撞物体里面,就要用到volume gradient和volume sa

Personal Note 5795
上一篇: Volume VOP
下一篇: Fluids —— Minimal fluid setups
挨代码
博客等级 码龄5年 1696粉丝 384原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值