I love this tutorial and keep coming back to it when I need a refresher. In case anyone is curious, like I was, for why the vdbfrompolygons goes inside the for-each loop for the spheres, but not the box, is because the Block Begin node for the spheres is "fetching pieces or points". If the spheres were converted to vdbs before entering the for-each loop, that point information from the spheres ,that are used to help to cutaway the cube, is lost in the conversion and therefore the Block Begin is unable to "fetch" those pieces and points. You can check this by looking at the information on the vdbfrompolygons node and see the point count goes to 1 when converted to vdb from normal geometry. This is an educated guess of course as I'm still learning Houdini haha
I thought about that too, but I think it would be really hard to get UV's to look right due to the changing topology on every frame. I think you'll need to stick with shaders that don't use UV's. Like water shaders or materials that don't require textures and UV's
@@bubblepins Ya that makes sense...I am trying to translate this method of disintegration into an architectural project...If I needed to use UVs could you maybe "bake" or export the mesh in say three key frames that you like and uv map and render those? So it would no longer be an animation but at least you have the object in three phase changes.
@@juliannacano2645 If UV's are necessary, I do have an idea that just popped in my head. If you create your animation like in this video, then if you create another geometry with the same initial shape and start the geometry off in a very dense high poly, then reproject the changing shape back to the high poly geometry on every frame, you're topology would remain the same. And this way you can create UV's for the first frame on the high poly. And I think the UV's may remain good throughout the whole animation. And you can export the animation as ABC alembic, and the UV's would stay attached. Hope that helps!
Awesome vid. I dont know why but I am having problems with the "copy stamp" node when simulating. It just dont seam to run through the loop correctly. All the points accumulate on a point instead on spreading all over the surface. It just works fine when running it with a "Copy to points".
Nevermind! I found the problem! I had not change the "convertvdb" node from volume to polygons, so it was somehow reading the "vdbsmooth" over the rest of the loop and sort of ignoring the rest of the values.
Thank you for the tutorial, i have a question Suppose it's growing a meter above ground plane, how can i make it fall as a rigid body object after a certain time of growth?
Do you want to guide the growth downwards? If so, you can scatter the points below the object with a group node and group by normals directed downwards. Then it'll always scatter the seed points on the bottom of the geometry and start the growth, but becareful it'll probably end up on the ends of the twigs. So you may need a fancier & flexible group node to only detect the bottom of the main body of the geometry.
@@bubblepins actually i want the growth continue till let's say frame 90, and then when the growth is completed then i want the object fell down to the ground
@@uzaykisi1863 oh! You can do this many ways, the most optimal performance wise for the PC way to do it is probably in two separate scenes. One for growth and then one for RBD, like it could be two completely separate scene files but the rbd sim can start at the exact position as the last frame of the growth. This is great for when you don't have enough RAM to hold everything on your PC all in one take. But the workflow isn't as elegant as many would want. So if you do want a more elegant approach, you could use a timeshift to delay the RBD or a switch to switch it over to the RBD after a certain number of frames is completed it could activate the switch which could point to the RBD sim. You can add a bit of HOudini expression in the switch like: if( $F > 90, 1, 0) 1 is the next input if the RBD was connected on the right of the switch. Hope that helps!
do you know how to make a growth effect fill a predefined shape, i want to make a monster grow a limb from his body, with this effect and reach the wanted limb shape, great video i love it !!
I LIKE THAT IDEA!! Perfect for my next topic... I'm currently working on how to get the KineFX rig from Houdini into UE and this idea of growing a limb would be sooo cool for one of the character animations! Let me start working on this!
@@bubblepins oh yes, im glad we're on the same page, im working on Unreal too, and i thought i'd animate the growing limbs, since you using KineFX, i presume you wanna move the growing limb too. i'm eager to see the result !!
hey I figured out how to do vellum balloon things but I still think a vellum tutorial would be cool. This disintegration and growth vid was pure gold. Can you recommend me any other sources for learning houdini in general? Thanks and keep up the amazing content! Hope you have a good day:)
I really like SideFX's Masterclasses and webinars, but they are rather long with a lot of introduction so grab a cup of coffee. But my videos are long too. Houdini is complicated, hard to make short explainer videos. I find the masterclasses very detailed, which is nice. If you have time, randomly explore around SideFX's examples, it's like a kid in a candy store!
Are you trying to mask a certain portion of the geometry so it isn't affected by forces in the solver? For example, if it's a destruction sim, you have two spheres and you only want the solver force to affect one sphere and not the other? I hope I'm understanding this correctly, you can check out a blog post where I describe a solution for this using the geometryvop to isolate the solver forces to certain geometry in the scene. bubblepins.com/blog/controlling-force-field-for-specific-geometry-in-destruction-simulations-in-houdini Hope this helps!
@@bubblepins Thanks so much for taking the time out to reply. I am working my way through your tuts. They are great : ) . Love the way you break everything down. Yes pretty much, to control where on an object the destruction is affecting. I was hoping to find a way of using mask to break and down say half of one object and leave the other half in tact. It looks like that what I was looking for thanks for pointing me in the right direction. Much appreciated. : )
you don't necessary need the copy stamp node to vary the rotation of your modified source to the copy, as the copy to points is using attributes from these points to drive the object copied on them. You could just vary the N attribute on each of your point to vary the rotation of your objects. Just plug a attribute randomize node right after the scatter, set it to randomize N in 3f vec and set inside sphere or direction an orientation in the distribution menu ! And i don't get why the for each loop, you could just vdb combine the cube and the spheres together using the scatter seed to modified the position of the scattered points each frame
and other question, is it possible to smooth only new appearing growth but not smooth what's already here? Because I want cube to stay cube not melt it.
You can use a lower voxel value (higher resolution), but this will take longer to compute, and lower the vdb smooth values, this should keep the shape better. Hop this helps.
I most appreciate for this lesson! Thank you for this knowleges! Could you help me, I want start from 1 frame without spheres, with original obj and then have this bite off effect
Hi! You can add a switch node at the end of the SOP Solver and add the expression if($F==1, 0, 1) where 0 stands for the path that returns exactly the Prev_Frame so no change to the geometry on that frame and 1 is the normal output, normal path flow of the SOP Solver. I created a short blog post explaining this in more detail for clarity along with a Houdini file that I posted that does this. It doesn't have to be $F==1, you can change this to be $F==8, if you want to delay the sim further. bubblepins.com/blog/delay-sim-on-frame
@@bubblepins Awesom! Thank you so much for that detailed explanation and for your time! Also, I think, we can just animate "Select Input" parameter, variant for more lazy people)
There's other way to create random seed - create metadata from foreach begin node, then create attribute wranngle, then connect metadata node to 2nd input of wrangle, and write this code: int seed = detail(1, 'iteration'); @Cd = rand(seed); seed could be more customized float seedmod = chf('modifier'); @Cd = rand(seed*seedmod);
nvm, i find even easier way to randomize orient. putt attribute wrangle after scatter and @orient = rand(@ptnum); metadata could still be useful if you want different mountain for each sphere (it would be needed to be in foreach cycle ofc)
Yeah I knew about that, but I felt like this way is easier to understand, because if I use the for loop iteration to seed the randomizing then I need to put all the sphere and scatter nodes inside the forloop making it a lot larger. And there's a previous video I did on for loops so I wanted to show case some of the techniques I demonstrated in that video about looping. But yeah you're right you can use your way to seed the sphere scattering, that will work too. Thanks for the comment!
It should be fine. In the video, I use Houdini 17.5. But in Houdini 16, Foreach Loops & SOP Solver was already there. I believe you should be able to recreate the same effect.
I love this tutorial and keep coming back to it when I need a refresher. In case anyone is curious, like I was, for why the vdbfrompolygons goes inside the for-each loop for the spheres, but not the box, is because the Block Begin node for the spheres is "fetching pieces or points". If the spheres were converted to vdbs before entering the for-each loop, that point information from the spheres ,that are used to help to cutaway the cube, is lost in the conversion and therefore the Block Begin is unable to "fetch" those pieces and points. You can check this by looking at the information on the vdbfrompolygons node and see the point count goes to 1 when converted to vdb from normal geometry. This is an educated guess of course as I'm still learning Houdini haha
I'm proud of you!
Your channel is treasure for me 😁 👌
Thanks for watching and the supportive comment!
Really love your tutorial style. Most people don't take the time to highlight things etc as you do. Much appreciated.
I've been watching many houdini tutorials, but yours are the best!
Thanks for uploading them.
Thanks for watching!
Wow you give so good detail about what and why you do those steps. It helps a lot. Thank you.
Thanks!
Excellent video, thanks!
Thanks!
Great work! Very good job breaking things down to an understandable level
Thanks for watching!
Ahh your voice and the manner of speech, it's so cute) I'm sitting in trance. Meanwhile, good and useful tutorial)
Great, miss. Thanks a lot for sharing this with us.
Great stuff
Thanks!
this is great...is there a way to do this with material mapped onto it?
I thought about that too, but I think it would be really hard to get UV's to look right due to the changing topology on every frame. I think you'll need to stick with shaders that don't use UV's. Like water shaders or materials that don't require textures and UV's
@@bubblepins Ya that makes sense...I am trying to translate this method of disintegration into an architectural project...If I needed to use UVs could you maybe "bake" or export the mesh in say three key frames that you like and uv map and render those? So it would no longer be an animation but at least you have the object in three phase changes.
@@juliannacano2645 If UV's are necessary, I do have an idea that just popped in my head. If you create your animation like in this video, then if you create another geometry with the same initial shape and start the geometry off in a very dense high poly, then reproject the changing shape back to the high poly geometry on every frame, you're topology would remain the same. And this way you can create UV's for the first frame on the high poly. And I think the UV's may remain good throughout the whole animation. And you can export the animation as ABC alembic, and the UV's would stay attached. Hope that helps!
Awesome vid.
I dont know why but I am having problems with the "copy stamp" node when simulating. It just dont seam to run through the loop correctly. All the points accumulate on a point instead on spreading all over the surface. It just works fine when running it with a "Copy to points".
Nevermind! I found the problem! I had not change the "convertvdb" node from volume to polygons, so it was somehow reading the "vdbsmooth" over the rest of the loop and sort of ignoring the rest of the values.
@@emepicuta3899 Awesome problem solving!
Thank you for the tutorial, i have a question
Suppose it's growing a meter above ground plane, how can i make it fall as a rigid body object after a certain time of growth?
Do you want to guide the growth downwards? If so, you can scatter the points below the object with a group node and group by normals directed downwards. Then it'll always scatter the seed points on the bottom of the geometry and start the growth, but becareful it'll probably end up on the ends of the twigs. So you may need a fancier & flexible group node to only detect the bottom of the main body of the geometry.
@@bubblepins actually i want the growth continue till let's say frame 90, and then when the growth is completed then i want the object fell down to the ground
@@uzaykisi1863 oh! You can do this many ways, the most optimal performance wise for the PC way to do it is probably in two separate scenes. One for growth and then one for RBD, like it could be two completely separate scene files but the rbd sim can start at the exact position as the last frame of the growth. This is great for when you don't have enough RAM to hold everything on your PC all in one take. But the workflow isn't as elegant as many would want.
So if you do want a more elegant approach, you could use a timeshift to delay the RBD or a switch to switch it over to the RBD after a certain number of frames is completed it could activate the switch which could point to the RBD sim. You can add a bit of HOudini expression in the switch like:
if( $F > 90, 1, 0)
1 is the next input if the RBD was connected on the right of the switch.
Hope that helps!
@@bubblepins wow, thank you for the detailed reply, you are great
do you know how to make a growth effect fill a predefined shape, i want to make a monster grow a limb from his body,
with this effect and reach the wanted limb shape, great video i love it !!
I LIKE THAT IDEA!! Perfect for my next topic... I'm currently working on how to get the KineFX rig from Houdini into UE and this idea of growing a limb would be sooo cool for one of the character animations! Let me start working on this!
@@bubblepins oh yes, im glad we're on the same page, im working on Unreal too, and i thought i'd animate the growing limbs, since you using KineFX, i presume you wanna move the growing limb too.
i'm eager to see the result !!
hey I figured out how to do vellum balloon things but I still think a vellum tutorial would be cool. This disintegration and growth vid was pure gold. Can you recommend me any other sources for learning houdini in general? Thanks and keep up the amazing content! Hope you have a good day:)
I really like SideFX's Masterclasses and webinars, but they are rather long with a lot of introduction so grab a cup of coffee. But my videos are long too. Houdini is complicated, hard to make short explainer videos. I find the masterclasses very detailed, which is nice. If you have time, randomly explore around SideFX's examples, it's like a kid in a candy store!
@@bubblepins thanks ill check it out!
Thanks so much for the tutorial, very much new to this. Is there a way of connecting a mask along geometry to the the solver?.....Many Thanks : )
Are you trying to mask a certain portion of the geometry so it isn't affected by forces in the solver? For example, if it's a destruction sim, you have two spheres and you only want the solver force to affect one sphere and not the other? I hope I'm understanding this correctly, you can check out a blog post where I describe a solution for this using the geometryvop to isolate the solver forces to certain geometry in the scene.
bubblepins.com/blog/controlling-force-field-for-specific-geometry-in-destruction-simulations-in-houdini
Hope this helps!
@@bubblepins Thanks so much for taking the time out to reply. I am working my way through your tuts. They are great : ) . Love the way you break everything down. Yes pretty much, to control where on an object the destruction is affecting. I was hoping to find a way of using mask to break and down say half of one object and leave the other half in tact. It looks like that what I was looking for thanks for pointing me in the right direction. Much appreciated. : )
you don't necessary need the copy stamp node to vary the rotation of your modified source to the copy, as the copy to points is using attributes from these points to drive the object copied on them. You could just vary the N attribute on each of your point to vary the rotation of your objects. Just plug a attribute randomize node right after the scatter, set it to randomize N in 3f vec and set inside sphere or direction an orientation in the distribution menu !
And i don't get why the for each loop, you could just vdb combine the cube and the spheres together using the scatter seed to modified the position of the scattered points each frame
The purpose of the video was to show how the foreach loop and sop solver can be used in different exercise scene, based on the previous videos.
and other question, is it possible to smooth only new appearing growth but not smooth what's already here? Because I want cube to stay cube not melt it.
You can use a lower voxel value (higher resolution), but this will take longer to compute, and lower the vdb smooth values, this should keep the shape better.
Hop this helps.
I most appreciate for this lesson! Thank you for this knowleges! Could you help me, I want start from 1 frame without spheres, with original obj and then have this bite off effect
Hi! You can add a switch node at the end of the SOP Solver and add the expression if($F==1, 0, 1) where 0 stands for the path that returns exactly the Prev_Frame so no change to the geometry on that frame and 1 is the normal output, normal path flow of the SOP Solver.
I created a short blog post explaining this in more detail for clarity along with a Houdini file that I posted that does this. It doesn't have to be $F==1, you can change this to be $F==8, if you want to delay the sim further.
bubblepins.com/blog/delay-sim-on-frame
@@bubblepins Awesom! Thank you so much for that detailed explanation and for your time! Also, I think, we can just animate "Select Input" parameter, variant for more lazy people)
Great tutorials! You should be working for sidefx!
I wish!
Thank you. Perfect.
Is there way to automatically stop solver if it detects there's nothing left?
You can try using the measure node and use that to see how much is left.
Hope that helps.
There's other way to create random seed - create metadata from foreach begin node, then create attribute wranngle, then connect metadata node to 2nd input of wrangle, and write this code:
int seed = detail(1, 'iteration');
@Cd = rand(seed);
seed could be more customized
float seedmod = chf('modifier');
@Cd = rand(seed*seedmod);
nvm, i find even easier way to randomize orient.
putt attribute wrangle after scatter and @orient = rand(@ptnum);
metadata could still be useful if you want different mountain for each sphere (it would be needed to be in foreach cycle ofc)
Yeah I knew about that, but I felt like this way is easier to understand, because if I use the for loop iteration to seed the randomizing then I need to put all the sphere and scatter nodes inside the forloop making it a lot larger. And there's a previous video I did on for loops so I wanted to show case some of the techniques I demonstrated in that video about looping.
But yeah you're right you can use your way to seed the sphere scattering, that will work too. Thanks for the comment!
Love listening to Britney Spheres
lol britney spheres that's a good one
All good, but what if Houdini 16? ((
It should be fine. In the video, I use Houdini 17.5. But in Houdini 16, Foreach Loops & SOP Solver was already there. I believe you should be able to recreate the same effect.
1 viewer