Basic Procedural Feather || Houdini Tutorial

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
and welcome to this video in this video we're going to make a simple feather in houdini and let's jump into houdini and start building this so i want to start with a geometry so right now we are in an object level so when i press tab and i type geometry i can now switch to actually a geometry context so here if i double click on this node we are now in geometry so this is where we're going to create actual geometry like a box or a tube or a cylinder things like that so what we want to do is we want to create a line shape so we're going to press tab and we're going to type in line so now we have a basic line here in the middle of our scene for our feather i want to make this bit bigger so i'm just going to set the length all the way to 10 and maybe also add some more points like 50. so here we have a longer line now with this line this is representing the base shape of my feather and i want to actually give it a bend because if you look to feathers they will often be like slightly bended to a direction so let's also add a band modifier here so we're going to press bend i'm going to add it over here and what i would like to do with bend is i would use the set capture region button so when i click this i now can actually say what i would like to have my bending to be starting now if i would click now i don't necessarily gonna have a clean result so i'm gonna enable snapping here so snapping on points and we're gonna select the bottom point and the top point and now we are having a nice bend so by default we will now have this handle this green handle where we can actually bend this line so we can change this direction you can also control this green arrow based on the vector control axis here so right now it's set to the z axis if i change this to another axis you can see it will change to another axis so in this case it doesn't matter that much but in other cases it will definitely matter what axis you're going to choose so maybe let's give this a suitable bend for now we can always come back to this so now let's start with thinking about adding feathers and one of the first things that i want to do now is actually adding more points on the line so here at the beginning we added 50 points so if i enable my point here we can see the points displayed here so let's say i want to have more of them so we can either go back to the line add more but we would also often just do a resample of the line so resampling means that we can add more or less on the line so here as you can see we're adding more so i'm going to set this a little bit lower because each single point will then represent like a very small hair so i'm going to have to create a quite dense line here so let's set this to 0.03 so now we have a lot of small points here so let's already start maybe making a small hair so there are multiple ways of doing that we can do something very similar like we did here so we're gonna again press tab type in a line we have our base line here and again instead of actually the length can be one since this will be smaller here you can always come back if you want to change this but i'm going to change the number of points to a higher number now we're going to do it again same thing like me we want to give this some certain bending so we're going to just type in bend node and plug in the bend now just similar as before we're going to say capture region our snapping is still enabled and what if we only want to for example bend the top bars here so we can say that i only want to bend this top part and now i can just for example give this like a little twist here uh like so and we can repeat this process if you want to so we can do another bending notes and we can do instead of now only bending like one part we can bend the whole thing so we can set region we can just select again beginning to the end and we can give this like a full bend like so so this is a base hair for example and we want to now use this and copy this on our main shape so we're going to use copy two points let's make some room over here so our first input will be the shape or the geometry to copy and this will then be the points so here now we have copied this here on those points so you can see that each one of them has now that here so of course we want to tweak this so right now it's not really looking any special it's just like a bunch of these hairs copied and next step let's think about adding scale variation so on each point we want to add a certain scale number so for example at the top here the scale should be very thin or it could be very large you can change that for example we can change the scale then now there is some very useful node in houdini which is called distance along geometry so we're going to grab that and we're going to plug it in over here and we need to have some changes in the setting before we can use this so one of the first things we need to do here is we need to set a starting point and the starting point will be here zero and the zero is basically representing the the point number to start from so each point here that i have has its own number and for example zero will be all the way here at the bottom so we're gonna say start the measuring from this bottom point then we're gonna say instead of using the disk output we're gonna say output a mask now we also have this ramp available where we can say uh what the scaling should be what we also want to do is we want to set the radius from parameters to the maximum distance so maximum distance means that it will automatically find the forest points of the shape so we'll get the maximum distance on the shape and this ramp the red color is now representing that so if i change here the value you can see that this red color is being influenced by that so the idea here is that i will now have to make my shape so one of the first things that i maybe want to do is set this to a busy a curve so we're going to select both points by holding shift and we're going to set this to be easier now we're going to grab one of the points and now we can play around with this so we can fine tune how this should go um so we can for example say something like like this and let's take a look at how that will look so we're gonna plug in here in my output and nothing is really gonna happen and one of the key things to make this happen is we are now actually saving this information in something which is called a mask so if i would hold middle mouse we can see that we are actually storing a mask value on the points so we have point attributes and we are storing the mask value on this so what if we change this to something which is called a p scale value and the piece cube will be automatically recognized by this copy two points so as you could see it's automatically being recognized and being scaled so right now we can actually now get better control of this so now we have something that looks a bit more i would say like a feather shape now next step i also want to get control on how the orientation of this will be so there is a very useful node which is called orient a long curve so we're going to use this node plug it over here let's can make maybe make some more room and this will automatically be able to do a proper orientation one of the main settings i'm interested in here is opening the additional rotations so here we have our roll our jaw and our pitch so with these three we can control as you can see how they should be rotated along the line this is very useful to know so we can play around with each of them to see if they could if they give something interesting so as you can see quite interesting results so right now i want to set the roll for example so maybe let's say the roll should be 90. so we have this direction we can also for example adding a twist so we can get some pretty cool results but in this case it's not really fitting for uh a feather like shape but just know that this this can work and you can just easily play around with this over here so now we have some control on how they are rotated because now i only have sort of in this case the right side of my feather so i want to copy the same thing uh on the left side as well but i will do that later i will first add some randomness in there so right now it's like a very perfect feather almost like it's a perfect shape what you can often see with feathers is that some parts for example here at the bottom they might not be perfectly aligned there might be some random curls or rotations in there so that's sort of like fake that here as well so one of the things that i'm going to do here again is i'm going to do a very similar thing with the distance along geometry so we can either copy this node or you can make a new one so alt for copying and we have that over here so let's say i want to select for example the bottom part so let's grab our sliders here and select only the bottom part like so and create something that looks like this now instead of naming this p scale let's call this noise amount and i'm gonna select the name and i'm to copy it for later on so i want to use this to multiply in the rotation somewhere there are multiple ways of doing this i'm going to keep it quite simple and i'm going to use something which is called a vop so a point vob so we're gonna load in a point fob we're gonna just connect it and we're gonna jump into this so you can see that this point fob will hold a new network and this is essentially something where we can do a bit more mathematical things if you want to add subtract do some do some kind of formula this is where we could do this as well and this is all node based so there there are ways in how the newer can actually write code which is called vex but in this case we're just going to use a node based system so first of all what i want to do here is i want to import my data that i had here of this ramp so i want to import the noise amount that is why i copied to naming so just copy the name and we're going to use the node called import points so import point information so we store this on the points and we're going to get points information now we're gonna have to of course make sure we set the right values so this is not a vector this is just a float value and we're gonna look at the input number one so as you can see we have four inputs so we can input other data but we're just going to grab it from our number one then we're going to have the naming which is uh noise amount so we're just going to copy paste that over here and now i can use this so what i'm going to do is i'm going to use a node called mix and we're going to use the mixed colors because we want to have a vector or three floats to control if you're familiar with some more coding this is basically a lerp because we're going to learn between two values so what we're going to grab is we're going to grab our normal which is our primary value and our secondary value which will be in noise so we're going to just tap and grab a static noise here so uniform noise and let's collapse this node a bit we don't need everything the only thing we need is actually here the position so we're going to grab the p which stands for the current mesh position and we're going to grab that and plug that in over here also if you look at the noise now we have here a 3d input and a 1d output which means we have three floats coming in and we have one float coming out so i want actually a 3d 3d input and a 3d output so we're going to change that and this is then basically my secondary value and now the bias here is then my noise amount so again the noise amounts will be used to blend between or normal here and or noise and the only thing left to do here is to actually connect the output to our normal here so we're gonna overwrite the normal and we're gonna use our own system here for it so let's take a look if this is already working so i'm gonna plug it in over here and we don't see anything special yet and maybe let's go to our ramp and see we can maybe boost a bit some of the values here maybe let's bring this to a linear value and now i can see that i have something going on here so we can see that there is some sort of like movement in that rotation uh because of this note here so this is definitely doing its job but we need to tweak some of the values so maybe let's bring this back to uh another setting here maybe grab all of these and set them to maybe this one yeah i think this one could work well so let's go back to our noising here and we want to define our noise and the frequency will be very useful here to tweak if you hold middle mouse button i can quickly for example increase or decrease value so let's say let's increase it by 10 and let's just increase it and we can see that now it's getting a bit more noisy this is what i would like to see so now it's a bit more interesting and what i also maybe want to do is if i look at my original hairs maybe i want to change the the rotation of this so either we can go back up to the band notes maybe bend them in an other direction maybe bend this one also in another direction you can play around with this as you can see afterwards still so often it will it will be a bit going backwards and tweaking the values until you find something that really works for your system so i think in this case it really does give a bit better results so now the only thing left here is basically we can copy this and now we have the same results that we want to rotate this uh for the left side so let's go back to our orientation along curves and if you remember we're going to have to set the rotation minus 90. so we actually have the other side so i'm just going to type it and now if i bring up a merge node we can merge the two different results so we have the left and the right wing and now we should have this result so in this case i tweaked my viewport a bit so you can actually see a bit better since these are just curves so now we have a very basic feather system so the noising here will be very useful if you want to break up shapes quickly you can see how quickly we can just break up this whole part with this ramp so very useful very powerful also in terms of for example adding now more random scaling we can for example use the nodes for randomizing so attribute random so as you remember here we started scaling along this ramp which will be perfectly following that but let's say on top of that we want to add some more randomness in there that's where this retribute randomizer comes in so let's maybe make some more space over here and let's plug that in over here we're going to select those two lines and we're going to redirect it to this node so now what you want to do is you want to overwrite the b scale that we created so we're going to copy name the naming and we're going to paste it here b scale so now we are setting the b scale but instead of setting the value let's say for example adding to that value so we're going to add a random value on top of the curve here of the ramp so let's take a look if this already works and you can see that this is a bit too extreme so we're gonna have to go back here and we're gonna go and change our distribution options uh so first of all the dimension is actually a one dimension so we actually have one float but it doesn't matter that much here and now we're gonna adding a random value between zero and one and this is already clearly too much so we're gonna say that this needs to be a bit more subtle so let's say from zero to maybe zero point one uh and as you could see now we're having a bit more subtle effect so this is the value you definitely want to tweak so even maybe a bit more subtle so we have like a very little variation here and if you want to go to options we actually have done a seat value so as you can see we can now have like these little changes here you can also go and change this for for example like a multiply option and as you can see like this will then give a whole different result because we are now multiplying so we're gonna have to set this to for example uh from one to point one and then we have something similar so there are many options you can do with this note it's a really useful note to know about so let's finish up this a bit more so what we can do is we can actually give this geometry so we can use the sweep node to give this geometry so we're gonna use sweeping and in the sweep node we're gonna set this to a around tube and now we can actually give this geometry and in here what we want to do is we want to go to our scaling ramp we're going to enable scale along curve and we're going to just bring up this down and now we have a more feather like shape so maybe we also want to break bring down the radius here so we can change that like so so we have a feather like this so we are very close to finishing off this so what you can still see is that at the bottom i have this really strange result um so that is because at the beginning here i scaled this to a value of zero um so these are the issues or the points that you're seeing right now is basically this part so what we can do is uh we can basically say that if uh the p scale equals zero then delete the points and again in houdini there are a couple ways of doing this i can show you like three different ways but what i would often do is i would grab a blast note which you can use to delete things and in the blast node we're gonna write a little if statement so we're gonna say add b scale so that's gaining value if this is equal to zero then delete the points now it's not working currently because we have to set this to points as well and as you can see we made like this little jump here so as soon as the scaling reaches zero we're going to automatically delete that so let's put that in over here and now we have a perfect result so a couple things we can finish up with is we can grab our sweeping here and we can sweep our main ship like so so sweep uh statistical to run tube and we're gonna go and change this along its line so we can scale this a bit like so and we're gonna then merge this together so these two merging together and then we have this if you quickly want to give this a color we can for example use the labs gradient color so we can plug that in over here and we now have a small color from black to white but maybe let's make it more colorful so we have some bit more colors in here so we have this result now and we are done so now the system is in place to be used in a tool and what we can do with this we is we can always go come back to our beginning and we can for example change our bending so if i change the band we should be able to sort of like redirect that feather and you can see that it automatically will adjust based on the settings we created for it so if there are things you don't like you can always go back to certain notes like for example maybe skip this so we don't have that much random variation so we can always go back and change things so if i don't like the scaling here we can for example make it like this so it's almost like a sword now uh but yeah you can get the idea that you can play around with this and you can do all kinds of things with this and that's it for this video so i showed you a base system on how you could create your own fighter and overall this video just shows you a lot of interesting features and notes you could use in houdini so i hope you enjoyed this video so thanks for watching feel free to like subscribe and see you in the next one
Info
Channel: Simon Houdini
Views: 1,374
Rating: undefined out of 5
Keywords: Houdini, procedural, feather, nodes, 3d, art, game, cgi, render, hair, scattering, scaling, rotation
Id: jNj9o9g04pA
Channel Id: undefined
Length: 21min 57sec (1317 seconds)
Published: Thu Dec 16 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.