三分钟教你用Houdini流体>>解算粒子流体水滴

Houdini如何解算流体

效果展示:

思维导图式笔记:

一、粒子液体创建

  • 粒子液体创建

1、Ctrl+鼠标左键在快捷栏中创建球体,准备为球体添加流体效果。

2、Particle Fluids快捷栏中选择<Flip Fluid form OBJ>。(从物体中流出效果)

3、选中对象添加流体后,节点控制窗口会有四个节点可调节,主要调节内容为框选的节点。

  • 液体材质修改与显示

1、在右侧材质控制面板中,拖拽材质球到流体上。

2、在左侧工具栏中,点选区域渲染按钮,对流体状态进行预览。

3、这里赋予的材质默认为蓝色,调整为水透明,选择材质球,并取消勾选Enable Diffuse

4、这时区域渲染就能看到水滴是透明状态了。

二、粒子液体碰撞

  • 创建碰撞体StaticObject

1、创建一个Box对象,并调节box大小为4。

2、对Box删除3个面,方便预览,在选择模式下,按4,对面进行删除。

3、删除面后,选择Box,并添加刚体组件<Static Object>组件。


 

  • 碰撞体单面挤出为双面

1、添加刚体组建后,双击进入,添加(挤出面节点)polyExtrued.节点,并调节Box厚度和细分。

  • 预览碰撞解算

1、为Box添加碰撞范围并且预览范围,勾选Collision Guide 显示碰撞范围Division Size控制碰撞范围大小(蓝色显示部分为碰撞区域)。

2、这个时候滑动时间条,就会看到,粒子解算已经起到碰撞作用了。

三、解算缓存与渲染输出

  • 创建解算缓存

    (将渲染信息,缓存到硬盘中,这样再次打开就不需要重新占用渲染资源,节省很多时间)

1、选择该节点,并进入节点选择Impurt Sphere object1,在细节面板中,选择保存缓存路径和名称。

2、打开(sphere_object1_fluid>>import_sphere_object1)节点,勾选(Save Frame Range)命令,设定渲染保存帧数范围

3、选择保存路径和名称(命名规则:<名称,帧数,格式>)

(1)、Drop.$F4.bgeo.gz

(2)、名称------帧号------默认格式-------压缩文件格式

4、选择完成后,点击Save to Disk开始解算,或Save to Disk inBackground按钮保存缓存信息。

(如没有正常显示进度条或者,File读取不到,则可以进入文件夹删除原缓存,重新解算信息)

  • File节点读取缓存路径

1、按Tab键,创建出File节点,并在Geometry File中选择,上面缓存出来的信息,指定到此路径上

2、勾选Load From Disk 后,再次打开项目,缓存信息就可以被读取了,并且不需要每次都重新解算。

3、设定不渲染范围,节省解算时间和运算量。

(1)、创建Box或任意形状对象

(2)、在窗口快捷栏中点击Sikn From Objects按钮,然后选在流体对象按Enter确认。

(3)、确认生成后,开始解算运行,经过Box范围内的多余流体,就会消失,节省解算资源。

  • 创建渲染节点并导出

1、创建渲染节点,RPO>>并进入节点创建Mantra节点(截图)

2、Mantra节点可以控制输出格式路径帧数等。选择Valid Frame Range ==Render Frame Range命令,并且在Output Picture设定输出路径格式名称

3、       Water04$F4.TGA-----------按照以上格式命名。

             名称---分隔符---图片格式

4、保存后,创建灯光,和灯光,进行渲染。

              在快捷栏中,点选灯光,和镜头,并锁定当前(镜头或灯光)角度进行相机和灯光的位置调节,取消锁定,即可自由观察。

5、角度选定好后,进入RPO中的Mantra1节点中,Render to Disk.开始渲染。

6、接下来坐等输出为序列,并处理即可。(这里的最终目的为进入Unity中使用,所以会有导出部分的分支,敬请期待)。

四、案例下载地址

  • 11
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Houdini是一款强大的3D计算机图形软件,它提供了许多工具和功能来模拟流体和刚体的行为。在Houdini中,可以使用Flip Solver和RBD Solver来模拟流体和刚体之间的相互作用,从而实现流体刚体反馈。 以下是在Houdini中实现流体刚体反馈的步骤: 1.创建一个Flip Solver节点,并将其连接到一个RBD Solver节点。 2.在Flip Solver节点中,设置流体的初始状态和运动方式。可以通过添加Emitter节点来生成流体,也可以通过导入外部模型来模拟流体。 3.在RBD Solver节点中,设置刚体的初始状态和运动方式。可以通过添加RBD Objects节点来导入刚体模型,也可以通过创建Geometry节点来手动创建刚体。 4.将Flip Solver节点和RBD Solver节点连接起来,以便它们可以相互作用。 5.在Flip Solver节点中,启用Collision Guide和Collision Volumes选项,以便流体可以与刚体进行碰撞检测和反馈。 6.在RBD Solver节点中,启用Deforming Objects选项,以便刚体可以与流体进行碰撞检测和反馈。 7.运行模拟,并观察流体和刚体之间的相互作用。 ```python # 代码示例 # 创建Flip Solver节点 flip_solver = hou.node('/obj').createNode('flipsolver') # 创建Emitter节点 emitter = flip_solver.createNode('emitter') # 创建RBD Solver节点 rbd_solver = hou.node('/obj').createNode('rdbsolver') # 创建RBD Objects节点 rbd_objects = rbd_solver.createNode('rbdobjects') # 导入刚体模型 rbd_objects.parm('active').set(1) rbd_objects.parm('soppath').set('/obj/box_object') # 创建Geometry节点 geo = hou.node('/obj').createNode('geo') box = geo.createNode('box') box.parmTuple('s').set((0.5, 0.5, 0.5)) box.parmTuple('t').set((0.5, 0.5, 0.5)) box.parmTuple('r').set((0, 0, 0)) box.parmTuple('p').set((0, 0, 0)) # 将Flip Solver节点和RBD Solver节点连接起来 flip_solver.setNextInput(rbd_solver) # 启用Collision Guide和Collision Volumes选项 flip_solver.parm('collisionguide').set(1) flip_solver.parm('collisionvolumes').set(1) # 启用Deforming Objects选项 rbd_solver.parm('deformingobjects').set(1) # 运行模拟 flip_solver.parm('run').pressButton() ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Allen7474

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值