Houdini楼房刚体区域影响破碎笔记

Houdini楼房刚体区域影响破碎笔记

效果预览:

思维导图式笔记:

参考连接:

https://www.youtube.com/watch?v=V1K_XjMvgag

目录:

一、构建基础楼房

二、添加破碎解算设置

三、结算数据复用与保存

--------------------------------------------------------------------------------

一、构建基础楼房

分支1:创建楼层主体。

        1、创建一个Geometry用来装载楼房和结算的内容。

        

        2、进入后创建一个Grid,并设置此平面的参数。

   

         3、创建一个Resample节点(重取样),并在工具栏中,激活显示标记点

<此节点为设置网格的顶点数量>

 

 勾选:通过多边形边缘 重新采样 == Resample by Polygon Edge

设置长度:(数值越高,密度越少),此处设置为2

4、创建一个ConvertLine(连接线),

ConvertLine:<此节点为使顶点相链接>

此节点通过点,进行链接,形成线段。

5、创建一个 Carve(分隔线)<此节点为 --控制线段的节点>

 勾选上两个节点,并调节滑条会发现,线段两头会跟着变化

 但这里我们需要让线段是沿中心点收缩或放大的,需要以下操作。

①、拷贝下此栏信息

 ②、在此栏中粘贴同步设置。

③、这里的  1-ch(“domainu1”)   中的 1-  意思是  从中心点这个位置收缩。

 6、创建Sweep(据线成面):通过沿脊柱曲线,扫掠横截面曲线,创建曲面。

节点连接:Sweep

并设置:

Surface Shape(表面)>>:方形管

        columns(线列数量):为1.

7、创建Copy节点,对已构成的几何面,进行复制

并设置,间隔距离为1,复制数量为4.

8、创建一个Skin节点>>(在任意数量的形状曲线之间构建皮肤表面).

 9、创建Polyfill(填充洞):

分支2:创建楼层中间隔层。

        1、创建Polyextrude节点,回到Grid节点上,并连接,对面进行厚度

2、创建一个Copy节点,对隔板,进行复制。

3、创建一个merge节点,对两个生成好的模型,进行合并。 

PS:快捷操作,小知识点

按Shift加选两个节点,然后在下方的拉线按钮上,用鼠标拉下,即可自动生一个合并节点。

分支3:创建帽檐

1、创建一个Copy节点并链接在Gird节点上。

2、创建一个Sweep节点,并选择表面生成形状,和线段,宽度。

3、将分支3,合并到   Merge节点下。

分支4:创建楼房立柱,增加破碎内容。

1、创建一个grid2.并设置参数如下

2、创建一个copytopoints,并设置参数(将第一个输入中的几何图形复制到第二个输入的点上).

3、创建一个 polyExtrued节点(导出面,节点),设置高度为2.

PS:这里我们发现,导出的面,是在地平面之下的,这个时候就需要用到Reverse节点。

 4、创建一个Copy节点,对以上的柱子,进行复制,并调整对应高度,大小。

5、将以上创建的不同区域的模型,进行merge(合并)操作。

以上,模型的构建部分,基本就构建完成了。

二、添加破碎解算设置

        1、创建一个RBD  materialfracture  破碎设置节点。

 设置节点参数与此处位置。

 chipping Rotio 设置为0.8可增加细碎的渣土细节,增加破碎真实性。

 

2、创建一个rbdbulletsolver(大脑=求解器)

设置参数为:碰撞,平面地面。

这个时候可以  点击 运行,进行初步 破碎预览。(自然破碎)

3、实现,设置约束 藕断丝连  的 破碎感,参数设定。

在两个节点中,将小粉点,互相连接,这实际上就是  材料断裂的约束

 

 PS:这里,可以通过创建 rbdexplodedview 节点,进行预览

这里我们只是,扩展一下,并不实际用到此处 节点。

 在将小粉点连线上后,可以再次播放,进行预览。

但是我们这个时候发现,楼房不会自然破碎了,显然,是约束力太强了。

需要外力,或者,减少约束力。

4、设置力约束卡。选中 rbdmaterialfracture节点。

 

 设置好以上参数后,则,可播放预览,看下破碎效果是否是相约束的破碎的。

5、添加 <自定义 破碎 力 >

 创建一个 "组"  group,并将其,命名<blast_pnts爆炸点>。

设置 blast_pnts参数:

设置组类型为   顶点

关闭基础组默认全区域,

并将其设置,保持在边界区域内,将其 设置为 边界 球体

这时,通过 位置,大小改变,爆破区域的位置。

以上设置好后,创建一个Pointvelocity 点 重力  节点。  为局部破碎,添加速度控制

 

并为 pointvelocity节点,修改如下参数。 

这个时候,播放进行预览,可得如下效果。

三、结算数据复用与保存

1、保存缓存数据。

在以上播放结算结束后,为了方便使用。

创建一个filecache  节点。

 

结算完成后,加载缓存数据播放。

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() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Allen7474

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

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

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

打赏作者

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

抵扣说明:

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

余额充值