7045 Geometry Nodes in One Tree

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] [Music] just before we get into the time lapse here i wanted to take you on a little tour of the scene this file is available you can find a link to it down below it will be a link to the patreon which is public and then you can find a link right at the bottom of that post where you can download this file you will want blender 3.1 alpha there's a few nodes in here like uh some booleans and things so a couple of things like the watering can and the chef's hat will not show up in 3.0 as well as a couple of other things like the bottle caps so just to be aware of you want 3.1 i wanted to make this video because there's a few little easter eggs in here that i think are worth picking up and you probably won't see them necessarily in the time lapse so when you find the file you'll actually find it with the reflector turned on this is a separate object you can turn it off in the outliner all this does is it bounces light back inside so uh it doesn't show in rendered view but it's just there so if you do want to turn it off let's have a look in the solid shading mode then you can do all right let's start the bottom there's a lot of fun stuff in here for example we have the pine cone which is a sort of christmas tree mouth scale christmas tree and if you look at the nodes for this this is uh it's all generated procedurally all of the uh it's called the scale this section of the pinecone you can find this is basically a a box with some subdivisions which is modified with a float curve and then this is just on the filot axis so that's fun and then there's some fun stuff to get the actual tinsel itself using a spiral and we're taking individual segments of that curve modifying the bezier handles to get the droop and then just using that to instance on a uh a star it's actually a star node this so there we go we have some symbols that's all pretty standard stuff although a little bit of math which i might find interesting how to get the index offsetting we do of course have some easter egg suzanne's in here as well these are our acorns and uh i'll show you a few more suzannes as well in a moment a lot of stuff is made of matches and i know there's a bit of a mismatch when it comes to scale that was just kind of part of building a scene in this way something else you might want to have a look at is actually how we made the salted joints on the flue pipe because this was taking elements from one object separating them off rescaling them and then creating a new mesh from those elements blackberries really simple to do just a little cone object subdivided and then instance your ico spheres on them and if you use plus on disk distribution then you can set a small offset and if you turn the density out really really high then you get this really nice packing look now the mushrooms are our second use of suzanne this actually works really well really surprisingly well as a mushroom and uh you can have a look at how we've got that mushroom i made sure one of the suzanne uses that you can kind of learn between the original susan and the modified one a few things down here i want to mention as well the batteries these have a node version of the node vendor logo this is made by nugget thanks to alex for giving me that node group so thanks tim and then of course we have the cable coming across the front this is one of the elements that i would advise you to if you were making a scene like this you would have a normal spline right a bezier spline something like that and that would be art directable because you would have handles and then you could still modify it through geometry nodes and give it this kind of uh the shape and the solidity but the original mesh and the direction and the positioning you could still do all by hand so the uh the postage stamps that was actually really interesting process and i recommend you have a look back through the streams to find this these are three-dimensional susans it's the same original susan model you can see where we intersect there it's another suzanne on front and the way that we did that actually it was by capturing her normals before we squashed her so that's how we're able to get all of this nice woodcut look and the screen tone all of that is done based on the original normals before squashing so that's a really exciting process i want to get into maybe do some tutorials on in the future moving up through here we have a bunch of fairy lights of course that's one of the main features of the scene and uh yeah again you'll see how i put them together we have planes where we have a little bit of art direction and we instance points on them and then generate this spline through them all and we do of course have a little bit of intersection which you will be able to find quite easily but for general use i think this actually works really well it's much too complex of a shape for me to come in here and recommend you to make this you know manually but generating points on specific places and perhaps manually positioning the planes on which you create those points that might be a good process for you to work with continuing up we have uh a year in provoloney and then on here we have a little fishtank a little spam tin or sardine tin or something with a spam key and this is full of again little wires that we've cropped inside the actual tin so you can see that there they'll sort of cut off on the edge and that's an interesting process as well it uses some of my tool kit nodes so do watch out for that when we're going through the time-lapse a little salt shaker lid with some copper strands and a popsicle stick with a pencil and some cribbage pegs at the top that's making up our little banjo for the mouse which is incidentally called feta feta and have a look at the chef's hat as well when you have a look at the file the chef's hat has some interesting stuff in here for how we created the pleats in the top and then also how we actually bent the name better i could have raycast it but it was so close to the same diameter as our circle that you'd have ended up with some nasty stretching on the sides where it was pushed back too far so what we did instead was we actually stretched it we used one of the notes from the toolkit which changes it from cylindrical to cartesian coordinates and using that we're able to get this really nice bend with complete control we have a little bit more phylotaxis up here with our rosemary strands nice and easy process and it's just a very simple bezier curve quadratic bezier i think that is skinned up here we have a node group which actually generates rubber bands and you can see me use it twice three times actually so once on the matchbox gesture draws once on the rosemary and you're also going to find it on this toothbrush over here so that's a special no grip which is basically projecting the rubber band back towards whatever it's around i have a little earring at the top this is very simple just instancing chain links on a curved line so it's just you know have a look at how we've done all these little things when you get to have a look in the file lots of stuff going on the actual watering can itself that's uh fairly simple actually we could really do with having a weld modifier or something like that as a node but you can see we have our e stuck on the front of it that's just a standard ray cast we have a little knot which is actually just two tauruses and then our cable our rope should i say goes up over this spool we've just filleted that corner and then back to a loop and that was actually really easy to make this kind of offset loops just with a very low resolution spiral the bubble bath on top of the cup the cup was very simple just a deformed sphere but the bubble bath is just very similar to how we did the blackberries just spheres instanced on top of a cone the legs of our mouse friend are fetter again really simple actually it's just a bezier spline that we've manipulated and essentially change the radius along its length it's a very simple process i recommend you check it out because it's a nice organic way of not quite sculpting but you know pretty close and lastly i want to show you the perfume bottle because the perfume bottle at the back here we have a pretty interesting shape and all of this is super procedural i'm using float curves to define one of these fluting patterns which we have a bit of a complex shape on but then we're also doing a little bit of math to make sure that it is repeated around i think i have this going around seven times but then we're also twisting it up the length so it's a nice easy process but it does just take a little bit of foresight to know how to do it so i hope this helps i hope it's going to be an interesting file for you to have a look at i hope you learn a lot from the file there is a lot of nodes going in here just over 7 000 so lots of you to get your teeth into i hope you enjoy the time lapse hope you enjoy seeing the process be put together a huge thank you to everybody who jumped in the streams with me while i was making this it was really good to see people on the hangout for a little while each day and i think we put in around about 35 36 hours in total over the six sessions that we did and there were so many ideas in this scene that i definitely couldn't have come up with myself so credits to nugget for the timber material as well as the november logo credits to sharon from just 3d things for making the t-tag texture really lovely little process making an sdf on there and a little bit marbled credits to the chat for all of the cheese puns for the books we have waiting for gowda we have a year in provolone and we also have the cheddar in the rye bread and of course our mouse is called feta after much discourse the process for making a big scene like this really is pretty much the same as making a big thing traditionally we just go about making a whole bunch of assets i mean if you were working traditionally you'd probably have an asset library that you would import from but in our case because we're doing everything from scratch with nodes in a single node tree we needed to make a bunch of assets to begin my process was to start with the back wall so that i could get a little bit of a sense of the uh you know the scale and how the scene was going to go so i used a pretty simple process of just arraying a bunch of slats to get this kind of laven plaster look and then i had a really high resolution grid behind it and i used the proximity from the stats to control where i had displacement so i was able to displace my plaster through the gaps in between and that just gave a really nice sort of a more realistic more natural look of plaster pushed through lads in the wall now rather than working directly into the scene you know i didn't build the set directly i did go in and actually make a whole bunch of assets so you'll see me doing that throughout the first part this video is just making us it's just working on my key assets things like the uh the main fairy lights we had the stove itself with like the flue pipe we had the stool we had a a bunch of slightly smaller assets kind of mid-level assets i made placeholders for books to begin with before i actually made the book assets but they were fine i made the books more or less the same scale we also made the pine cone for the christmas tree and we made the kitchen dresser the bed the cup the perfume bottle stuff like that right the big stuff the big moves and then we actually built the scene itself so the scene is super simple we have a floor which actually that one is less simple than you might think so do if you get the file check out the floor it's sort of made of these boards which are all the same but then we've gone in and we've done a little bit of like post instance work so we've realized the instances with a bunch of additional attributes on them a little bit of math to do that a little bit of work to do that if you have the toolkit that is just the copy on points node that's all i did it's just all wrapped up in a single note group so then after the instances get realized and they they get passed out you have access to things like the original position of the points and the original rotation stuff like this as well as the index and you can use the index to drive the id not the seed but the id so that's quite important the id if you have a flat id across a whole bunch of points they're going to get the same random value and this basically means that we can use random values to control the rotation center the rotation axis or the rotation angle of our of our mesh and because we're taking our rotation center actually from the original positions it means that we have all of our boards bending around their own centers by a random amount in a random direction so it's a little bit of maths but it allows you to get this really nice quite you know easy way of building up a whole bunch of variation amongst similar objects you can find the exact same process happening on the stamps actually on the wall so all of these were instanced but then i was doing that through the copy on points note that it was really easy for me to then bend them sort of arbitrarily now because the stamps were actually made of a whole bunch of different sections we had the the crown and because they were 3d right they weren't 2d images so we had the crown with all of its parts and we had the susan head and we had this grid for the main square and then we also had that sort of serrated outer border that was made with some curves so there's a lot going on there and because the way for us to actually do all of our bending is to realize them they all get squished into the same thing so in the shader the object info random socket that will just give a flat value because they're all the same sort of realized geometry and if you use the geometry random per island socket then you're going to come into a different issue is that every single one of those individual bits of geometry has a different seed so for me to get a random color per stamp rather than you know per joules on the hat or something like that so obviously postage stamps will come in different colors based on different you know different prices so to do that i was actually able to take the index passed out from the copy on points node and take that across to my group output and then that is my stamp index so i was just able to use that stamp index to actually control the different colors of different stamps now weirdly when you pass out a random value through the group output as an output attribute into a shader and use a white noise texture on it the white noise texture kind of glitches i'm not really sure i'm not sure if it's a bug no if it's a sort of known limitation at the moment but essentially we were able to quite quickly get the bent floorboards and the bent stamps very similar process just a few nodes and a few vector rotate notes and the walls are very simple and the top as well to get the bevel i wanted to make sure that i had a quadrilateral which i filleted and i just extruded it along a a line so grab your line as your path and then your quadrilateral as the profile curve and then just use that on a curve to mesh so that's all fairly straightforward to actually put together your main scene there is a little bit of passing out custom uvs but you've seen me do that before in different videos but once the scene actually starts coming together you know you put in the big things so i think i started with the dresser to get a little bit of a sense of scale and then it was the stove itself and you just build these things up you know put in the floors putting the ladder because we had the crochet hook with the matches that was the base ladder and then we had a comb for the top ladder and we were just using placeholders for the books at the beginning but essentially those platforms went in and because the platforms went in we could put in the brackets as well and these were all stuff that was manually positioned then there was a certain amount of needing to do the smaller stuff right that was a little bit more procedural so granted a lot of it was very hand positioned and that's i think why this scene runs so quickly because we don't actually have a huge amount of geometry we kind of have a lot of one-offs and that being said this is not what geometry nodes is good for like i know i'm doing and i'm pushing geometry knows really hard to do these things but it's really not designed for this sort of work doing individual one-off assets which have a very specific outcome is not what proceduralism is good for in that case you know you would be so much faster doing it with traditional modeling a lot of people came into the streams and was like why aren't you doing this traditionally and to be fair it's just because it was november there are so many better processes that are much more suited to that kind of workflow out there and blender does them excellently for me this is just a case of trying to stretch myself trying to see what i could do with the nodes and ultimately trying to come up with a nice picture at the end of it now i'm pretty happy with how it came out actually i'm really i'm really proud of how it came out and there's a lot of stuff which i learned in here and i think some of the cool ones are workflow advice now i actually didn't learn too much about what i wanted from geometry nodes i was more kind of focused on using the tools rather than being particularly critical there were a few things that held me back a little bit although we did have an add-on actually written for us during the stream which was amazing and that was the copy cursor location i'd done so basically i could just right click in a vector and use the 3d cursor location so that really spun me up in a lot of times things like positioning the ends of beziers where i could just quickly right click in the 3d viewport there is a control alt c or control alt v operator which allows you to copy an entire vector but the issue is that the 3d cursor vector and whatever vector you're copying into may not be actually the same kind of vector you know we have ones which end in degrees one to end in meters and we just also have like the numerical ones if your array type does not match that control c control v or sorry control alt c ctrl alt v will not actually work so the add-on that was made by joshua who makes serpens amazing that he was able to do that and also there is a patch uh by eric that is able to do this i think there is some debate about whether or not it's worth adding but i think for geometry knows workflows it probably would be another thing that i'd really like to see added is 3d viewport gizmos oh the amount of just tweaking things and because of the scale i was working to as well that was a big mistake working to real scale for a mouse house very stupid because i was moving stuff by individual millimeters often and even if you hold shift while you're dragging something it's only going to be it's going to be snapping to it centimeters which is like a small unit if you change your scene scale it doesn't change the rate that you will snap to stuff it's still going to be snapping two centimeters even if your outputs are actually reading millimeters so it's it's not really useful that i suppose if i did need it to be real scale and realistically for this i probably didn't i could have done it 10 times or even 100 times the size and it would have probably made it a lot easier for me to actually use the inputs i think anybody who watched the live streams will testify that i spent probably several hours overall just typing in oh is this going to be six millimeters or seven millimeters or oh wait no it's gonna be six and a half because i was trying to get things aligned and this brings me on to another point using multiple different objects would have actually allowed me to use 3d viewport control right to be able to translate rotate scale things in the 3d viewport now this was a conscious decision i know i've talked about this one before especially with the flower scene the splash screen but in this one it actually became a little bit more of a problem because the scene is huge there's so many assets going on and almost every single one needed manually positioning so combine the fact that the viewport while the 3d viewport was fast the node viewport was not fast we have just over 7000 nodes by the end and it started to get a little bit choppy around sort of 2 000 to 3 000 really so you can imagine you know we're running at sort of 15 16 fps the sliders don't like updating because the whole node tree has to update and you've got you know potentially three four five seconds of update time going up break up your scenes that would be my main advice i've never actually seen any other people working in this kind of um ridiculous paradigm of putting everything in the same notary everyone else does seem to know to not do this so maybe i'm preaching to the choir but breaking up your note trees is going to make your life a whole lot easier just keep individual assets as individual objects you won't get such a pretty node screenshot at the end of it but you will also enjoy making your scene a lot more and it will be faster and it will be much more pleasurable for you to do i also want to touch on the sort of frames versus groups thing which comes up quite a lot especially when people see these big no trees it's like oh why didn't you just put each object into a group and for me grouping stuff is not an answer groups are great for tools groups are amazing for wrapping stuff that has a specific function and you might say like oh well you know one of these things makes a specific things and it only has one output so surely it's got a very you know it's got a very narrow period of time that you want to use it and it also doesn't need to have all of its data exposed you could just put that into a group and save yourself some time true you are right but sometimes i just want to copy a bunch of notes or if you do have a look at the node tree if you find that either on twitter or patreon or blender artist.org you'll see the node tree and you'll see that there's a whole bunch of noodles obviously which connect to the main join geometries there are two two main ones at the start and finish and then there's also a whole bunch of really long noodles that connect random parts of the tree and this is where data is talking to each other and i did not know when and where different data was going to talk to each other necessarily until i was building the scene and this is one of the great things about having frames where things are exposed is you can see stuff you can copy either data literally like copying the numbers directly or copying a whole bunch of nodes which do a process that you want to do again or in a lot of these cases actually grabbing data from a node output so this might be grabbing a whole bunch of different parts of meshes to put into a join geometry to stick through a geometry proximity or a raycast something like that where you're actually wanting to take data to control another asset now of course this is just a workflow thing and i think it's less relevant when you are also splitting up your node tree right because you're gonna have an object which does a thing rather than in this case an object which does like 50 things so i think generally speaking you can get away with having these sort of one level trees and just use your tools as groups so if you use the toolkit i know i go on about it a lot but i literally would not have been able to do this notary without it and it really speeds up my workflow and everybody who i know uses it also finds it really speeds up their workflow so i do recommend it and not just in like a by my product way but like uh this is actually useful and it pretty much doubles the amount of things that you can do maybe even more because a lot of my tools are much more high level so it's much more kind of artist centric tools in the toolkit but if you are making your own tools which i encourage you to do then you should have those tools which do a thing they can be a group because then you can reuse them it's much easier but generally when you want to be accessing the data accessing different parts of a mesh sticking stuff together maybe using stuff elsewhere it's just nice to have it as one level you have access to all of those things and you can see it that's one of the big things for me being able to see visualize the data i kind of mentioned this in the introduction when we were having a look at the scene itself but art direction is difficult with pure proceduralism and somebody mentioned this to me on twitter as well saying isn't it more difficult to achieve results with a set composition when you're working procedurally because you can't just position something easily you can't position things easily and if you have a whole bunch of different things which are randomly distributed that's random right you can't define it unless you're just clicking through seed values until you find something you like but that's more about luck really than artistry and then you start getting to the whole philosophical discussion about if you're making a system that generates the artwork are you the artist or you just making the system and who's the artist and i see this one quite a lot with like machine learning and ai and stuff it's like who's actually the author who's creating the artwork just because you created a situation in which an artwork could arise doesn't necessarily make you an artist and that i think is where geometry notes is gonna really come in helpful for a lot of people because if you build systems intelligently if you build in the art directorable control whether that is using a curve to control something or whether it is using a mesh to control something let me give you some examples right the wires across the front of the the floor i had to position the end points and the handles and then after that i was randomizing the position changing the spline type to a bezier changing the handle types to free so that i would get that nice curvature and it was all just a little bit difficult however 90 of that process i would still do with geometry nodes actually taking a curve and randomizing the position making it smooth um making sure that it can't go below a certain level with its points so you can set limits constrain its randomization to within a certain region just like stuff in real life is right you know it sits on top of the table rather than going through it and then also taking your curve and sort of skinning it putting a mesh on it whether that is just a circle or a custom profile like you'll see on the fairy lights they had like a a dual cable as well as the headphone cable that was a dual cable so all of that stuff i would still do with geometry nodes however i would exchange my meticulously positioning a bezier curve procedurally or you know in this case actually not procedurally do that with a real curve because then you still have all of this curve control in the 3d viewport that you can art direct that's the important thing and you see this as well with the fairy lights the position of the fairy lights is based on some dummy meshes i didn't just say scatter a bunch of points on the back wall the size walls and the bottom of the books what i did was i actually created specific surfaces i made these dummy grids that i could position now i was positioning these with geometry nodes rather than manually which was a pain but the thinking still applies right if you had a 3d mesh and maybe you do want to do it procedurally but maybe you want to integrate a little bit more manual control so that you can maybe override one of the procedural things and use a specific grid and it saved me from having to do a whole load of masking to make stuff on the right side of stuff because of course on the back wall there's all of the lads and plaster so there's all these different surfaces in different directions i specifically wanted stuff to stick on the you know the inside face of that wall much easier for me to do that just by putting a grid across the front of it instead and rather than needing to use geometry proximity to avoid putting points directly behind the books or stuff like that i can actually just not have a grid there i just use you know like several individual grids on the back wall several underneath the books and was able to instance my points on those grids directly so if this was done in a more useful workflow oriented way then you've got all of this art directable control where you can move these planes or these mesh objects and it's going to generate wires that fit a certain rule set around that just uh taking a sort of step back to something i mentioned earlier don't do as i do don't make everything procedurally that doesn't really need it if you can make your fairy light faster by hand by just you know adding a cylinder and then extruding it really quickly do that don't go and make it all with curves and maths and things like that because it's not there's no point you're not gaining anything by doing that for november a free pass because it's all about the flex but in general workflows don't do that i think a lot of people message me like proceduralism's cool but it seems really slow why are you doing it and it's like you don't you shouldn't use it all the time i use it all the time because i'm showing people what it can do and i'm showing people how it can fit in with their workflows and things like that but no generally if i'm doing client work i'm not using proceduralism all the time i'm using it for specific things where it's actually going to you know help me in those cases it is faster to either do it procedurally in the first case or if it's not faster to do it first with geometry nodes or procedurally in general then the only reason i would decide to do it is if i thought that there may be revisions from the client in which case making changes to the scene that i need to have like precipitate down through all of these systems you know imagine if you positioned all of your cables really meticulously and it's beautiful and then your client comes back and they say oh wait actually i want a third book i want this to be a taller composition and instead of having two platform books i want three but suddenly you're in a bit of hot water because you're going to have to make all of your cables again position all of these curves position all of these extra things so if you have all of your cables on you know dummy meshes and things like that rather than being manually positioned then you can just simply add another book which is fine now because you can just move your dummy meshes the cables are all going to update you have a rule set in place which is going to allow that change to precipitate through your project i think that's the important thing find where proceduralism fits in with a workflow it's not about the proceduralism is your workflow for most of us doing normal kind of more generalist work proceduralism picks up the slack it doesn't take the whole workflow i think a lot of people think that geometry nodes is like the future of blender and that's not true it's not going to change blender fundamentally it just adds another way for certain types of people certain types of artists to interact with the tools and sure it's going to expand what blender is able to do because it means that a lot of people kind of like me like tech artists technical directors they're going to be able to build tools and build workflows and help people you know engineer pipelines in blender in a broader sense but it's never going to take over from a very specific asset being made maybe through sculpting or general modeling whether that's hard surface or organic modelling it's not going to really take over from rigging or things like that and things may be automated to a certain degree by your td or your tech artist but it's not going to take you out of a job i think some people are worried that they're going to lose out on being able to use blender because they don't know notes and it's like you can still use blender because you're already using it now you know these tools that you're using they ain't going anywhere the only good thing about nodes is that it allows a different type of paradigm to exist within the software and that is incredible that is amazing and that is really empowering especially to people like me who are more sort of system orientated like that because it means that we can build things which are much larger than we may have had the either patience or vision to maybe do before take a scene like this i would never have had the patience to 3d model it not all of it for sure i mean it would have been certainly faster for me to have modelled 20 or 30 or 40 percent of this where i had specific assets and i could have just sat down on it in 10 minutes rather than an hour but a lot of this stuff positioning the wires positioning the floorboards and manipulating them positioning the stamps and manipulating them i couldn't have done that non procedurally i couldn't have just i couldn't have done that with a destructive workflow it wouldn't have worked for me i know some people have the patience to sculpt that kind of detail but that's just i wouldn't have done that so there are definitely some things that geometry knows it allows you to thrive in certain ways being able to generate large scattering systems or distributing systems or manipulating lots of different pieces of data at the same time but i would caution you against trying to do everything with geometry notes and i know whenever i say this in a video there's always people commenting like oh and it's just you doing this but i know that there's probably someone else as well watching my videos thinking i've got to do everything with notes and that is not the message that i want to share you it's all about finding a workflow that allows you to create the work that you want to make ultimately the reason i teach is because i want people to make better art and i want people to make art that they feel expresses themselves better that's the goal here it's not about trying to be evangelical about nodes or you know being just really rigorous about this workflow it's about expanding the potential of the individual artists you watch i really hope you'll find a little bit of utility in these notices do feel free i know there's a lot of toolkit notes in these files it's not the whole add-on of course and it's not the actual add-on part of it but if you do want to just pull the etk nodes out from these files do feel free i don't mind you doing that at all and if you find them useful consider buying the add-on because obviously you won't get updates if you're just pulling them out of the project files i had an absolute blast this november and i'm probably going to just carry on doing what i do i uh i can't really see myself stopping now it's over i imagine there's going to be a lot more streams on this channel because that was a really fun part of november and a whole load of projects have a look on the discord join the discord linked in the description because we're gonna have some some uh some fun projects coming up we're gonna have a game jam this month on the discord so definitely join in for that there's gonna be prizes and if you are interested in just generally proceduralism whether that is geometry notes surjack or shaders or maybe some other things i'm thinking of branching into unreal i am potentially going to touch on houdini but who knows pretty confident about unreal though i think that's going to be a fun time we may do some bigger projects with more softwares next year i kind of want to take this youtube thing a little bit more seriously push it a little bit further push myself a little bit further and uh yeah we'll see where it takes us hope you're all well hope you enjoyed the video and i'll see you next time [Music] [Music] you
Info
Channel: Erindale
Views: 6,448
Rating: undefined out of 5
Keywords: nodevember, nodevember2021, b3d, blender3d, geometrynodes, sverchok
Id: oRl7e8jCjU8
Channel Id: undefined
Length: 60min 2sec (3602 seconds)
Published: Thu Dec 02 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.