Houdini week6

this week’s task is to learn how to combine two different solvers into one scene. the solvers gonna uses are rigid body and particles.

first step is to create a tours.

add more rows and colmuns to it. let this tours have more details.

create a vdb from polygons node.

tick fog vdb density.

and then create a scatter node turn off the relax iterations.

turn force total count to 93.

and create a voronio fracture node, and exploded node to check how the frature will be like. till now is the process to making fracture.

the froce toatal number is to add up the fratured pieces amount.

the relax iteration is to irregular the fratured pieces.

and the scale radii by isto let the pieces still have some same szie.

then create a dopnetwork,

go inside and create a bullet solver and rbd pack object node.

and also use a sub path here, create a null and name it, RBD_PACKED_SOURCE.

then copy and paste in the sop path.

then create a ground plane and merge, connect them like this.

and move the torus up from the floor.

add a gravity node. beacuse we don’t have pack to geo so the torus not gonna change.

create an assemble node and we don’t need the name attribute, we only need to create packed geometry and connect inside edge. then the torus has the reflection now.

the rigid body solver is the high level version of bullet solver.

create a node called pop froce, rigid body can work with pop force. but the bullet solver can’t work with it directly.

and the result will be like this.

but bullet solver and pop fource could work together under the multi solver node.

and we will see it get a same result like rigggid body node did.

multi solver is a useful tool that can be used to make different solver work together.

in the reference Mehdi gave us, the pieces will move progressively. so we need to set up in the pop force to let the pieces diffuse from left to right.

first of all we need to create a group

by default the group type will be primitives, it need to be switch to points. and also by default it will group everything, but we don’t need this, we only want to group the part we want.

after we choosing this we will get a bounding box. click enter and the bounding box will show up then we can use it to choose the part we want.

and we can set key frame to this bounding box.

alt left click to settng key frame on the timeline, and the box will changing size by the time.

then named this group static.

create an attribute create underneath.

!means group everthing but…, so in this group it is everything but static, an name the attribute editor to active, set value to 1.

then go inside the dop net work,tick the overwrite attribute on. because by default it only using frame one.

and the attribute editor type shold be integer. that is the main point !

while we hit play the tours will diffuse pogressively.

to get a more organic look, we can add more point on the surface and inside,

open the scatter node, and add up the force total count, and add one more scatter node to this, it is used to add more point to the surface.

then turn down the swirl size.

add the node pop drag and turn up the amplitude to 5 and more air ressistance in the pop drag at the same time.

set the force 5 on y-axis.

and then create an add node, which we gonna try to use to let the particles move more naturally.

select delete the geometry in the add node. and create an attribute editor.

then create a noise node in the attribute vop.

and we will see the result like this.

that close to the result we want, go back to the noise node and turn the amplitude down to 1.

then create a fit range node.

then connect it directly to blind.

thne check the attribute vop, the active’s number isn’t in interger, we need to make it to interger.

go back inside the attribute vop node.

create a float to interger node.

and now thay are in interger.

create one more bind node and name it test, it is used to test value.

we will see the test number is from 0 to 0,3

then put this number in fit node.

we will see the fit range is correct from 0 to 1.

now we don’t need the clamp node any more, it is redundant

than add an add constant node. and add a clamp node to make sure it stay in one.

or change add constant node to add node.

and use middle mouse button to promote the second input.

now we can control the attribute from attribute vop directly. and then set 0 a keyframe and then 1 a keyframe.

hit play we will see the pieces going up liitle by little.

then we want the pieces will disappear while they diffuse. create an attribute create and name it pscale. but it doesn’t work so create a primitive node.

tick the do transformation on. and control the scale parameter, we will see the pieces become smaller. we need it happens while the pieces go up frame by frame, so connect this node directly to the dop network.

frist of all type rbd in the object attribute blank, and the ground will gone because we don’t need the ground.

create an dop import node, drag and drop the dopnetwork to the dopnetwork blank. and type rbd.

create an attribute promote node.

and choose the new class into primitives.

changing a new name cause we don’t want the primitive and scale having the same name. changing it into to scale and we can name the source group @toscale=1

now we see the tonurs will broke like this. it still not looking good but we are really close.

we need the sopnetwork in the dop network. how we get this is that we need to create a sop solver

now the pecies disappear too fast.

so put the scale up a little bit.

