Geometry Nodes - Hanging Decorations Livestream

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] hey everybody just getting stuff set up here so bear with me for just a moment it's been a little while since i've streamed so uh just trying to get things back in order here all right hi everyone let's go ahead and get started so uh please let me know in the chat if um if everything sounds alright if you can hear me if the music's too loud too soft all that good stuff um yeah just let me know um here's the plan for tonight i didn't have uh i don't have anything too horribly complicated uh what i'm gonna try to do is set up some christmas decorations or just some simple decorations for this little scene that i've got put together here actually give me two seconds and i will put in the chat a link to this file um as it sits right now that you can download from my dropbox uh give me a second i should have had this before but i didn't here it is blank so there's the file um as it as it sits right now so you can feel free to download that and check it out um also uh i'm going to be using blender 3.1 alpha as compiled today so um there might be some stuff that uh that i use in here that isn't in um 3.0 release um but you are uh if you want to absolutely follow along just download the uh the newest build from builder.blender.org that will have everything that i have here or at least it should so excuse me um hey i'm doing well i'm doing well it's uh it's a little late here but um wasn't quite ready for bed so i thought hey i'll jump on the live stream for a little bit and see if we can do something cool all right well i'm going to go ahead and jump into this um what i had what i've had in mind at least and if you have questions along the way feel free to uh pop them in there's a little bit of delay between when you type and when i see it so um just know that we're off by a little bit i don't have like a super fast latency uh here so um i might go a little past beyond if i see a question and i have to backtrack but i will do my best to answer your questions i don't know everything so i might have to say i don't know uh the only other thing is if when i start moving around in my scene if my audio starts getting um thank you i appreciate uh appreciate the kind words um i'm glad uh i'm glad you're getting something out of my tutorials um if when i start moving my screen around and rendering if my audio gets choppy please let me know i've had that trouble in the past i've made some adjustments and i hope it takes care of it but um just let me know if things start getting uh getting choppy and i will change my render settings on this end here we go so what i wanted to do um i was inspired by some of my uh some of my wife's christmas decorations she's got these um these strands of like um they're little felted uh little felted balls on a strand um that she's got hanging uh around the house they're really cute um so i wanted to do something similar in this uh in this living room scene that i started the other day for my tutorial on color temperature um be sure to check that one out if you haven't already um i found that when i started using color temperature for my light bulbs my scenes started looking a little more um a little more realistic so that was that was handy i thought i'd share that with you so i've got this scene and i want to hang um along the ceiling here i want to hang some strands of these of these little bulbs and we're going to do that with geometry nodes so what i want to do let's jump into geometry nodes editor here and i'll go into wireframe mode cool all right so the easiest thing to do is to um we're going to start with a curve so i'm going to add i'm going to use my base object as a curve here i don't i'm gonna i'm gonna change the handle type in a minute so i really don't have to worry about straightening it out or anything i just need to place the endpoints so i'm gonna drop this end point in this corner this endpoint in this corner and then extrude this one way down here so now this curve is in all three corners of the room um obviously this isn't this isn't what we're gonna want we're gonna need to do some other stuff with this but um we'll add a geometry node tree to it uh what uh what's wrong with the volume is it too loud too soft music too loud what's up let me know let me know what uh what uh sophie what the problem with the volume is i've got my end cranked pretty good here the mic a little closer maybe that helps okay um all right so what i'm going to do on on this to get started we want to first thing we want to do is work on the shape um the overall shape of the hanging wires and okay good glad the audio is fine um thanks for letting me know so what i'm going to do is i'm going to add a curve node and i'm going to add the set handle type node so this is going to change the handle types of my curves and i want to adjust both the left and the right and we're going to change these to vector type so now [Music] basically the control points the hand the control handles are pointing directly at the next control point in the line uh we can see this if we uh if we just take a bezier curve over here and i do this and then i manually change the handle types to vector you see they like this one is now pointed over here and this one is pointed over here and they all line up nicely but as soon as you grab one they're no longer vector handles they're now free handles so we're going to take advantage of that actually when i when i coded the set handle type node that was one of the things that um one of the things that we worked on uh very specifically was that when you change the handle positions um it changes the type so if your type is vector and then you do a set handle position node and you change the position they become free handles so setting them to vector points them at each other first and then moving them keeps them keeps them with that same kind of starting point so just something to keep in mind i'm going to go over here one thing i'm going to do just so i don't keep jumping off of my geometry nodes is i'm going to hit this little pin and if you don't know that pin um keeps this geometry node tree in the this editor no matter what i click on so if i click over here over here i'm still editing the same node tree that can be handy and you can actually open up multiple node editors and pin different node trees in different editors they don't have to be the same one so like this one you'll see if i click off this one changes now but this one stays the same so that's super handy if you if you hadn't seen that before okay so now now that i've got that now i'm going to add a um a curve set handle positions node i've uh i've pointed this out in several of my videos um the set handle type can set both sides the left and the right at the same time um because because they're independent of each other so setting them both to auto or both to vector changes things however set handle positions has to be separate um just because of the way uh because of the way these work because if you have auto handles on both sides and then you just change the left position or you change you change them both they have to change in the same way actually the opposite way so because of that you have to do them one after another it's it's just a tricky little thing um yeah so i'm just going to duplicate this one pop it here and click on write so now i'm going to be changing the left and the right for the moment we're going to add a vector input so i'll go to input vector and drop that onto both of these offsets now if i simply lower my z value on this vector you'll see that my um my my string here starts to droop which is exactly what i'm looking for um so that's uh that's pretty handy that's not what i wanted to do i wanted to do that let's clean this up a little one thing that i am learning along with everyone is do your best to keep your nodes uh tidied up um because they can get out of hand really quick uh especially as you start adding more even more nodes um you're gonna find that you've got just a mess on your hands so um not only uh not only keeping them uh keeping them nicely this way but also um uh yeah yeah the pin it's the pin is a super handy feature um okay so if you go ahead and you grab these nodes these are the nodes that are doing our um our drooping um turning these into catenary curves if you will so what i'll do is i'll with all of these selected in the middle here i'll press ctrl g to group those and um so here we go so we've got our group input and our group output and our kind of our droopiness group here i'll click the up arrow to tab out and you see now that that is all just one one node group and i'm just going to name this i'll just name that catenary because that's what we're doing with these with these particular with this particular node cool so there's that so now we've got a we've got some droopiness going on um now we want to add uh we want to add something to the uh to this string the first thing we need to add if i go back over here and i drop into rendered mode [Music] you can see this a wire but if i turn off my overlays so that i'm only seeing the render you'll see that i can't see the wire because it's just a curve and a curve object by itself has no thickness so you can't see it in the render so what i need to do is go ahead and add some thickness to this uh easiest way to do that is just with a curve to mesh node so i'm going to go curve curve to mesh add that and then i'm going to add a curved primitive circle i want my string to say be i don't know let's go one millimeter thick and then we'll drop that on as our profile curve so now you can see i've got my uh i've got my string here and it's showing up in the render so that's a good start um i do have my samples turned way down um and my denoiser on so this might look a little blotchy and of course i'm sure the youtube compression isn't doing it any favors either but that's good enough for now we can bump it up a little later if we need to so with our this creating our string thickness i'm just going to go ahead and select these two and group them come out and then call this string thickness so as you can see if you're um you know i've i've already added uh you know here we had four nodes in here and we've got two in here so we're you know we're up to six nodes here but keeping them condensed down this way means um they're not overtaking my scene or overtaking my node editor if you will uh and i can they're a bit more manageable okay so now we want to put something on our string so let's go ahead and do that anytime we want to place objects on another object a good go to is the instance on points node if you were using if you've used some tutorials before blender 3 came out the old instance point instance node got removed and a new point instance node called instance on points was added so i'll go go ahead and go to instances menu and say instance on points i'm going to drop into wireframe mode here i'm going to also select my select my curve and press the forward slash key and that way i am on a local mode a local view and so i'm only seeing my only seeing my curve here now what we need to do is 7 a.m huh well it is currently 11 p.m here in uh in illinois uh us um so but hey i'm uh i'm glad you're i'm glad you're watching um so what i want to do is i need to give this instance on points my list of points and so the list of points is going to come from the curve so i'll take the i'll take the curve and plug it into the instance on points but i want to make sure i'm using the output from the catenary node here as my as my source that way my source has um has that curve in it has that droopiness next thing i need to do is go ahead and give this something to instance since i'm just going to be adding you know some little little spheres to this i'm just going to use a mesh primitive uv sphere and um we want this to be uh i don't know we'll have these be an inch in diameter or so or an inch in uh the radius so let's do a one inch i'm sorry that i'm jumping between metric and imperial here um i i definitely suffer from um middle america uh it's hard for me to think in metric sometimes but i hope you forgive me for that anyhow my uv sphere this is going to be my object that i'm going to instance so i'll plug this into instances okay now we need to get these instances to our output and uh easiest way to do that is by adding a geometry join geometry node and now we have both the string and our and our uv spheres that we're instancing um now if we look at this we can see that we've only got the spheres at the control points of our curve that's because by default when we um when we use a curve as a points source we only get the control points as the as that source so we need to find a way to add more points to our curve we're going to use a curve a resample curve and so what this does is it takes our curve and it um it goes along the length adding more control points to that curve we want to make sure that we add this after our catenary curve and i'm just going to add it on the on the instance on point side so our string the the the curve that's going to our string thickness here still only has the original um three end points or three endpoints the three control points um and so when we change this to a mesh we're only changing you know based on those three points but over here we want the higher resolution um to show up for our instance on points uh there's a couple ways we can do this we can base this on the count of how many points we want we can do a length and we can do [Music] the evaluated which is based on like for nurbs curves and things like that i haven't had to use that as of yet for evaluated but for this one i want these to be right one right after another so i'm gonna do length so length is actually going to be um the the length of the curve between each instance so right now this is at 0.1 meters and since our uv spheres are 0.025 meters in radius so they're about 0.05 in diameter i'm gonna go ahead and decrease this so they're closer together um i don't want them to be perfectly touching i want them to be a tiny little bit of space so maybe i'll do um oh let's do .07 meters that's better um maybe a little bit less six maybe let's try .055 yeah that looks pretty good so now we've got we've got them close but not touching perfectly just to just to give them a little bit of separation totally up to you i'm going to drop out of local mode go back to my camera view and we'll drop into rendered mode and see what we've got alright cool so this is um this is starting to be closer to what i was hoping to go for but now um of course we could do a strand of these uh like in white here um so they're like a snowball but maybe we want to do multi-colored instead there's a couple different ways to go about this and um one of the ways is using uh is using another node that i recently added to blender which is the mesh islands node so what we can do here right now if we if we look at this group output let's look over at our our spreadsheet view over here in the corner we have mesh data so we've got 800 vertices here and we have 175 instances so our string is generating the 800 vertices and our instance on points is creating our 175 instances um one way i can do this now there are multiple ways you can do this this is just kind of one that makes sense to me just because i just was recently dealing with this if i go ahead and change these uv spheres into actual meshes and i do that with a instance on realize instances node and i drop that here you'll notice now that my vertex count has jumped way up to 348 thousand that's partially because my uv sphere is 32 by 16 which is way too dense for what we're doing here so i could change this to like um i don't know ten by ten and now i'm down to sixty seven thousand which is a whole lot better and you really can't see any difference um i even go lower let's do six by six yeah you still can't tell any difference and we're down to 23 000. so you know your mileage may vary anyhow so here i've i've changed these now into all separate meshes and what we can do is now we can take these sorry wrong button there we go we can take these instances that have become meshes and we can get an index for each mesh island so each separate group of indus of uh vertices uh see if i can talk here each separate group of uh vertices can um can get their own index so to do that i'll add a mesh mesh island node i just added this one to blender 3.1 like just a last week uh you can i think this one uh this one's gonna be a favorite i think i don't think a lot of people are gonna dig the mesh island node um as kind of it gets more and more out into the wild um i'm sure once some people like uh aarondale um start playing with it more and more uh you're gonna see a whole lot cooler stuff than i'm doing with it uh by uh by some of the more talented artists out there um my stuff's a bit more practical like uh uh utilitarian it's not super like blow you away my stuff's never gonna be the splash screen of blender i'll give you that much so enough of that um so the mesh island node so when we plug this into a geometry that has mesh data it's going to generate these indices so how do we use that um what we do is we add in an attribute capture or capture attribute node and we're going to drop that in here on this line so now this mesh data from our from the the spheres is what's going into this and we want to evaluate the mesh island index against this against these meshes so i'm going to go ahead and drag this in here all right so now we've got um if we go ahead and uh control uh shift click on our capper capture attribute and then plug in our attribute to the value here you'll see that our viewer our viewer column for the first 36 or 30 [Music] 32 yeah for the first 32 points is zero then the next 32 are one then the next 32 or 2 and so forth and so on so what i'm going to do is i'm going to drag this attribute to our output so now what we're doing is we're saying look for these points we're capturing that attribute at this point and we're going to send that out of our node group now there's more we have to do in order to access this if i go over here to the side panel into my modifier properties window and i expand output attributes we see a we'll see a listing of the attributes as they're listed here with a space first thing i'm going to do though is come back over here go to my end panel go to the group tab and i'm going to change this name from attribute to mesh and then here i'm just going to name this one island so this name that you give it here is what you'll use to reference it in the shading editor um well thank you for the kind words my my wife would say if i'm really good at anything it's self-deprecation so uh there is that um so now i've got this attribute called island that i can use let's see how we can use that we're going to add a material to our to our snowballs here so with this curve selected i'll go to my material tab and i'm going to add a material and this one will be for the for the balls and then i'm going to add another one uh and we're gonna this one is gonna be for the string okay so um so now what we'll do is we're gonna add some uh set material nodes so that we're explicitly telling our node tree which material to put on which uh which piece of geometry so i'll go to material set material i'll drop one here after our string and uh ended up being string 001 so that's that one and then there we go um and then i'm going to duplicate that and drop it here on after the realize instances and this one is going to be uh balls all right let's jump over to our shader editor and see what we can do with these okay so now that we've outputted these um from our geometry nodes those should be an attribute now that's accessible to our to our shader tree so if i come here and i do an input attribute the type is geometry and i named this one island now the first thing i could do is grab the factor and like i could plug it into base color oh i am on the wrong thing i'm on the wrong yeah don't mind me now i'm on the right material let's try that again shall we uh attribute factor into base color and this was called island now you might be wondering what on earth just happened um i didn't create uh i didn't create little cotton balls or whatever they were shiny balls or whatever i just created a string of really bright light bulbs and there's a good reason for that here's the reason you'll remember that the what we outputted was the um uh what we outputted was the um trying to get the words to come into my brain we outputted the mesh island index and the mesh island index is an integer the first one is zero the next one is one and then they just go up from there so this factor is uh is an integer and our color is expecting a value um are all values between 0 and 1. so we are overdriving this and basically we turned this into an emission shader by giving it color values that are way blown out of out of proportion so how can we um how can we bring this into the realm of colors that aren't light emitters well first thing i could do is think about the type of information that i'm getting so i'm getting integer data and how can i and i'm getting um an unknown or at least an arbitrary amount of data uh of numbers here so i don't know offhand like i could go look and see okay i've got um 200 uh balls on this strand and so i could work with the number 200 but then if i change the strand change the length or something all of a sudden the number could change and now i've got to go change my shader again and that's no good so we need to think of a way to bring this into a a more procedural sort of situation and the one of the really good ways to do that is with the modulo operator so i'm going to add a i'm going to add a converter math node drop it on this line and change the operation to modulo and if you're so if you're not familiar with modulo um the easiest way that i can explain this is like when you first learned how to do division in elementary school and the teacher asked okay um what is seven uh divided by two and the answer they expected back was three remainder one um and so that remainder is actually the output of the modulo when we're talking about when we're talking about integers it's that remainder if we take the first if we divide the one number by the other we get a number then we throw that out and then whatever's left between those numbers that you couldn't fit in that's the modulo but what happens is when you use that against a number say you do a modulo 3 you end up with a repeating pattern of 0 1 2 0 1 2 0 1 2 all the way up so we're going to use that to our advantage here so we're going to set the modulo to the amount of colors that we want to show up on this strand and so i don't know we'll do we'll just do three colors for no other reason than to keep it simple so now what's happened is when the when the mesh island number comes in we're doing a modulo 3 operation so if the number is evenly divided by three we get a zero so those are the black ones if they are [Music] say it's the number four it's going to be one because it four divided by three is one remainder one um and then if it's five it's going to be one remainder two so the modulo is going to be two and then when we get to six divides evenly again so we're back to 0. so this is a value of 0 this is a value of 1 and then this is a value of 2. not quite high enough yet to start overdriving it and making it a massive light emitter but um but it'll get there pretty quick so now the next step is one now that we've got it we're at least dealing with a numbers that we can um we know they're going to be 0 1 or 2. what do we want to do with that well let's go ahead and um divide those numbers in such a way that we can get them between zero and one couple ways we can do this and probably the easiest way i would say is using a map range node so if i go to converter i've got map range map range takes what our incoming values are going to be and then does a linear interpolation which means it kind of fits the 1 the one scale proportionally into the second scale now we want our color to go from zero to one and our incoming as we said starts at zero and is either zero one or two because we're doing a modulo three so i'm just going to change this to two now you can think about it this way zero maps to zero two maps to one so when our value is one it's actually going to get mapped to 0.5 so that's good so we know what's going on but right now we've got some very boring um black gray and white balls and if we're doing a holiday theme i don't know that that's a might be a little morbid i don't know maybe it's uh it's classy it's a classy christmas ornament i don't know we want a little more gaudy than that so if we want to create some colors here i'm going to go with a color ramp node so if i go to converter color ramp and drop that on my range here we're going to go ahead and pick the colors we want to use so i'll do i'm going to set this to constant and that way we don't have a gradient here we're just picking um we're just picking colors and since we want we want three values zero point five and one are the three values that our mod are our map range is going to output so if i add in a couple of stops here i basically have this first area handling the zero this middle area handling the 0.5 and this end area handling the one so all i'm going to do here is i'll change this first one and maybe we'll make this one red take the second one make this a [Music] green and we'll leave the last one white okay so there we go that's looking pretty good um i think i'll also uh turn up the roughness on these because we want these to be some kind of um felt or some kind of clothy type material um so i'll do that i'll turn down the specular so they're not really reflecting you know they don't have like high highlights um so much on them and uh that that's fine for now this really isn't a uh so much of a texturing material or a texturing tutorial um so we'll we're fine okay cool so now now that we've got that now we could uh now we can easily grab this and use this to kind of decorate our scene [Music] if i come in here i can of course just grab this corner put it up here grab these put them up here maybe i want there to be another loop here in the middle of these so i could grab these two right click and do a subdivide maybe i want to hang some on my shelf here so what i'll do is i'll grab this middle one here i'll press a shift d to duplicate this bring it down to the edge here um see in shader nodes we can use the position of an object like empty to control the position of the shader can we do something like this with geometry nodes um so what you're if i'm thinking correctly you're using the um like the object coordinates um in the shader editor right now um so coordinates for shading out of geometry nodes is still in its infancy um i have not tried to do what you're asking just yet i know one of the targets uh for the coding for blender 3.1 is to get at least some kind of more control over the uv and the like texture coordinates in geometry nodes uh i think that's probably one of the uh one of the big lacking points at this point um i know there's a lot of a lot of requests to get to get some of that support in there we'll be adding a a 2d vector socket which is what we're going to need to handle and manipulate uv coordinates among other things that we can end up using that for as well um but uh but for now i'm not i'm not super sure um of a good answer on that one so yeah i would i would have to do some testing to see how you could do something like that so if i want to go back here and i'm just going to add so i'll just uh extrude this curve this that all right so um so we started to get some uh you know something a little fun going on here now one of the things we might want to do is um right now there's not a whole lot of artistic control if i go back here to my geometry nodes window i'm going to uh i'm going to grab all of this stuff here uh that and that yeah sure we'll move this over we're just going to group these ones together just to kind of clean things up a little bit and call these balls okay cool if i go back into my um if i go back into my catenary node you'll see that um if now if i change this value it changes for all of them and the problem is i might want to have um you know nice big long loops like like this on my ceiling but then like here on my shelf i want smaller ones uh there's a couple things i could do um i could uh bring this value to the input of the um modifier and then have separate and then have these be separate from these on completely different modifier stacks and then edit them um edit them that way uh let's go ahead and do that um first so you can see uh let's see what i'm getting at so what i'll do is i'm going to shift right click through these ones here to combine them and then drag this i'm going to get rid of this and then i'm going to add a vector combine x y z and then i'm going to take the z and drop it into [Music] my input and then i'm going to take that and drop it to the input of my entire modifier so now if i'm in my if i'm here in my modifier you'll see that i've got um that control here instead which is great i mean that that's great if i um do negative 0.5 so now if i were to take these ones here and separate those into a separate curve okay so now i've got these and these i can change that settings separately for those ones um that's great um and for a scene like this where you might have i don't know five or six different strands of these uh of these decorations having them all be separate objects that you control individually might not be a big deal um but if you are doing something like this and you've got a massive scene and you need um you need to control like large groups of these at the same time um and they're all separate and you're having to go into each one and go into the modifier setting and change that for each one that could get really hairy really quick so i was thinking about another way um another way you could do this and have it be in just one uh one object with one modifier so i'm gonna undo what i did here get these back to being in the same okay cool yeah we're back here i'm gonna get rid of that back into my cat and area get rid of that and get rid of that and get rid of that so we're back to where we were kind of yeah cool all right we're back to where we were so what i thought um would be an interesting thing is if we used a value on our curves that we're not using for anything else to drive that droopiness um so we're not using the curve radius uh um uh really to do to do much of anything so we could come in here and um let's see here here's what we want to do if we do our input radius that's going to take the current radius of the curve okay at a given point and i can plug that into the z now you might say well something just exploded here um if i go out of uh this view you'll see that everything went the wrong way that's because up till now my droopiness has been driven by a negative value on that z and radius has a positive value so easiest thing to do here would just be to add a utility node math and multiply by negative one so now it'll take the radius value and just make it negative and if i come in here and go to edit these and i'll use alt s to scale these you'll see now that from my from my editing window here from my 3d view i can change these one thing because our node tree is very simplistic i've done a couple of videos on doing catenary curves and hanging cables and one of the things if you have varying varying levels of droopiness you have to adjust your handles differently so in this case um this handle and this handle so like the right handle on this point and the left handle of this point have to be moved the same amount and so you have to do some trickery to access the left handle of one curve in the right handle of the other um and that's more than i want to get into this evening go check out those videos they're they're just a few weeks ago um there were two videos that i did on hanging cables i go into that quite a bit more and hopefully that answers that question for you so if i just come to one of these and scale it all of a sudden the you'll see this starts acting weird and in a bends in an unnatural way so what i need to do is in this case i would have to um i would have to select um all of the um all of the points on a given strand and adjust them the same amount for for this particular example so if i were to come in here i'm going to undo what i did before okay so i can select all of the points in a given curve by using the l key so if i select one or if i hover over one control point and press l i'll select all the control points on that entire curve super handy um and then if i hit alt s now i'm just editing that one okay and so then i can come here hit l back into let's go into ev rendered mode here so now i can go ahead and just edit this one and get it to the size that i want and so that um that will now give me another level of control just from a just from kind of a art design standpoint rather than having to go back in and tweak and tweak those settings inside of the node tree now i've got an external control for that i do think that there's gonna be some looking towards adding um for for curves adding something like vertex groups um there's been talk about adding something like that in the future and so you'd be able to add arbitrary um arbitrary values like with a kind of a weight paint kind of situation uh to curves as well as to um as well as to the meshes um you know you could probably as i think about this you could probably start this with a mesh put a vertex group on there capture that value then convert your mesh to a curve you know let's try that this is totally off any kind of script that i was going to do but um let's see that that works let's let's uh let's let's try that shall we so i want to be able to control my droopiness with a vertex group so what i'm going to need to do is i'll come into wireframe mode here i'm gonna add a plane let's get rid of some vertices this okay we'll start there um i'm going to add a new geometry node tree to this one and i'm going to select uh the one that i just did that's that one is it two yeah yeah okay i got the right one now so i don't destroy what i've done i'm gonna click the uh single user copy button so now i've got a new node tree just for this little this little test and of course it isn't working because our input isn't a curve so i can't do this catenary bit on a mesh yet so in order to do that i'm just going to come in here and say mesh to curve drop that there right for the moment i'm going to disconnect this radius because our our mesh doesn't have a radius oh what have i done oh i see what i've done okay cool both of because i used a node group here my geometry nodes oo3 which is my curve ones and my mesh ones are all using the same catenary curve so i'm going to hit single user on this one as well then i'll come in here get rid of this three extra curve okay that's one oh okay i know what's going on um so why this isn't drooping yet is because when we do a mesh to curve the curve that gets generated is a poly spline curve not a bezier curve so we do need to add a set spline type node here so if i come to curve and say set spline type and change that to bezier now it can be affected by the no curve length so we can switch and find input is mesh of curve i should have no curve length so we can switch and find input well yeah yeah um so what i'm going to do here all right so now that i've got this hooked up so my mesh uh yeah yeah okay so this one that's all red i wonder why that's all red well figure that one out um so so basically we turned this this line of mesh into um into a curve we changed its spline type to bezier and then we did our our catenary business on it what we also want to do is before we change this mesh to a curve we are going to capture an attribute and we're going to plug this into the input all right so now we've got this this input here we're going to we're gonna take this um we will put our we're gonna put our catenary droopiness back out here and we're going to connect this attribute here so what's happening here is whatever is going to come in is going to be evaluated on the mesh and not get evaluated on the new curve so now when i do this i should yeah so i have that if i'm thinking correctly if i click this button here now i can type in some other thing like like edge crease or point visit like this is other attributes of our of our mesh and if i come here and add a vertex group to this group and um so i'll come in here and i'll just assign a weight of 0.5 to this vertex group okay then now i can choose group here okay cool so so this is going to take the um hey evildoer um i'm i'm coming into the the the coming into the station here pretty soon i'm closing in on midnight my time so um that's totally up to you but let me review what we've done here so originally we had our curve and we passed it through our catenary node and um at instance these uh instance these balls on it but then i was thinking maybe we could uh affect our droopiness with a vertex group so i've i added a mesh i added a few extra nodes to convert that mesh to a curve and then ran that back through the same the same node tree so now the moment of truth would be if i were to take this and um let's go let's take this go into here and then go into vertex weight paint mode and i hmm all right that's not working the way i would think uh let's do yeah it might not be working yeah it might not sure what i'm doing wrong but that's okay i'm not going to belabor that point um if i come in here and i change turn these back on okay so yeah i can i can use this vertex group now to change these values um you know that's another way you can do it so if i were to have another strand here i can have that one be smaller and if i were to go back and do something like i did in my um hanging cables video i think especially the second one um i really nailed on this where each point is not just controlling the that value of its left and right um control points but it's each point is controlling the droopiness of its right control point and the left control point of the next point over um then you could just pick one and and just like you would be able to individually adjust each loop using um using a vertex group which i mean that would be that would be pretty slick or um you could go back and use the thing with the radius on the other ones um i'm gonna go back and do that i'm just gonna go here delete that one but to be able to come in here and you know grab one point adjust its radius and have it be drooping more or less and then you know you could really have quite a bit more artistic freedom to make these not so uniform all right so let's um let's pull this train into the station shall we and we will uh let's see i'm just going to come over here bump up our render samples we'll do eight yeah that doesn't look too bad well thanks i appreciate uh i appreciate the vote of confidence so this uh again this is this is really a more practical use of geometry nodes um i'm i generally don't think in big enough terms like uh like arendelle does with with enormous scenes that are all just one geometry node tree i just like a thousand nodes in one tree i am blown away that he can get that done um his skill really impresses me uh when i think about geometry nodes i think about them a lot more in the same way that you know you might do like a an array modifier or a a sub surf or you know something like that it's just a way to um take an object and do something a little more with it uh to have a little more control over it make it a little more procedural so in this case um having one node tree just for like these hanging decorations and if i wanted to do a stack of paper on the table i wouldn't do that like personally i wouldn't do that in the same node tree i would have a separate node tree for that and just add it where it needed to be um you know if i had multiple things of paper it depends on how i built it whether or not it easily lent itself to doing multiple stacks of paper um you know in this case because i'm using a curve to uh to generate the um the pinning points it it just makes sense for me to to do that like all of the all of the decoration hanging decorations with one node um the objects beveled or these are these are sharp um i think if you're i mean there's some things in this scene that are beveled um uh there there's some stuff in here that's beveled but um i think you might also be getting some uh youtube artifacting and um just kind of low resolution on my render um but yeah i think like like i i'm pretty sure like on like the furniture here um i've got some bevels going on that answers your question all right so you know before i uh before i wrap things up for the evening um is there anything else any other questions um related to anything i did tonight that uh that you might find interesting uh for me to touch on um i'll kind of give give the feed a second to get to that statement before i sign off um but thanks for if not um geometry knows hey you know it's uh we're all pretty new to geometry nodes um you know they've they've really only been around about a year um is there some way we can ask you questions about doing things in blender outside of this platform yeah actually um if you want to hit me up on uh twitter my handle is um is at johnny gizmo that's uh j o h n n y g i z m o um feel free to uh to uh to at me on twitter um i love interacting with people i love i love talking blender um so yeah yeah hit me up there that's probably the easiest way um if you've got something uh that would a lot of people would benefit from definitely you know hit me up publicly um on there uh but you know if you've got something more uh if you need to dm me that's uh that's fine um my dms are open at least for now um is geometry nodes going to replace basic models yeah like evil doers said um not now i i really see it as a um as an extension um you know it's a modifier it's it's a i mean yes it's a whole system of of modeling um and but i think it its power really resides in uh yeah yeah complementary that's the exact right word um you know taking something you know oh you've got a basic outline of a spaceship or something using geometry nodes to be able to place you know all the little uh gribbles and gimbals and whatever on the outside of your spaceship that but all of those things that you've modeled separately and are now placing on the on your bigger model um you know like that kind of thing is i think the real power in geometry nodes um you know oh i have a city that i'm building yeah i modeled all the the parts of the buildings and maybe the buildings are procedural maybe the roads are procedural maybe like but at some level it's going to look a whole lot better if you've actually modeled something and not everything is procedural from every little bit um that's not to say you can't do that but i think combining the two it will give a whole lot more power it'll be a better use of your time than trying to get every little thing you know because if it takes you five minutes to model something that it takes you two hours to do the same thing in geometry nodes you really didn't save yourself anything because you can drag that model into geometry nodes with you know two clicks um so yeah you're not you're not using geometry nodes wrong if you don't do everything with it um uh but distance between balls should stay the same what more droop need more balls um yeah so uh if we go back to um if we go back to the balls uh object um when i did the resample you'll see that i used length and so basically that is placing points along the original curve at that distance so as that droop gets longer it's going to be adding more points along that droop and therefore more balls will get added to that droop if i were to do count and say do um uh 150 say so there's um ah sorry there we go so with just the raw count you'll see as it gets droopier they get further apart because the count isn't changing but when it's on length no matter how far i droop it down they're staying the same distance apart yeah i mean i do think people are trying to uh to really show off the power of geometry nodes um you know uh blenders always had a bit of a inferiority complex um and so you know when we have some really cool new stuff going on um you know i think people have a tendency to try to to really blow the doors off it and say hey you know we can do some really cool stuff with this and you know we've come a long way i've been using blender uh personally for 20 years 21 years i should be a whole lot better than i am but that's beside the point um but you know coming back from the early early days um when we didn't even have undo um yeah so like in the early days we didn't even have undo which was um interesting uh you know we um we've come a long way that's you know i guess that's as much to just say that we've we've come a long way for sure all right cool well it's midnight here and um i think it's time for me to to sign off for the evening i really appreciate you all coming by um it was exciting to see people showing up to the to the stream um i think i think we covered some cool stuff as always you know hit like uh hit subscribe to the channel tell all your friends um you know all that good stuff and uh you know more stuff to come i've been coding a lot uh and trying to add some stuff to blender um lots of new nodes uh i know i've gotten some requests to do some coding tutorials but um we'll see we'll see how that goes but uh anyhow thanks again um feel free in the comments to uh you know let me know what you thought of the the live stream um if it's the type of thing you'd want to do again sometime uh hit me up on twitter at johnnygizmo and um [Music] and i think that's it so goodnight everyone um uh you
Info
Channel: Johnny Matthews
Views: 431
Rating: undefined out of 5
Keywords:
Id: N1p5gnirZ78
Channel Id: undefined
Length: 90min 51sec (5451 seconds)
Published: Mon Dec 13 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.