Creating a Realistic Snow Storm in Houdini!

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] hi guys do you want to learn how to make a great storm effect where trees move and you have snow and dust and then you came to the right place guys do you want to join a really nice server we have tons of different channels we have effects modeling look there compositing we will have resources for every type of discipline so hop in and have fun okay guys so once i open this file we're going to have some basic stuff for example to start with accurately the grid and you can see this grid is really flat and if i take a closer look into the wire from you have a ton and a ton of polygons because when i add the mountains up we can displace this a tiny bit so we have a nice structure for our ground then what i did is to create the following in the ground mesh basically this is grabbing this null i extruded volume and i created a coalition source with these settings on volume this is for our pyro server that we're going to make in just a tiny bit we have our sdf call and our polygons but we do not want to have so many polynomials otherwise our simulations are going to be slow so we're going to poly reduce this 10 times this is way better and let's continue to the other one i also created some rocks we that we're still not going to make we're going to make it just in a tiny bit but basically it's the same setting you create some collision source and it's up to you but i usually leave the fill interior on and you create these two nulls so you can reference them and here we will see how to create custom velocity fields and how to properly visualize them so to start with let's create our rocks we know we have our ground right so what we can do is to create a scatter node let's create around yeah one thousand pieces are going to be okay and let's scatter these rocks around with a copy two points this copied point is going to consist on well basically a cube but you will see everything is pretty much the same so we want to randomize these values we want to run them with a float called p scale this will go from point four to two perhaps this is nice i guess we need to check out the geometry perhaps we have too many rocks so let's do i know 500 and this is okay we're going to set a connectivity or better even we're going to do uh for each connected piece we will do the following here we are going to iterate over each piece and we will turn them into a bdb bdb from polygons we are going to export this into the surface we have this amount of polygons perhaps we're going to need even more this amount of boxes my bad and perhaps we're going to need a little bit more this is okay and we can do a volume up and to finalize this we can do a bdb convert this works as follows we're going to deform this here and we're going to convert this back into polygons we have been here and how do we try to work over the surface field what we have to do is to bind export that fill with a name called surface so we can export everything we want if we do a p and we export this surface we should be seeing here basically nothing unless we apply a float once we apply a float we can see this gets deleted so how do we make something useful from this let's create a bind now let's create a volume sample this volume sample is going to be plugged into the open input one with the position here with the name basically called surface so this is basically bind import bind export nothing more how to create a nose a nice with a flow noise if we plug this in here we are going to have an error but if we have this with this one and we connect them these two positions we will have this which is very cool we can mess around with this a little bit it's up to you guys you can have any type of noise this is only as basic setup and this works flawlessly if we do for each at the end we can see if we toggle this off that it starts to calculate here the pieces and it will go on and on until it reaches the end of it now you have tons of square rocks we can obviously change this for a circle for a sphere and now we will have different shapes i prefer the spheres see this is way better okay so now that we have this we can make a null called outros and you will see we will have this one set to sdf and to polygons this will basically be for it to create what we need for our simulations so remember be organized with a and dragging downwards we can do this kind of alignment which is really cool and which if oh we can make a better outliner for this so let's create a wind force right we need something to drag our pops and our volumes and our future trees which is very interesting to decide so i know we want to have this mesh as our bounding box so you can object merge this guy here and we can in fact use a bound to have the boundings and we can do the upper boundary to 20 meters tall this will be called out b box just so we know this is the bounding box of what we want we'll turn this into volume called dancing called bell and this will become a vector if we go to the into the flat shaded once we have something inside we will start seeing a bounding box if we turn this into a pdb from bb convert here into a bd bdb we'll see this bounding box which is very very cool so remember this thing would we so remember this we plug this here and we can see we have a velocity y x and c so we got to uh bdb merge would it be vector from scholar here so if we combine this we'll only have one fill which is now a vector and we can plug this here this is basically a grid with a match size with these options you gonna upset it wherever we want and what this is going to do is going to create a scatter and we're going to see how these velocity moves we're going to grab this velocity we will see it here so far we got nothing to see but if we make a velocity a volume velocity and we plug this in here and we add for example a coral noise we will see some distortion this is where the noise is going and it's very very useful so we're going to make a solution of 33 which is what i want and a constant velocity on the x-axis hence it's going there uh i also want to have some way of controlling this apart from here so we're going to use our volume up again let's plug this in here and what we want to do is to basically control the velocity field remember to click here when you are outside so we want to export this bind export a velocity if we plug in this here we will see if we do a back threefold vector that it changes from zero to everything else so this is very good we know this working but we want to bind the same thing which is called velocity so this is a one two one and we want to multiply this we want to adapt this to where if we do a real beatbox and we plug in this one here and this one here we'll have a bounded box going from zero to one on each axis x set and y so if we play this in here we'll see something really strange going to the right which is basically um a gradient but we only want to grab the y gradient so let's back toward to float this out and let's plug this in here now we're going to have a zero to one multiplication and it will ramp parameter this out we can do a spline go outside and change this as we want see this is very useful and perhaps we will also need some more subdivisions to have more detail so we can use some things like this which is very awesome we can expect more or less and well when we don't have any velocity we will cut the volume downwards see but we can obviously have a little bit of velocity at the bottom just in case so if we go here we can move this around and multiplicate everything and this will be called with a null hour out b wind shift o a downwards and we have our velocities so we have everything we need we just need to make so we have everything we need when it comes to velocities and collisions we need to make our source for the smoke simulation we're going to set it here at the right of our simulation going from right to left so we're going to option merge this with our bounding box and we're going to match the size with a box that is 8.5 meters on the x-axis so we do the following we can have for example a justification on x at the minimum and a scale to fit not uniform and we won't scale the x right so we have this as a volume or a container we can do even less eight for example this is going to be fine this is a fast way to create a constant and procedural source we're going to create an issue offset this is very interesting for density without uppercase we're going to set 100 uniform samples and we're going to use a volume bob again this tutorial is full of volume bops so let's hop in and basically what i want to do is a tool bullet nice the position here we're going to just multiply our density with this turbulent nice and we're going to a promote parameter this out we're going to have a 0.1.1 and 0.1 on each axis with a 0.5 and 0.06 so we will have these kind of shapes which is they are cool they're nice and we're going to have the original pearling nice so you would ask why are we changing these well what do you have well do you so you may ask why did they promote this out and i promoted this so we can change over time our noise as shown here right this is going to be our source so we don't know stress so we remember this is going to be our wind density showers but we also need some way of controlling our velocity because we don't have any velocity here and we want an initial velocity so let's create a volume in this volume we're going to have our great vector which is called velocity or bell initial ball is going to be 0.8 and as you can see we don't have any width because we need to set this to none square it's strange i know but it works and we need to volume above these two guys together like so so we're going to hop in and we are going to straight out of nowhere ex export this value which is bind export our velocity so in this case we don't have something or a noise to to output so we're going to create this we're going to have a constant to start with this constant is going to be a three-float vector and we're going to on the left so one on x and let's plug this in here so you we're not going to see much here unless so we're not going to see much going on here because we already have a velocity going to that position but we are going to multiply this by a value and this value is going to be up to us we're going to promote this just in case to start with this is going to be one we can expose this node and call this as mold b mold mold b let's go outside there we go but we want to add these two guys together which for example now we're going to make a nice nice turbulent nice there we go on the position and let's use our tool we have here to visualize this guys remember we have velocity but we don't have a vector or a bdb so let's convert bdb here this will go into our bdbs and a vector and merge load vector bb vector from scatter this out now we're going to see something so so we want to have a 3d noise this will be set to point one point one point one with an amplitude of 30 and a fairly nice as before you will see this works just as of the velocity from volume we can multiply this more or less in case we want to have a bigger output velocity and what we want to do is to only have velocity where there is smoke volume sample here we're going to do the same as before op input part 1 this is going to be the position and we're going to set this to density and we're going to multiply this vector by this scalar so now we will only have this this should be the second one my bad so now we should see if we go here some pockets some holes we can test this if it works but for example multiplying this by a float here which is zero at the moment and the more we multiply the more velocity we have see so we know by a fact that this in fact works just fine so if you go here we can for example change this grid for noon and manually visualize this so we can actually appreciate the pockets but you're not seeing many of them so we can see this is working if we multiply this very various times [Music] right here we will see these guys better if we reduce this so these spots here are supposed to be where this is multiplying so if we had a mold constant we can increase this by quite a lot for example doing the following will increase or exaggerate these pockets so now that we have this whoops i forgot to add this one here now that we have these pockets we can continue and merge these two guys together merge this one with this one and what we want to do is to have both of them together this will be called out volume solves shift o and we are done with our source and there we go so now we have everything we need in for our volume sources so let's start creating our first top network this is going to be our our smoke emitter let's hop in let's have a spare smoke solver spurs let's plug this in here let's basically add the following objects sparse object we plug this in to the left side and a volume source right at the sourcing is going to be solved so let's start by watching our simulation so far nothing let's create our smoke this enlarge fails to contain sources and let's remove the temperature since we do not have anything our sort volume is called bell in fact i know because we did it right here see it's called bell we only have 1 000 boxes so if we want to have a little bit more resolution let's add 101 here so let's hop in so let's hop in and modify this guy because we do not to we do not want to have a volume outside our container which is the out b box right here see we want to have everything inside here without messing too much so let's do a centroid oh my god this was centroid from our out b box and we will use our dx here we'll see this will output a number let's change to y and just change to set set and we'll have these numbers moving and we also want to have the b box our b box of the same of the out b box and we will be using d dx and we'll be using the x size here we'll copy and paste oh this one i think our d x size this is not working oh this is working okay so we will copy and paste this everywhere this is going to be the y and this is going to be the set we're copying and pasting our values as a max bounding box so if we press play we wouldn't see anything because we haven't loaded the sub object out density source b box no we want to have our out volume source let's try this again with a scale of one or two perhaps we have this volume which works just fine we're going to use a point 25 in this case and we're going to input and we're going to input these three things which are basically the same i'm going to explain that this is the ground and we basically loaded our out round sdf call which is the following remember this one this is this guy here which is a collision for our volumes it works just fine with the collision source the same with the rocks and the same with and the same with the rocks we will also input our out b wind we will use the following this is the ground we load this here and we click on collision you don't need to do anything else we do the same for the rocks it's all the same if we have a collision velocity we will move this it's not meant for this tutorial so it won't happen anything just leave it as normal so ignore these two guys and on the wind we are going to input our wind out b wind which is this one right here and what we're going to do is to actually just have a velocity set to bell and bell here nothing else if we plug this into our forces we will see that it starts colliding it starts being a little bit more laggy because we have more resolution but as you can see if we visualize the for example the collision we have our beautiful ground now that we have this we can move to more distortions for instance for instance right here we can add some some vortex confinement this one will set to 2 and uh this tool this one set to a block base of one and we'll plug this in here we'll see immediately that this will start making really nice and interesting details if we want to see this better we can hop out of it and dog import our fields like so drag this here and set this to object and these two smoke will see the smoke we can add a light so we can see this better is our beautiful smoke with a volume visualization we will actually see our density if you see the smoke wrong or you don't like how it looks you can modify a couple of settings here for example you can go to the texture increase this to one 124 1024 this to full hdr and enable the hdr rendering you will see you will delete our fringe so save as default now that we have this we're going to bdb convert as usual and we will set this to bdb we'll also do a primitive properties set this to volume bdb and turn this on and before that uh vector from scalar and we will merge these guys we don't need the temperature because we don't have one and what we can do now is to save this i already have one node this is the labs node you can also have the file chain normal one it is the same but it has some watch in here which this one doesn't have and what we did is to create this simulation the simulation is set to here and point twenty five so we can see we have our velocity and our density if we visualize this it looks very nice see we can also do a null and export this with out wind high and we want to have an out wind low without the need to resimulate so we're going to do another node which is called outwind low here so we're going to have another node in this case wind low this is this copy paste and you tell this to be with low remember guys if you want to configure this set this to hip and cache and the base name set to dollar us always set to dollar os because we will have the name of the node copy and paste here see this is with middle click we'll have this frame range remember try to have a prayer roll so let's go speak different before and let's start this on the frame minus 50. so our notes will load from -50 also this is what we're going to save in this case we don't actually need to have this one so let's set this to zero so we only save from zero onwards but we're going to simulate regardless from -50 so let's do a resample bdb and set this to use boxes size and leave and leave the boxes size to one you will see this is our high resolution this is our low resolution we only want to keep this for our velocities and to previsulate so it will end up looking exactly like that so this is our velocity from the volume from our simulations so let's do uh shift o and let's save this let's create our particles from this so let's object merge our density source this is our density source and we will see we have this because you can scatter some points inside our density let's not relax this one and let's add way more points this is a lot and it's pretty much what we want we have 1 million let's add these two noises let's add these two nices the first one is going to basically modify our cd which is a float and we're going to remap these and play with the values see this is very cool we have a really nice contrast and the noise is a simplex with the element size set to four around four we don't have setups dollar f divided by two so we can see it moving over the time we only we're also going to have a terrain with these settings without this would look way smoother which we don't want we want to have a train and we will have a warping which adds a little bit of juice here so this is very cool the other noise is basically the same with another noise and another offset nothing more it's literally the same and with a multiplication so we have less of everything everywhere nothing else this is very simple so we're going to have a node when answer wrangle we will delete points here so if our cd is less than our chf which is going to be the thresh of cd we're going to delete our points remove point where here at dollar pt num i've wrote it wrong now there we go so would you say something like this 0.08 we'll only have our brightest points and we will have our replicate node here set to quantity of 15 shape of 0.02 otherwise we will have shapes really big and we don't want this to be so big and we only turn on and off this nice and we remember this is very important copy our attributes otherwise we won't have our cd or anything we want of course and since this is going to be very slow see i'm moving the timeline it's very very slow we're going to do a catch cache of this so it loads very fast these are the same settings i have in my main file so it's going to work very good remember it's the same as we did here this is going to be called out they particles source so let's make another network in this case a pop network and let's hop in so in this case the way we actually want to load in our collisions it's a little bit different we're going to use a static object and we're going to merge this here it is not necessary what i'm going to do with it going to be actually calling or loading our proxy volumes it's i i usually do this because it's a nice workflow but let's for example load this out round poly polycol and let's also load our proxy volume which i repeat is not necessary here but i would like to do it regardless because this work with flips and it works very good even though this is not a flip simulation it can work with a flip simulation so round fdf call see we have this and we go here and use a volume collision so this is going to be our ground and this one is going to be our rats and our rocks are going to be basically a change of name here into rocks and here set two rocks let's move to the first frame we see this works perfectly in fact i should be using the proxy so it's easier to calculate over these guys i could also make a proxy of this one in fact i'm going to make a proxy of this one i don't know why i didn't before so let's go here and do the same we barely have to think about it we just do an out rocks polly call proxy and we will hop in here and change this for rocks poly proxy there we go so we will want to load here on all points using dots using parameter values our out particle source say they are here and if we press play they appear and they don't do anything because we don't have any force so let's do a gravity here the gravity will obviously make these guys fall down and they collide with the ground and one thing i forgot is i was explaining the flips we should use this to surface here in the pops so if we press play this one are going to fall onto the terrain which is very cool okay so now we want to add the forces so we want to use so we want to use a pop force to start with 2 to 1 set 2.1 8 and nothing else let's see what happens barely anything barely anything they are moving a tiny bit to the left okay tiny to the left nothing more and we will use uh albect by volume which is going to be our main sauce in the simulation we're going to use our proxy volume wind low this is going to be treat they were not we're going to treat this we're not going to treat this as a volume and we're going to set this to 2. and let's see what happens immediately we are appreciating a really nice movement it is going to take a while to load so what we can do is to use a delete and see what happens with a delete byte range set to 30 to 31 so this is going to delete the majority of the points in if we set these two points we'll have two thousands and let's see how this develops will have a very interesting noise but everything is going everywhere and we only want to have things inside this box so let's add a sub solver we're going to use an object merge and we're going to use a group this is a really nice trick guys we're going to group this with the points set to bounding by object and with this mesh we're going to use our out b box see and we're going to blast everything that's outside our group like so so if we press play again we will only have particles inside our beautiful box there we go very nice so if we delete this after after after this we want to have a natural delete with these settings otherwise we will have a ton of things this is very useless information at least for what i want so i only kept these guys together which is basically what i want so let's do the same let's save this here this is going to be my first version from the frame 0 onwards this is the old one and the this one collide with the rocks so i'm going to simulate again and you we will see how this develops so i'll be just in a bit okay so we have these nonsense of points how do we interpret this so this is i know a tiny bit better so what we can do is to create a wrangle and pay attention guys because this is going to be a tiny bit a little bit technical but it doesn't it doesn't matter you follow along you will be just fine so let's create a float which is going to be called r from radius and it is going to be called also r from radius we're going to copy and paste this and we're going to set this to oops and we're going to set this to int max points and this is going to be max points 2. let's create these two guys oh this is going to be a chi in fact so we're going to delete this one here this card this one deletes parameters there we go so now we have an integer and a radius why do we need this because there is a function called pc find and we will use that one so let's do a handle handle is a place to store an array for example handle this is for array i will use pc find this finds works on this geometry it looks for these attributes along this position with these radius and these max points that's about it we have our handle now how do we control this on the color let's do an f cd if if the length of our handle not the length but the length there we go of our handle is divided by our max points which we are going to turn them into a float and this will give a gradient going from zero to one we will see this working so one thing i want to do is to only have our pop up here oh so exporting everything okay so i made a mistake we should have this before if we simulate this again we will have basically only what's being called our stream first input do all the opposite there we go imagine this it doesn't exist we should have added this before so with our points and we have a configuration so if we increase this for example to five points we will see something really cool going on we'll see that all the points which are would have nearby companions or neighbors are getting turned on are getting lightened so we also want to multiply this by a chf called mold [Music] and we are also and we also want to multiply this by another thing which is going to be our fit of our length of our b at b then we know that this goes from perhaps 0 to perhaps 145 or 150 and we will clamp this from 0 2 1. let's see what happens after this one i think it will go toward there we go so now we can see basically anything because we haven't loaded this to one now we see the faster ones going way brighter than the slower ones which is very very nice a nice addition we can multiply this by a factor and what we want to do is so we don't have over a one we can clamp this from zero to one just in case so we are still not seeing much but we can for example do a by three now we are going to see some really nice streaks of particles and we can remove all those that are very dark if the float of cd is less than the chff of our deal thresh we're going to remove point 0 at pt num there we go so let's control this as we want we will only see what or we will only have what we need this is very very interesting and i think this can work okay so we have this we can work tiny bit and these guys so we can have only the particles we need for our snow and with this we're done with our particles our tickles here we go shift o and we are ready to go with our second simulation we are also going to have this guy which is our tree which i downloaded from tourist squid for free and i deleted these values which we don't need at all in fact we don't even have this to start with but we do want to keep our name but we don't want to keep our bar map and we are going to convert this just in case because you sometimes need to do that even though this is an fbx so what do i want to do i want to have the branches so let's start by splitting this we know that if you go to our primitives we have a name and the name have these guys branches and stems so let's do that name equals anything that has branch this is a primitive and we will invert the selection we're going to set the name and i'm going to explain what this node does so let's hop in with a lower editing of content this is a very useful node i always use it's very very simple so we only have a class set to primitive and dollar us in this case class nothing but nothing complicated about this and we're going to set our name based on this value which is called piece basically if i change this guy to two for example branches small we're going to have every name set to branches small and why we added a class because then we add these with a string and then by our integer to string set to our class in this case we have a lot of ranges so we have a lot of names and if we want our original name which in this case we don't really need it we can set our name rich equals to our name and that's about it we have branches if we look at them closely we set two names we will have different colors so for we're going to do a for each connected piece or name primitive in this case this is going to be set to name and we're going to do a wrangler we're going to calculate how big these pieces are so we're going to set the following we're going to grab our b box our b boxes our bounded box how big is this object and we're going to set the b box size to this multiplication we're going to multiply by the x by the y and by the set so it's going to be give out a number this number if we leave this cooking is going to go into our points right here be box size and we will have different values the bigger the bigger in the scene so why do you want to do this because we want to split our our branches by the size so so if we make a float set to fresh and rash we apply so if we add this and we copy the parameter and paste the relative we'll have this so if we add a b box size is less than this guy everything that is less than a valley will go to the left so we want the small branches and we're going to do a pack on a single point and this is going to be called small and it's going to be called small branches we'll see this on the name and we only have one singular point representing this geometry which is what we want for the time being so we're going to do a null out small branches on the other side we're going to have the opposite the big branches big branches out big branches and if we split we're going to have on this one the ellipse and these are going to be called out leaves we're going to merge this guys together now we have three points representing the whole tree but before we got to set the names of our lips otherwise our pack is not going to function properly there we go like so and this is going to be called nibs we always need to have this separated in dbr we're not going to use these two guys but you can use it if you want so let's make this larger and we are going to have a null called out three packed we're going to unpack this and do a null called out 3 unpacked so this is our asset preparation we split and we merged again because we're going to use the tree pack to scatter otherwise it would take a long time to scutter now what we're going to do is to object merge and we're going to use the big branches the big branches are going to be used to calculate everything that has to do with the simulation so let's actually convert this and let's delete a couple of attributes we're going to delete these guys we don't want anything that has to do with this we can even delete the class now that we are here the vbox2 the class we can even delete the path we don't need anything literally anything so we want to remesh this guy and we want to do a wrangle called at a float of a height mask and it's going to be zero because we only want to initiate it we're going to splatter scatter some points which this is okay and we're going to connect edges and pieces it's going to be set to achieving points this is going to be 3.8 and only eight points so we'll have this kind of structure perhaps a little bit more or even even more connecting so we can have like 2 000 points being welded by perhaps 10 of these this is fine this is only for a proxy we don't need to think that much about it going to make a group which is going to be called root this is going to be set to points and we're going to use a bonded region as far as this goes this is already nice but we're going to move just a tiny bit so we can include other type of locks or trees or whatever we want to use and we're going to use a match transport which is a very cool feature which grabs from so we can that basically does it basically creates like a gradient from zero to well everywhere you will see what happens when we use an edge network set to group and we use our root if we use ctrl middle click and set to distance we will have a gradient this goes from 0 to 15 in this case and we can use a wrangle to normalize this guy so before that we're going to promote this distance to from point to detail we're not going to delete the original and we're going to call these on maximum to distance max we're going to do the same with distance min set this to minimum and we're going to plug this in here so what we want to do is to you make a normalized ramp based on this minimum max so let's create a float norm beast set to fit off the distance by our mean and max from the detail so load mean equals detail of zero at distance mean at zero like so and we do the same with the max max and hero max this should we should work with a fit set with mean to max and this is going to zero to one so we can actually turn this into a density for example f at density this is going to work for our wire solar we're very close to finish this and we're going to use the norm these multiply by two so let's go and see our distance knob at our density and our density goes from zero to two because we have this normalized multiplied by two we will also have we also have our width set to our density the width is also an attribute from a wire solver and we will make a run from this ch ramp this is going to be our ramp and this is going to be the values we use in the ramp and we can manipulate these guys together right so we want to so you want to invert this guy so the bass is the strongest one or the biggest in fact and the tips are the smallest this will be fine we're going to make another wrangle which are going to be the grouping so if we have a dense density is greater than chf thresh then this is what is going to happen i group pin equals one and we will also have our i pin to animation set to one which is basically going to pin everything together else [Music] we're going to have another group called ayat i got group branches set to one this is going to be our threshold set to 1.3 so if we just delete this guy and set to root or pin in this case pin we will see that we have a pin here so if we move this guy we will have less or more points this floating point is in fact due to the lack of a clean here so if we do a clean here we will remove floating points so we can have this everything that's going to be pinned set around here the rest is going to be moving through the wind this is only for testing we don't need this anymore and we're going to do another angle this is if you want to use volume for example and we're going to use mass equals to zero so it stays in place if we use volume we're also going to piece these guys together bring look at these points and prims they change we have less otherwise it explodes in simulation we will have a name set to constraints now we have name here set to constraints and we have our renewal set to out constraints will object merge our tree packed let's organize this a little bit more like so and let's merge these two guys together i have the tree and the constraints which they look correctly see let's do a copy to points where we have a scatter set to 30 and this is the fan of um of packed things we only have a couple of points not that many and everything is instance so you would see we have an attribute pisces here and we have the mesh of the ground with a small scatter 30 points and we have this wrangle this wrangle contains a way of rotating our normals based on a direction so we have a normal pointing there we need a way to solve the rotation of this normal and this is done with a cue rotate so basically what we are doing is setting an id which has nothing to do with this and that is very important so each tree has its own id when we basically distort with a point deform we don't want all the pieces to be deforming each other we want their name to be distorting itself so this tree won't destroy this one and it will only distort them on its own so we want to set this a couple of a couple of variables the vector being we're going to point outwards the normals are going to be always on the set axis because remember if you copy the points and have an object pointing there d i don't know why but copy two points i to automatically moves this guy to the set position i don't know why it happens but we should be setting this it we should be setting this like that so let's create a vector called rotation and we're going to do the following we're going to use a quaternion so we're going to create a quaternion and we're going to be using radians so we are going to convert a number to radians and we're going to multiply this which is a random number from two to one by a big value put anything you want just make it big and the quaternion needs a picture so basically what we are saying is okay where do to which direction do i rotate do i rotate upwards but do i wrote it there so i want to rotate an x amount of degrees in this case is going to become a random upwards so this normal we can rotate this with a q rotate so we're going to use this volume which we created saying rotate upwards with this normal so this normal is going to do this that's about it there's nothing else we need to know our worry around so as you can see these guys are rotating x amount of degrees so what we're going to do now is to blast these guys and we're going to have our big branches and at the middle we are also going to have our small branches basically anything that is not selective we have big we have small and we are going to also have our our constraints there so if we do the following we can see that we have an id so each on their own but we want to promote because we're going to need to have this into um primitives when we are making the deform so we're going to promote these two primitive all of these are going to be promoting the value like so we're going to have a couple of notes this is going to be called out small ranges geo this is going to be called out big small branches to you and this is going to be called out constraints but from the tree out three constraints these guys these two guys are going to be merged oops like so into the null called out three so it's the combination of both of them now so this is the full preset tab it was long but we are about to finish so let's create a top network the network this network is going to have a wire solver a wire object and each of these guys is going to be loading is going to be loading our out cons trained geo or our three constraints let's go to the first frame we have our trees and we press play basically this goes a tiny bit slow but it works we can try with no copy points to start with so this is faster it's very fast in fact we're going to use a multi solver why are we using a multi solver because we cannot pop a effects here pop at the back with volume we can't this this doesn't work it doesn't recognize it so we need to find another way and the way is to create the following solution is this plus a sub solver and the way this works is okay we have everything pinned together if for example we have a gravity we want to remain this uh we want to have this not fall down that's not right now this is falling down the way we control this is by going to the y solver going to the wire object going into material elasticity and setting this to a bigger number like for example i know 10 100 000 and these two one and in physical we can go and set the width to point one we can actually visualize these individualization with the width you will see at the bottom we have this this interesting shape and the the taller we go the thinner it is so this basically controls the wall behavior we should just need to go here if you're going to change it so let's hop in here set this button and let's go in half side here and move this guy as we basically want see we have more or less uh distortion or shapes going up or down remember this will move this guy a little bit taller but it doesn't matter i like it so if we press play let's see what happens so if this guy is slow we can always go back here and reduce the amount of geometry so let's see what happens now so i had a mistake here when i had scaled by a square ready by and this should have been one instead of zero so if we see closely with this value we have our functional tree moving a little bit see this is very nice so how do we make an addiction our addiction should be inside our sub solver so let's do an ad trivia wrangle and we are going to do an object merge over our i'll be wine wind low there we go so let's do a vector bell equals vector bell and we're going to sample the velocity so volume sample b very important one at bell at dollar p and we're going to use b at b plus equals bell multiplied by 0.1 and this should give us the following results so if you press play we'll have our tree moving once the volume reaches see here's the wind it moves flawlessly very nice so now that we have these we can in fact move to the opposite side to outside and do a switch we're going to use subject oops we're going to after merge our outpeak branches here and our full tree this is going to be a proxy if you want to see the the branches or you want to see the full tree so to pre-visualize we're going to be setting this here we're going to blast so we are going to unpack these so we can have our class and we can transfer the attribute of the id once we copy and paste we will have the id here if we see them closely we will have this and we can rbd deform pieces set like so so the cluster actually is set to id which you see every tree moving on their own and it looks very cool so we've got to do one more thing which is a trial load because this doesn't calculate as far as i know if it does please tell me the velocity we're going to set this to central difference uh we're going to we're going to do two more things first we're going to save these three sims as always set three sims and calculate the frames you want i'm going to calculate everything i'm going to be called this 33 y from youtube so we're going to save this into disk so we got all our simulations here they move correctly and if we go to deform pieces we have all the deformations we need so let's do a null and this is going to be called out trees and chief oh and we are done guys we can see everything together if we want fast so this is going to be the trees like so forgot and this is going to be our particles and these are going to be [Music] our wind on high we should do a volume visualization first of course so we have everything here very very cool we also want to have our [Music] our rocks and our ground mesh we have everything here we just need to add some color okay so we have this blood like color in the particles but everything in the scene is set up correctly hi guys i hope that you enjoyed the tutorial if you want to learn more about effects you can join into my disco channel down below see ya [Music] you
Info
Channel: Pizola
Views: 17,023
Rating: undefined out of 5
Keywords: english, houdini, sidefx houdini, sidefx, from scratch, realistic result, realistic simulation, vfx tutorial, houdini tutorial, visual effects, how to, art direction, easy, beginner, smoke simulation, wire simulation, pop simulation, particles, snow, drag, flow, fast, english tutorial, houdini 19, dop network, advance, meshing, mask, grain, tree simulation, wind, custom wind, forces
Id: TNtkApvpHr0
Channel Id: undefined
Length: 74min 7sec (4447 seconds)
Published: Sun Feb 20 2022
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.