now looks better. to adjust the scale, the smaller the number the faster the pieces will disapear.

at last, the pieces will small like dust in the air we will add another node to let the dust disappear.

we can create a attribute create node, and I named it tokeep. under sop solver we can create a node.

and named it apply_scale_tokeep_ attr.

we gonna type these into the blank, 0.96 is from the scale in my primitive node.

then end this formula with ; named the group @active=1

and we can add two nodes, to see how the points and attribute changed.

by adding node add and color to visualize how our node work.

in the add node, we will need to turn on the delete geometry but keep points. and in the color node, we will need to set ramp from attribute and then attribute named tokeep.

now we will see the peciese getting smaller progressively and disappear.

I changed in to the test model, rubber toy and it works well.

particles and smoke solver

our new task will be using the multiple solver to let particles and smoke to work together.

create a scatter and add more points, and add the pyro solver to create smoke on it, and select the initialize sourcing smoke.

and a null named it out_source.

and create a volume rasterize attribute. and set the attribute to density and temperature.

and create a attribute noise node, the attibute name need to select float and type density in to the box.

then we can cpmtrol the element size.

and the pyrosolver node, we need the source volume be density and target field will be temperature.

add some details like shardding and tubulance.

and the smoke shape will be like this.

then add the light to the scene

just like before it will be a warm light and a cold light.

and I will adjust the tubulence and buyency to control the smoke go up speed.

and w e gonna use a box to change it as a ground.

and we will see the collision happen between the ground and smoke.

and then cerate a file cache to save the scene.

and named it $f4.vdb

then create a convert vdb node and vdbvector merge node.

and then save to disk.

the smoke part is finished.

then create a null node between scatter and pyro source. and name it out _source.

then create a dop network, and inside the dop network we will need to create a popobject node and popsource node.

and a popsolver node. these is the simple node for particles.

and also we can create a pop drag node to make the particles looks more natural.

then create a merge node, to merge this two slover together.

and create a copy to point node and the sphere node,

and this is how things work.

Building fracture

first is to create a alembric node, and import the building inside.

in the spreade sheet we can check the model’s imformation

is because this building is a pack alembic.

create a blast node to select the model part you want. and using blast to unpack the alembic, make it into usable geometry.

and in the unpack we will need to transfer the attribute path.

and then Mehdi tell us a way to check the model have problems or not, in the blast it will have an option called remove shared edges.

and then connect to dived we will see is their issue on the model or not.

and we will see a empty scene, that means our model don’t have any issue.

then we can use blast and control the group number to select the building part automatically.

but we found the floor having some issue, by using the blast node.

create a exploded view node to see how the floor going on.

and put the divide node to the floor, to check again.

the issue is coming from this,

and I used node fuse to fix the problem.

and moving to the door and stairs, we find out the stairs is been separated into different pieces from its face. I am still using fuse to solved the stairs problem.

and using the poly fill node, to fill up the empty pillar,

there still a problem happens on the window, while I using the explosive node to check the window, and Mehdi tell us is because the original model has two models inside each other, this is why these cause the problem.

he taught us to use boolean and divide node to fix this problem.

and moving to the wall part, also need to use a polyfill node to fix the walls, some of the walls have the same problem like a pillar, one of their faces on model is missing.

and also still need a fuse node after polyfill node.

then merge then together, this is a clean mesh ready to explod.

create another geo node and create an obkect node inside, and copy paste the almbric to the group blank.

and then create an unpack node, convert and time shift node.

then create a poly reduce node, to reduce the stone value

then create a vdb from polygons and then create a convert to vdb node to convert the polygons back to vdb.

create a sphere and a ray node,

this node is be used to reduce the polygons.

then create an extract transfrom node, this node is used to put the stone animation in, and it will create an attribute called point,

now we have a low-resolution stone having the same animation as the high-resolution stone.

and then create a null name out_collider.

we already have these three geo node, and we will need to create a rbd_setup node.

and create two object merge node, and named them like this.

now we can start to fracture the building.

mehdi taught us to use the foreach _begin and end node to fracture the buildings.

and using split to split the building in to different part, to seperate the building.

now we could see the window been seperate with the building.

and the same way to seperate the concreate wall and so on.

and we use noronoifracture node, to stimulate the fracture result.

but we found the building don’t have enough details, so we gonna use remesh node to add more details,

in the explosive view the building looks better.