Geometry Nodes Fields: Explained!

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hola community welcome to the first video from the blender studio in 2021 this one is for fields what is fields why why are fields jump tunnels fields yes uh this is something entirely new that's come to blender 3.0 that took the first ideas we had for jump to nodes and change it upside down and made it more complex a bit more flexible a bit more complicated in some ways but hopefully overall it works better and it's easier for people to learn how to use and that's what we're here for that's what we're here for so we wrote a blog post uh some last month actually last month jack was here jack luke and he was working with hans goody on a prototype for this concept of fields before we had what we're calling uh pure data flow centric approach which you have the geometry and every node will just operate into the geometry and then with the fields that is that some nodes can operate into the into the geometry let's call them jump to nodes while other nodes are just passing along functions to be then processed and evaluated in those other nodes and this changes a lot to this change is how we read old files so we expect people to have to adapt the new system yes and that's what we're gonna do today yeah okay so let's see i downloaded the latest blender right if i just download it from the billboard and i have it already and i'm gonna download a file from simon thomas that it's also available for um for download in the geometry nodes page it's one of the tests files for the first iteration right for scattering and this was the first test file we officially published so that's why it's a nice example it's simple to the point yes so first thing okay i i know nothing about this i see that it's actually working in a way there is some scattering happening but in the node editor i see a bunch of warnings not only the node editor if you go to the modifier you should see it there as well no tree legacy no it has legacy node if you mouse over the warning should also tell you when you should start getting concerned about it so basically the legacy nodes will be removed at some point before blending for in two years from now okay so before two years this will be gone what how do i know which ones are legacy is there a list or i can or or just gonna show the warning basically every one of the old ones so the legacy ones they're gonna show the warning and if you try to add a new node it's simply going to only gives you the option to add the new nodes and non-legacy ones okay so i can see the attribute list is pretty much empty compared to what it used to be that's the uh good question pablo that's the big change we have uh when it comes to pipeline to workflow with the old system you'll have every node referring to on attribute in the node itself so in this example you can see the scale is an attribute there the pebbles large in the point distributor is an attribute and with the field system and and back then we needed a specific attribute nodes to operate on those so in this case you're using the attribute random node to populate a attribute with some random values so in this case i'm taking the vertex group and bevels large or l and then randomizing the scale and the rotation how can i do this in the new system how can i convert this it's not automatic right it's not automatic yet okay when you say that we might remove those before 4.0 that if at some point someone from the community can act help us with a backward compatibility some do versioning code you can even remove them automatically right now i have to do it manually though okay so teach me how to do it first step first up so the the first thing you need to to be able to do is to have the attribute you want to use as a mask so in this case the pebble large exposed outside the modifier okay so the easiest way to do it i would say start adding the point then you distribute points interface not so the new point to distribute node okay so this is a point distribute i don't need to replace it with the new one so i can just search for this tribute and it's called distribute points on faces it even change name yeah we took this as an opportunity to make the name a bit more accurate and as you can see the parameters change a little bit as well uh this you're looking to the random option if you go back to the poison disk mode uh even that you can see you know now i have the selection as a new option and most of the nodes almost all of the selection of all of the geometry nodes will be able to support selection into the future because any operation that you're doing that the geometry can easily be done in a subset of the geometry wow so it's something else you can limit it and this is like a well why does it look different wow what is what is with all these shapes so many questions uh let's start with the shape one simple we have three shapes that you see there you see they have the circle one which represent data a data is something that can be inspected so for instance if you connect the the input geometry into that node and then you mouse over the points we get exactly oh you need to connect this to the make sense to the to the end let's see to the end i'll just connect it instead if you inspect the points it's gonna tell you exactly what is there that there is the data that's been passed along the noodle same things for normals and rotation oh you're not using it so it's not being computed yet but performance i guess for performance yeah uh it's of course it's also the same data um you can inspect in the spreadsheet editor if you connect this geometry to the reviewer leave your node so i don't have to do it i wanna see it okay i see there is 432 that is correct okay now what now the other the other shape you have um is a triangle those are fields maybe it's easier to explain in by connecting it to something by connecting it to something okay so what can i do first i have the distribute points and then i need to instance this i guess i need to instant there i could for instance for instance for instance uh the easiest way to see fields maybe really maybe later in this example i think we're gonna have a few fields which really work with the new system yeah but fields basically if you connect the normal to a the rotation to a node that to the math node to a math vector vector math okay so i can connect this yep and then you connect this vector to the usually i'll put maybe it'd be easier if you just put to the point the instance on points already yeah you can see that okay and then i connect to the rotation and i pass on the points do we get to see the viewport there yes we're looking at it yes send the viewport yeah now we're not instancing anything yet that's the other new thing about this node so before we have the point interest node that you could pick whether you want to instance an object the collection or these are the two this is comparing the old one so you could only choose collection geometry or object geometry is not even new for people that were on 2.93 oh yeah that is interesting by now which is fantastic so we can basically instance any geometry uh so for instance create a cube node so geometry primitives cube yeah and then connect the geometry to the instance oh just like that yep and you should be able to see then maybe scale them down a little bit i was going to even to to scale on the instance but that's good ah just kidding no no i i'm a pro already but now the rotation for instance you can try to um to change you can just add it's gonna something's gonna happen yeah yeah it's adding to the x right to the x rotation or z rotation in this case you can just think okay just the normals are being passed through but first if you try to mouse over the diamond socket it doesn't really evaluate yet so it still doesn't know what's its value is only going to know the value when it gets all the way to the node that's using it to the rotation but basically it says it's depending on something else depending on the normal interesting yeah this name might change this these two tips gonna get yeah read down a little bit i'm actually i'm getting the normal instead of that there you go there we go um what else i can explain even there's something interesting already if you know if you go and change um let's say because that's something i'm going to use in this example let's say you want to have the scale bit randomized yeah before you have to use the attribute randomizer yeah now i can just go to the with this thing for example yeah conditions do shift a and go to random it's an input random i believe no random is i forgot my 3d so just type it random value random value now if you just connect uh this to the scale to the scale i guess i need to be a vector right you don't have to if it has a float simply going to be using the same value for all of them so if you want a uniform scale that's what you do as you can see you can play with the range however right now if you change the amount of bubbles you're distributing so if you change the density maximum or distance minimum you see there's a lot of popping in and out yeah that's because we are not using the so the stable id field we have there that's a bit of a new concept stabilize this guy yeah so if you just connect the stable id to the random value to the random value to the random value node in the id input yeah because by default and that's the something about fields that work the same way for uh shader nodes basically if there's nothing connected it has always a fallback yeah in this case the same we have a uv of the fallback to a lot of the vector input in shaders in this case basically the fallback is the id itself the the thing we see in the spreadsheet editor but in this case we want something else which is called a stable id so each point has its own id that i can use for anything cover coloring for anything it's a it's an attribute right i can even mouse over and get the value so it's table id anonymous attribute anonymous means that it you i didn't name it manually right it means you didn't name it automatic behind the scenes it also means it doesn't show up in the spreadsheet editor because it does not a name per se okay so this is see did you see how stable it is now yeah well actually i was just changing this value and it it doesn't uh yeah it doesn't jump anymore if i mute this thing ctrl ctrl out and it's something that even simuls proposing if you could find a way to have the stable ideas do they default for those yeah but has still been discussed yeah it sounds super nice so we saw well and the but the interesting thing about fields is that let's say you have another inches on points node connected to the same points let me move an entire thing here so let's say we have what sorry another instance on point yeah and then you connect you know maybe create a different set of points to be used different set of points yeah just duplicate this node and just change its parameters to something else it doesn't matter change the seed as well just so it's more random more random more random yeah um and i can just join this oh yes do you have the wrangler enabled no i string join spoiler alert that's something new that also is incoming um i didn't have the the wrangler add-on enabled so okay i have the points i need to instance can i instance the same queue or you can instance uh something else just so we can tell them apart so the the sphere the ico sphere well i have a bunch of objects i could oh there you go and then i can make this smaller but now you can also if you connect the random value there the random value this one yeah so i can even connect from the id let's ignore the stable id for now so if you connect the random value there in the scale okay that's a a big scale oh because you need to change the radius here ah sorry yeah so this way that's the that's when the sourcing fields are something different than the data flow got the same field is connected to both nodes and even though they have a different number of elements of basically of points you're instancing they can still work any node okay for this geometry i have a hundred points so i'm going to create 100 random values oh for this order i have 10 points and create only 10 random values it just knows somehow yeah and that's also why you see then as uh represented differently um in the node editor basically if you see the dashed lines those are those are basically callbacks once you get to this node it goes all the way to the beginning and then gonna yeah i was wondering so this this means um fields the same as the as this shape yes yeah the other interesting you can do if you had a math node between the random value and the in the one of the instance points you can just multiply the mafia or you just add or multiply yeah anything basically and this is gonna be something that's gonna be quite useful i can show quickly because if we forget an attribute that someone painted can just go and treat and multiply this operate on that and you connect to the density to distribution factor this could be like a weight map yes and you can use these in different ways so it's like shading almost right it's very similar to shading the difference that shading usually has the same context inside the whole node three or here might have different geometries and one of the geometry might have a field the other one might not have it um i think being interested maybe try to start to do start playing around and start to convert this thing yeah just to do the basic distribution is maybe maybe we can just remove the the second the second one the second one and the queue and instead of the cube let's you remove the add over there as well geopath sorry remove the add one here yes and uh it's geo pebble sorry i can do this is that still a little fancy yes you can drag and drop collect instance i have some pedals if you want a similar result to what you have can just copy the values so this is minimum was .02 i think the minimum distance zero two yeah let's let's do it perfect the minimum yeah the maximum though is the thing that's using in this case was multiplying the whatever the value from the modifier i can just bring that right you can just bring oh and now i need to apply the mask i would apply it as a factor it's a factor so if you just connect the factor as you can see that's the third shape we haven't talked yet so we talked about the circle we talked about the diamond yeah this is the shape that might change there uh there's a design to do something that's maybe more intelligible what does it mean but that means it is a input that can receive either a field or a single attribute a single value so a this or a this is the margin okay so as a comparison the distance minimum is one minimum distance to the entire point distribution uh node yeah same goes for the seed but the density factor can be different for different for the different parts of the geometry so if you just connect this to the outside to the group input i can expose it you mean here yeah give it a nice name give it a nice name such as large pebble map or map mask map by default when you expose those at those fields outside it get mapped as a single value yeah but you can also if you click on the icon for the spreadsheet you just can use instead a vertex group oh an attribute so i can this was a large there you go nice so this is a toggle between using a single value or whatever attribute mask vertex color anything yes and something you can do that is was not possible before you can just try to just add a multiply similar to what we just did right add a multiply but in the density factor so i can duplicate duplicate this here and you can just play with the scale a little bit if you want to tweak series oh so i'm multiplying the vertex group super powerful if you want to do one-on-one with the old five we need to remove that but can you call it ramp you can do color do we have color ramp already don't remember yes uh yeah i think we have color ramp yeah that's pretty neat oh wow that's super cool yes nice nice and this is a function you can see here that's so good and if i could use this for again for a different part of a different node that had a different resolution uh something that you don't even need to think about is what is the domain so we basically took a mask which was a vertex group so it's stored in every vertex corner yeah and we're ready and we're passing to a node that is expecting the data in you don't see here but maybe could even make that more visible but just expecting the data in phase that's why the name of the node is distribute points on face yeah so it's automatically extrapolating or interpolating from this column from face corners to the face themselves but the same attribute could apply to another node that require edges and would just work automatically that's one of the strengths of the field system so maybe remove this the well can leave their color ramp whatever uh you instance may want to randomize a little bit of rotation how about that yes now let's free to try to do it myself yeah randomize the rotation well i can use the random value right random value by the way we're on youtube and you're making me do things by myself okay so i want to randomize um the rotation and um but actually you can just be afloat right it will convert you should convert so there you go um for rotation what we're doing before at least was going from minus p to plus p yeah using 10 decimals you don't even need to connect the original rotation as an input not even i just ah just enlarge it says nose and it's going to be random she says no that is a rotation attribute yes and you're not you're not multiplying the rotation you're just replacing it yeah so it's also so i'll say from minus pi to pi minus pi 2 pi and remember the the thing about being making it stable so once again if you change the i would even try if you change the large pebbles in the modifier the this yes it jumps jumps a lot so i want to pass this guy over here uh to the random value at least to here to the random i think that's all oh there you go that's fine we actually reconnected the large babble we didn't even look at the i know we did look at the result we saw the color ramp let's see and uh the original file we're doing is something similar for scale which is scale yeah which basically is the so i can just basically do this get the same for scale and this i can use a float and this game is a float yes and we're doing front point i can check down there don't remember so uh scale is point two five to fifty to six hundred six hundred there you go and scale there we go there we go super neat and that's pretty much the i got the first pebble the other ones are just a bit different to be interesting you can try to do but this is the same it's a copy paste this is the same the method is different so if you maybe open the file which we already said and then up okay but yeah i at a glance is the pawn distributed attribute randomized all three of the difference that one's using a pulse on disk that will using the random okay and for the random one it's pretty nice because you can just multiply the input mask with the factor yeah and you don't need two parameters as we had before because before we had the density max and the density attribute has two separate parameters yeah but now if you go to then you should just duplicate this node and make a this whole thing i guess i committed something else well this one i don't need um wait for and then just just to show the random the options now that when you change the random points on face i need to get this guy here and to get this guy to join it and if i need to use a gel pebble it's fine it's going to be a different pebble but that's okay yeah no it says i think it's all the same peppermint no no it's the paper okay you can do perilous four yes and the random number this side is much bigger i think easier but this is fine i'd like to if you look if you change the the method of distribution from pause on these two to random now we can only have the density we no longer have a density mask maximum and the attribute mask yeah so how do we do first you want to be able to get the the mask on the outside yeah so i'm going to start here this guy density outside right and i'm going to name it as what is this that's the medium pebble mask all right and you change it attribute and this guy once there you go okay is it working already probably is we can't really hide the big one no one cares about them i can just basically uh yeah commute to the connection this yeah that is here like if i just see this yeah yeah no no it's totally there uh the thing is oh for it's going to be terrible okay that helps um the thing is the densities was way larger before because before we are taking the number outside yeah and then multiply so basically if you're not what you want to do is to multiply the mass we just brought in with the the factor that was exposed times 100 which is so on this mask or 100 yeah before one thing i recommend is to connect everything before connecting there otherwise the computer might hang it happen to me it's terrible oh but that has to do with uh with me not being wise enough to do it one step at a time yes and these you want multiply the mask by the value that is outside but the parallels here so now technically if you change the value there you see already but it's very tiny the other thing we do is multiply that number by hundred this guy by a hundred that's we're going to be careful because okay and this will just know okay let's do 23. well there you go yeah it's fine i just connected the thing hundred by 100 by that was too much there you go and of course if you change the scale to the what you had then you have the yeah let's go there you go then have both pebbles and i'm going to quick stuff here and then i need to there we already have a file that has all the three pebbles converted which is online um unavailable here i just downloaded it without you knowing there you go so this is the thing okay this looks more clean i made it i made a little bit of a mess you use the object info instance or you're hiding stuff i'm using ctrl h aggressively in this file h or double node options uh hidden sockets the sockets that are not used can i also multiply i also duplicated the group input a few times oh ah but just for readability yeah that's awesome so uh you mentioned that not all the notes are converted and i am making like you're telling so where can i find it well actually there is a link that is in the description on the list of notes that need to be imported over right yes this is this covers most of the nodes yeah the exceptions are for instance the texture before i had a texture attribute now this was one of the few parts of blender that was to use in the old texture base node based texture yeah and it is to me try to replace these two something uh similar to what they have in e and cycles which is a dedicated uh we have a dedicated cloud sectional dedicated image texture node for each texture so it will be like chaining basically at some point just actually let's just merge merged at least for 3.0 first to have the image texture node wow which is like sample like it would be the old attribute sample texture yes i'll be a way to replace that for the non-built-in textures okay these are the remove notes quite a lot so much work and uh this is not necessarily any change is there an estimated time when this is gonna be available there is about you know videos are timeless so keep checking master keep checking master download it and but of course 3.0 is going to happen if i don't have it all if you're using 3.0 you're somewhere from the time in the future don't even bother okay so people download here the builderblender.org get the latest 3.0 alpha geometry notes uh this is this file is updated by the time of uh this video oh it's already updated it's just yeah but not all of them yeah okay this one so if you want to use it as a reference but it should be pretty straightforward and also on youtube people are making videos everywhere and if you see if you're doing some nice art of these use the jump to note hashtag bt3 hashtag yes because for 3.0 you want to expand we might not convert those simple files ourselves yeah maybe the original contributors can do that but also looking for new sample files there's so many nice ones already people using fields for some mixed doctor strange effects and to i know it's already i'm already annulated with the results awesome okay well uh thanks for the explanation thanks for tuning in i think we are going to play with this a lot it's a whole new whole new world for geometry announcement for blender itself so and i'm very happy like in behalf of the team and everyone that contributed to that it's just so nice to see people using it and giving feedback uh just doing real production art commercials tv ads already we've jumped to nodes and now trying with fields yes if this is already in master so if something if something doesn't work please report it that's all thank you and bye
Info
Channel: Blender
Views: 14,162
Rating: 4.96 out of 5
Keywords: blender, b3d, blender 3d, 2.8, 2.80, blender 2.8, blender foundation, Blender 2.9, Blender 2.90, tutorial, training, free, open source, animation, grease pencil, eevee, 3d, 2d
Id: Yci5ouEmnLI
Channel Id: undefined
Length: 29min 57sec (1797 seconds)
Published: Thu Sep 30 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.