Ancient Ruins with Geometry Nodes - Studio Culture Livestream

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
but hopefully as long as you can hear me now that's all that matters we will not be using grassworld or botanic uh i'm gonna show you the assets that i'm using um so you can download them they're like free ones as well if people wanted to carry on and also i saw the question up above about whether this is going to be uploaded to youtube and it will be so uh don't worry if things are like going too quickly now or if you just want to like recap later it will be uploaded so this is the project that we'll be doing today uh i might add a couple of things just to like i don't know i had an idea about like going on 90 degrees like how would you do a wall at 90 degrees um which i think we can do with vertex groups so i might test that as well but essentially just this kind of like rear end wall idea and it's pretty procedural like this one as you can see it's just like one brick that gets repeated all over and then uh there's a little bit with an array modifier here for the arch but that's pretty easy to set up so let's jump out of this one and hop into this one i am recording that's good okay i'm trying to set up my workspace so that the uh the chat doesn't obscure anything so hopefully you guys can see the chat and the uh the camera right as well i can't remember which bit cool good stuff so uh to do this wall this actually is really simple with geometry nodes um we just need to begin with to get a break actually before we jump into it let's have a look at what's been going on with geometry nodes develop recently because there's a lot of stuff coming our way that's really cool so in uh i am on 2.93 yeah i basically don't use 2.92 when i'm generally working because it's so lacking in functions you know if i open it here 2.92 like the math nodes is it's got like four functions um so if you want to do anything then it's gonna really hold you back uh but it's cool that they added it for 2.92 and it is obviously it's stable um yeah like attribute math here has just the basic four arithmetic whereas the attribute math in here has everything that we're used to from shaders so that's useful also i saw um and this is one of the things i'll show you in a second actually on the vector math this right hand side any of these ones on the right hand side currently do not work so if you want like back to absolute or uh affect a floor or anything like this you don't actually have it at the moment oh yeah the object thing in the chat i'm not actually sure because i didn't write the chat overlay it's just like an obs thing so um sorry if somebody asks a question and i then i will like try and read it out with their name so that people can people get credited properly so in the dev log here so this is the developer.blender.org there's a few cool things so as of today's build the 13th of march um we have the attribute remove node which is super useful but it only currently takes a single attribute to remove right so if i was to i don't think you can remove built-in ones but if i was to do like an attribute fill just add one here all right so we have the a1 at the beginning of the spreadsheet and then if i was to like remove a with this next one you can see it gets removed from the timeline oh don't worry arjuna it's literally still the introduction we're not actually doing anything yet um so yeah the attribute remove node is getting buffed because it's going to get i can't say this with absolute certainty but i from the developer log it looks like it's going to be getting the multiple input socket which is great because if you make a tool which has like 10 or 20 attributes being used which are just kind of throwaway attributes you can now just plug all of those string nodes or you will be able to just plug the string nodes into the remove super useful uh attribute map range this one is also coming victor's been working on this one really hard so there's a that's the preview of that i think there is going to be an added result socket so it will like if you want to write to a different attribute you can do that um oh yeah the remaining attributes of the the vector vector math node that's what we just said uh the primitive mesh node so this one's really cool this one's going to be during this sprint which i believe is by the 19th it should finish so another week or so but we should be getting a load of primitive nodes for generating things like circles and planes so again that's gonna be amazing uh node switch you know there's this node for uh is viewport and everyone's like oh what does this do so this is gonna be able to be used to basically switch stuff uh so with the attribute switch you can have your boolean coming in which just says whether or not something's in the viewport or obviously you could just like switch this or use another thing like the attribute compare um so this is useful especially if you have well i'm yeah i'm thinking of using it for like viewport versus render instance counts because at the moment that is like a really big optimization issue that i have with geometry nodes versus particle systems because in the viewport at the moment we just have to use all of the instances all the time and a few other things attribute processor this one's still in the works but it's coming so this one should help us do maths to attributes without having to use attribute math nodes so actually having the noodle connections that's gonna be amazing uh the spreadsheet is getting a bit more love at the moment we just have like this super early version which we can't really do much with um got a few options but like the uh the columns are just ordered alphabetically oh the maximum function works does it hmm i was having issues with uh before i haven't tried for a few days so the last time i tested was maybe like three or four days ago and i don't think any of them were working at that point um oh yeah and there's also the new tree moss and leaves sample file so this has been updated again uh today i think so if you're playing around with the demo files to learn how the new tools work then definitely try out the new yeah try the demo files and also congratulations to rc12 and proud imagination and sakura for getting their food geometry nodes models into the demo files i think they're going to be in the 2.93 demos so that's great news well done to them um quite a lot of people jumping in now okay i'm going to drop a few more links into the chat here so these are things that i'm going to be using in today's uh today's model so like a fern and a flower and this aerial rock texture from taxi haven yes sketch fab uh these are i believe they're free with attribution yeah commercial you sell out so if you're watching this on youtube they will be in the description let me just copy these across and this one as well if you're downloading textures as well i used to have this really bad habit of just downloading everything is 8k and i've got so many i've got like literally hundreds of 8k textures and it's so much space on my hard drive but uh you just don't need them most of the time you can get away with 1k so it's like for this i would recommend that you use 1ko and also i will be using the basher node so if you want to grab that that is on [Music] gumroad this one so that this just means that we don't need to uv unwrap and we're not going to be able to use the unwrap because this is procedurally generated uh geometry so there's not any uvs for us to even work with yeah 8k is only useful if your pupils are maxed out absolutely i mean if you're like doing super close-ups of a specific hero asset then i can justify going to download an 8k texture but for the most for most of the time if you're like if you're posting social media it's going to be compressed to like 1k the whole render and then each asset is like 20 pixels across so there's just no point um yeah cool let's jump in a beard yeah i'm it's cause i was uh i was looking at purse beats and i was just jealous you know just jealous of his beard i felt like i needed to try and catch up cool so to begin with for this wall what we need is a brick and we're going to do this in the simplest way possible just going to grab a cube scale it down i'm trying to think of how big i actually want one of these bricks [Music] thinking maybe like 400 by 250 something like that 0.4 by 0.25 may even go a bit smaller than that what unit millimeters of course brick um yeah so any size brick is fine here it's just because we're gonna be re-meshing anyway and we're going to be making some of these different sizes and displacing them it's just sort of a vague approximation of a brick and also important control a rotation scale ooh i can turn on shortcut viewer that's probably going to help and i'll bring that up so there we go so make sure you apply transforms because when you instance this it's going to have its transforms reset otherwise um great and the next thing i'm gonna do so let me just rename this brick and i always keep a collection called hidden um this is essentially a recycling bin or just somewhere that you can drop stuff where it's like outside if you don't want to delete stuff or like there was actually a few uh 2.93 builds a couple of weeks ago where anytime i deleted anything it would crash so for times like those or if you just aren't sure if you want to delete something or if you just want to hide it have a collection called hidden and just keep it hidden all the time and then you won't run into trouble um so my brick is in there and now i'm going to create the thing that creates the wall so grab a plane scale it down to 0 on the y and then i'm going to press m and merge by distance so now i just have two vertices here and i'm going to add to this well we're going to rename it wall and then i'm going to name i'm going to create a new geometry nose tree here shift a point instance we're not distributing points we're just instancing our bricks directly on the vertices that we make so nice and simple just point instance and i want to select my brick object so now what i can do is i can manipulate these vertices to bring them in together like this just literally scaling them together in x and then i'm going to extrude up so e z and then i'm just moving this up a little bit so make sure that you do that in one move because now what we can do is shift r and have it repeat so i'm just doing that a few times just to make the wall um sort of around about two meters so that when we put a doorway in um we will delete some of these bricks as well but when we put in a doorway it's important that you have like enough headroom to have the space to do that in a sensible way and in wireframe view what i'm going to do is i'm just going to select every other edge like this and drag it sideways something like that so now the great thing is is i can just extrude this and i'll have like my zig zag bricks right and i can extrude it the right amount and then i can now just do shift r again so every time i press shift r we just get a whole new section of bricks now i appreciate that this is sort of destructive because technically we should be using like array modifiers but it also means that we can like come in here and just like delete a brick um which is really useful because we can make the wall look a little bit like aged um and also in the future we're going to be able to get stuff like the delete vertices nodes um so if you have like a noise texture you can basically delete nodes procedurally based on like a cutoff or like a clipping threshold on your noise texture so that's going to be like doubly as procedural could you try doing it with masking the alternative points using modulo you would be able to if we had an index yeah if we had like an index that's weird thing but i'm pretty sure we don't know there's currently no index on the uh pink floyd intensifies you are not just another brick in the world don't worry you are a unique individual creative cool so um can you not use vertex groups yet you can use vertex groups uh can we set up a vertex group but i don't think that we can because we don't have like a density attribute on this point instance node i don't think there's any way for us to cull points i might be wrong about that i don't think there's a way to do it yet because i i think when i was last trying to do this um i think it was hans goody said that we needed a because i was suggesting that we have a mask node like the mask modifier um which is in here which people seem to very rarely use but you can actually do some really cool stuff with it uh but he was saying that we would get a point like a vertex removed now to vertex delete and that would basically just solve that problem so a wall probably ought to be a little bit deeper single skin walls are just going to fall over so let's just extrude literally extrude it in the y-axis there i'm going to give it a little bit of space and we can throw in like some infill just a bit like manually later and then when we re-mesh it'll look a little bit more interesting so what happens if we want to have a wall at 90 degrees so if i was to just grab i shall grab the whole thing so a shift d i'm still in edit mode of course because we're um we're dealing with vertices we're not actually moving geometry at this point really but if i rotate this inside 90 degrees you can see that all of the bricks have remained in their alignment so what we need to do here is add a vertex group so i'm just going to press shift uh sorry control g to assign to a new vertex group and i'm going to put these ones on a new vertex group called side here we go so now what i can do is i can before my point instance i can rotate the vertices by 90 degrees and the way that we do this just the same as with shaders right if you have a mask like in this case our vertex group you can use that as the mix factor between doing something and not doing something so if i if i add an attribute mix and i add a vector to my rotation right so i'm putting my rotation as the in and the out attribute so that we're writing to it if i have my factor set to one and i rotate in the z axis by uh pi by two because we're going 90 degrees then you can see that we've rotated everything um based on this mix factor so now we just need to change the mix factor from float to attribute and now we can set this as side which doesn't seem to have come through so let's just make sure these are assigned there we go so for some reason my control g didn't actually assign those vertices but there we go so just uh in edit mode you can select your vertex group make sure you have a weight of one and click assign and now you can see that the ones which we assigned that group to are running in this direction and the ones that we didn't run in the 90 degrees so that's a nice easy way for us to set up different vertex groups this is going to be really annoying if it's only in object mode that it works so interesting i wonder if that's something about vertex groups not being available in edit mode so just while i'm editing i'm going to mute the mix note just so i can see what i'm doing and then i'm just going to position a couple of walls i'm doing this kind of haphazardly you can do it more intentionally if you want to and i'm going to grab this other one the front wall as well and just duplicate along so that we have enough space for a doorway doors are generally around about 800 mil wide so i would just give it like a meter something like that and now you can see that we have like a wall starting to come together so what do we do now well let's break it a little bit if we come into edit mode i'm just going to go into wireframe there select everything with a and then if i press f3 to bring up my search and then random selection you can see that we have a few options in here so i can deselect random verts now again this is a destructive thing as soon as we've deleted it they will be deleted properly does the beard make erin extra sexy well yes yes it does thank you for noticing do you know actually i've been some really kind comments on youtube recently so all of this flattery i don't know what to do with it okay so i've randomly deselected some of these nodes some of these not nodes some of these vertices and now i can just delete them so we have a little bit more of a haphazard wall and i want to kind of delete a few more things just to kind of bring it down a little bit so i'm going to go back into edit mode tab into tab into edit mode and in wireframe mode i'm going to press c to bring up my brush in here and i'm just going to start like adding some of these to my selection just to kind of bring the wall down a little bit and i'm going to do on some of these side ones as well but i might grab a whole section here something like this i think is going to be fine and then x to delete and there we go so you will find that you have some floating bricks which we can saw in a sec that's very easy to fix um but just for the most part what we're trying to do is just break the wall make it look worn down i'm going to come up here and i'm going to move these down a little bit so they're a little bit closer just so that we're not getting that space in between the bricks there and then i'm going to throw in some additional bricks so places like this where we have a floating one let me just mute that i can just come in and i'll be in sort of pseudo wireframe here and i can literally just extrude a brick out right just it's that simple if you want to add another brick just extrude a vert down and again i'm going to bring one across and there should probably be one over here just for continuity and this is definitely not going to stand up so let's uh let's add another one in here and in here extruding vertices and faces using geo nodes would be really nice it will be nice but what we need to have implemented for that is vertex selection modes because or like face selection and things like this because at the moment there's no way for us to actually say like i want this vert extruded over there so it will be amazing but uh it just needs a little bit more time to mature it's like so hard oh well i don't know i find it quite easy to be like oh if only but then i have no idea how hard it is actually to develop this stuff so i think i should probably i don't know i keep meaning to get into the development side but then it's just like i don't know it's scary just the idea of like doing the development and especially with blender they're super tight on on their standards and the way they comment stuff there's like a real way that you have to do it okay so i'm going to leave mine something like this for now just the main wall and uh so we will be needing indices yeah indices should come with the primitive nodes because there's really no way for us to process the primitives without having the indices so it should be it should be built in with that um this brick on its side here looks bad so i'm just deleting that and this one's clipping as well let's just delete that one cool so if we want more bricks what i'm going to do is i'm going to just add a new collection in here called extras and i'm going to duplicate my brick into the extras folder um where is it and what i'm going to do is i'm just going to literally put this brick around so let's rotate it 90 and make it longer so this is going to be like the one which goes deep into the like the doorway here and i'm just going to put it in a few positions literally just shift d shift r something like that uh i feel like doorways i always get confused on this so the doorway should actually have like the same height stones on each side which means i need to have a different alternating row of the bricks on the outside here so if i grab this come to edit mode with the wireframe oh my god when i do these streams i change my screen scaling to 150 so that you can like you can see everything but uh it makes my mouse really sensitive so that's a bit something to get used to okay so i was just doing that just so i can bring these in together i'm just gonna make it a little bit narrower somewhere around here just so we've got about a meters gap and then let's just grab gx set gx something like this so that's made a few of those and i want to also add some random bricks just like on the floor um i wonder if i should do like a a quick little physics thing with like rigid body so if i just add a plane make this a little bit bigger add a couple of cubes so there's one to be the wall and then just a few others so that we don't lose track of everything and then we want to mark these as passive there we go save the file thank you i i need to like set an alarm on my phone that does that just constantly like save the file every five minutes um so yeah the good thing about setting up rigid bodies from the object menu is that it will do it to every single one that you have selected um i also need to add passive to the floor rigid body add passive and then yeah i say like every stream hey there is better make sure i've saved and i'm just going to add a bunch of bricks just like this just so we've got something to drop how many locations if you change it on your pivot so that's a period on the alphanumeric side of the keyboard then i can change it to only locations and then i can scale stuff without changing the size of the actual thing just remember to go back to your just turn that off if you want to scale stuff again and i'm pressing r twice quite a lot just to like get the trackball rotation right so if i just grab one of my bricks maybe restart actually maybe i should restart because windows was giving me like a a thing it was saying like oh your version of windows 10 is about to reach end of life i was like really i thought that was not supposed to happen um okay let me just add active to each of these bricks grab them like this object and then rigid body add active and then we can just drop them there we go they should probably spread out a little bit more so i'm just going to move some of these around like this give them a little bit of space to fall away nice looks like pears let me just uh i will sort out this rigid body thing and then i will try to wear the mic in a sec okay give me give me two minutes i'm just going to shut the stream for a sec but we're back and then the update also broke blender so i had to reinstall blender and if you've ever unzipped blender you know how long that takes ah something i noticed in the uh in the chat pop-up is that super secret goblin prince it's the only name that works and i i tried getting another one of the chat overlay things and it was like the same the same broken but at least one person's name comes to so uh that's good a name length thing oh maybe it is cool so where did we leave this um i'm gonna do the brick drop again because it's forgotten um so this was all set up there we go so just simulating those down and then i'm going to select them [Music] are we supposed to be tagging anyone by the way did anybody leave and was like let me know um oh maybe it was just saturday actually so once you have the bricks dropped like so uh you can just select them all go to object body now do we do we remove this or do we apply transform and then do we remove it i do this so infrequently that yeah that seemed to work so apply transforms and then remove rigid body great so now we've got some nice dropped bricks we can just position these around just to make it look like fallen out of the wall so i'm just manually positioning duplicating and let's chuck some in here as well choose freedom to update whenever you want to use the linux i endorse that message i know some people really really like windows i have never really got on with it because i sort of grew up using linux so cancelled for this oh right yeah um oh someone was mentioning about whether or not you could use vertex normal to align the bricks so i do just want to try that out actually um i'm going to try on a new object so i've got a plane um scaling my 0m by distance let me just turn on my screen cut my screencast keys as well there we go um right so new georgina's tree point instance and i'm going to just grab a brick here and we oh my god what did i do extrude up a few times and then grab some edges grabbing x and then we can extrude in x as well so now if i was to duplicate all of this see i think because it has it does have an actual face right these are these pieces of geometry do actually have a normal direction we should be able to just before the instance use a point align rotation to vector and the pivot is going to be z because that's the uh the vertical axis that we're rotating around the direction that we want to point out is going to be the y-axis and the vector that we're aligning to should be vertex normal yeah cool so that actually totally works which probably also means that we could extrude in like a band if i do like this yeah that totally works so if you wanted to make like rounded shapes you could even properly create the mesh that way or you could just uh make your bricks and then use like a simple deformed band which i feel like a lot of people actually forget that that works so bend in the z axis right and you can do something like that so if you wanted to make a tower that would be one solution um or equally you could use if i were to use like a circle over here yeah i'm actually going to use a radial array for the top of the doorway uh just it's slightly easier to set up i find um oh this something which needs to be implemented for the user experience side is if you have a pre-existing geometry industry that you want to apply to something you should just be able to select it from that drop down rather than adding a new geometry as a tree which creates a new data block and then having to select a previous one because that's just kind of annoying um yeah so you can do something like that if you want to have towers that actually works surprisingly well this whole uh thing with doing more hard surface modeling with geometry nodes in this kind of pseudo power procedural technique i'm actually really digging it i think it's really fun just to like kind of because you're sort of curating that way rather than it being like specifically okay just add all of these nodes one by one and you'll end up with something um right so we've got our loose bricks around and we have our main wall object i'm just going to select and move up just because it's slightly below the the set equals zero plane now we want to add our archway so for this i'm going to use an array um and for that i want another brick and i'm going to alt r to clear rotation and then i'm going to shift s selection to cursor i'm going to rotate it 90 and apply rotation i'm going to add a modifier add a displace modifier and set my direction to z my mid level to zero so this is a way that you can set um a kind of a parametric offset so the strength then behaves as your your offset your your translation there and then what we can do is we can add an array with an object offset i'm just going to add a an empty like this which i will parent to my object so now if i move my brick the empty comes with it and i'm going to set my object offset to this empty and rotate like so and i'm going to increase the number of bricks here i know my door's around about a meter so the strength here should be point point five and then i can just rotate this a little bit further something like this and we can go to five i will also add a mirror modifier which bisects in the x-axis so that we are not overlapping any geometry on that middle one and we don't need to flip it we just keep it so axis and bisect merge clipping so it's all like properly joined up geometry and then i also want to make sure that we have the edit mode toggle on the display modifier is turned on so now i can edit in uh in edit mode and see what's actually going on and then we can just scale the top and the bottom something like this and you've seen it you have that full archway i can make that a little bit bigger and then i will also just make these a little bit bigger cool so that's the archway we could either leave this completely procedural or we could like edit a few faces which i think is probably what i'm gonna do but let's just position it first so drop it over the wall there and then i also just want to slightly increase the uh the displacement just so that we're properly lining up on those edges cool so because i want to edit this what i'm going to do is apply all of these just using the there's like an add-on that lets you do the apply all for like all selected which is useful but now what i can do is i can select a few faces from the front of here but i may even select all of the faces um and then i need to oh wait can you random transform in edit mode maybe not so i just need to basically edge slide so g twice just to make some of these a little bit different as if bits of the brick has fallen off and this top one as well i am going to how did i ransom it's going to make this the center one a little bit bigger as well just so it's kind of like a keystone and scale down in x let's get my bevels in the right place so there we go just kind of neatening stuff up like so so at this point we you basically have the wall as as we want it but we want to be able to do some more procedural stuff on top so this is really important every one of these additional bricks that you've added by hand like the hand placed ones they need to be in a collection right so we can actually now disable this collection so make sure that when you do all of the bricks that you want included also disappear and then in our geometry nodes of this previous thing like the main wall what we can do is we can add an input collection info change it to relative and i can select my my extras from here and now what i can do is i can join geometry and there we go so now all of this geometry is part of the same object even though in my space you can see that they all have different colors because they're currently all instanced objects however if i go in here and i add a remash modifier they all get remeshed together so that's kind of exactly what we want to be doing just be careful if you are manually sliding the voxel size because if you like crank it down really quick you will crash everything which i may have just done and there we go back to where we were so let's add the remesh and let's not slide it this time 0.02 so it's a little bit jank but probably okay for what we want can maybe even go a little bit higher 0.03 just to make it kind of lumpy and then i want to add a little bit of infill on these walls just in the middle there and to do this we just add stuff to the extras folder so let's not duplicate everything let's just grab one of these i'm just going to turn off that remesh for a sec and let's duplicate it into the wall and i'm just going to grab a bunch of these put them basically in the wall cavities like so and then select them all and we're going to just do a randomized transform randomized transform here we go oh on this screen scoping that is massive so we want to have some x rotation that was z rotation and we're going to change the scale as well these are all going to get rematched points just to create some visual noise and we can delete those ones not including the wall cool something i actually have forgotten to do is uh to add the random rotation to the wall breaks randomized transform just unplugged my project randomized transform is incredible it's so useful use it all the time okay so the remeshing now includes these cavity wall bricks and i want to do to make this look more blobby right rather than it all being a nice flush surface and because it's supposed to be old these bricks wouldn't really be the same size and shape and rotation so we need to add a little bit of random scaling and rotation if by the way if you're using geometry notes for the first time and you have a different modifier selected you won't be able to like look at your geometry notes tree you have to select the george nodes modifier for that to be an option um so once you've done that let's add an attribute randomized node we're going to first of all randomize the scale so i'm going to do a vector attribute that we're using is scale that's definitely too much um so we want to go from like 0.9 to 1.1 just so that we've got a little bit of variation in there and then equally for the uh for the rotation we don't want to overwrite the rotation this time because we're doing um the rotated ones over here so let me just see what that looks like you see all of them all get broken up the same way um so rotate between nothing and i guess we want to rotate the z axis and the y axis but we don't want to overwrite the rotation because of these so instead of replace create let's change this to add so now we're just adding to the rotation and we're going to rotate positive and negative so you can see we're starting to get a little bit of definition now on here i might go a little bit further and i'm also going to you know i'm just going to go from minus 0.2 to 0.2 in all axes maybe that's too much yeah something like that the point is just that we want to have edges so that when we do our shader our shade can start pulling out edges and doing some more of the fun stuff there we go so let's add a ground plane uh shift s cursor world origin selection to cursor and i'm actually going to add a new geometry nodes tree just for the ground plane we're going to add a mesh subdivide give it loads of subdivisions and then we're going to do a an attribute proximity and we're going to build up the floor around the wall a little bit so this is going to be reactive to where the wall is rather than just like sculpting it manually so now we can do an input object info and grab our wall object and we can create a new distance attribute i'm just going to call it dist and you can see that for every point in our list on the left hand side here we have a value basically it's distance from the nearest point so now what we can do is we can uh we want a falloff control so out to be math set this to divide by a float so distance into the top and the bottom so this is the distance that our falloff occurs over and then i need to invert this and i want easing so i'm also going to use an attribute color amp distance in distance out we're going to flip the color amp so that we're going uh from a value of 1 being really close to a value of 0 being far away and i'm also going to change it from linear to easing because smooth stuff looks better then we can just add this to the z position so i'm going to do an attribute combine x y set set attribute is distance and the output from this is going to be height and then we can now mix this um i know i just rushed through that quite quickly but that it's just an attribute proximity taking our new attribute and dividing it by our distance value sorry dividing it by the distance that we want to fall off to occur over and then flipping it and easing it with a color ramp when we get the map range you would do it with that combine extra said to make it into a z-facing vector and now we can add this to the position so position add height position and it's gone really high maybe these values are massive yeah they are huge well there we go apply that and make it relative there we go that's better so it was just really big because i had not applied the scale so you can see what's going on here we're literally just pushing up the vertices around the wall based on the distance from this divide and the amount from this mix factor it's important that you set the object info to relative as well because it needs to happen relative to where their local transforms are for both of them but there we go so this just means that you can have nice little localized bit of rise as the floor comes to meet it and you can always add a mesh certified smooth afterwards and there we go it's just a little touch but it can help just add a little bit of realism to stuff so let's do a real quick shader on here and then we'll have finished so i'm going to jump into the shader editor here i'm also going to use evie for this if anybody has any questions as well feel free to throw them in the chat or if you have any work in progress i know sometimes these are a little bit quick to like follow along with but always cool to see what people make so because we have not used the points to volume volume to mesh nodes we can still actually use materials i know some like when i've done this before i tried doing the cavity walls with the the volume nodes and it just stops you from using materials so that should be fixed at some point but at the moment as you can see we can still put materials on here so that's great and we're going to set up a really simple one so i mentioned before the basher node which i'll just drop in the chat in case anybody needs it and that will be linked in the description so i'm just going to add my basher here um the way the basher works is it does box mapping so everything is like projected from the x y and z axis and it's distributed on a voronoi so now if i put an image texture on here and the image texture i'm using is this one if i find where i've saved it blender tutorials okay so i can just drag in my defuse i won't even try my name yeah my name is too short for the chat overlay um so we've got diffuse ambient occlusion normal and roughness and normal and roughness obviously need to be set to non-color i feel like i've watched so many andrew price tutorials in my time as like a blender person i cannot like i can't say non like non-colored data without hearing it in that like australian lilt it's always like data which obviously english people say data so so here we go once we put the nodes through the basher i can just join them up like so i cannot wait until we get node wrangler for geometry nodes it's gonna be so good um i think it was made actually no draggler by the same guy he does texture haven and like hdri haven i thought i saw a thing where he was saying he was too busy to update it at the moment oh is it so hopefully somebody somebody hopefully find some time to do that scene um here we go so diffuse multiplied by ambient occlusion that gives you the slider for the amount and then normal obviously it needs to go through a normal map node uh anybody who's wondering about why i have so many subcategories on here this is the effects nodes add-on by uh cgonfire i'll link to that is also in the description so normal into the normal roughness into the roughness and color into the color and then we can set up our basher node so that we get the scaling correct here we go so at the moment these textures you don't really need to worry too much even if you have like a proper brick wall texture you could literally just throw this on top because the way that we're remeshing and creating apparently floating breaks what is that um [Music] there we go uh yeah the way that we're remeshing and creating all of these bricks it's more like an indication of bricks it's not really it doesn't really matter basically your texture doesn't really need to match so much that pie menu oh yeah this is like one of my must have add-ons 3d viewport pi menus i would recommend turning some of these off like control s is a pain in the ass the a1 is a pain in the ass and shift spacebar is also a pain in the ass however things like the delete for x and um control tab i didn't know that was a pi menu that was not default but yeah like the uh the the different 3d modes you have a pi mini 4 in the delete you have a pi menu for so that's super useful um yeah so this texture looks a bit weird at the moment because it's all at random angles you can just turn off the angle on the on the bastion note there i feel like they should point horizontally so i'm just going to add a vector rotate and rotate the whole thing by 90 degrees ev takes so long to compile shaders there we go so you can just hide all of your seams with the basher as well so something like this and then i'm also going to add a little bit of fake moss this is super easy to do so it's basically just a voronoi and a color ramp and then you mask out a section with noise so if we take a touch coordinate node i might start working in cycles in a sec there we go just that we don't have the initialization time so object coordinates and then i'm going to grab a noise texture and make this a little bit bigger get rid of the detail we don't need to calculate that and then i'm going to throw on a converter map range i'm going from like 0.5 to 0.45 something like this so these are where our patches of mass are going to go might even go slightly slower sorry slightly slightly lower on that something like this so that's masking our mouse and then to create the moss i'm just going to create a vector sorry texture voronoi nose node object always use object instead of generated especially with stuff like this where we have different scales and then let's just make this really big so you have a finer texture so that's a scale of a hundred right there and then again map range do we need it not if we're using a color ramp actually so converter color ramp and the center points i'm going to make a sort of yellowy green color this will be on youtube yeah don't worry if things are going a bit brisk yeah i'll do like a there'll be an uncut version uncutting except from that 40-minute break we took so here we go it's like perfect moss in zero time perfect as long as you don't look too close so i'm just gonna use a mix node here so i've got my original texture my mix factor as that allows me to bring in a second color which we can do like this and now we have uh it kind of looks like peas but moss there we go 200 and i might just add a little bit detail on my note there cool so let's add a couple more things we want to have edge detection so that we have where this is nice and easy for us to set up add an input geometry select your normals and we're going to do an input bevel as well um which we can now do with optics as well so that's super useful vector math set to cross product against the original normals like so and then we can put a length node on here is this actually not working now i've said all that that is if you need to force something to shade smooth so you could use like a or if you only wanted to make part of your model shade smooth um so you can use it as i've used it as like a fill so if you use the points point to volume and then volume to mesh shade smooth like right click shade smooth doesn't work but if you follow that volume to mesh with an attribute fill and fill shade smooth with a boolean which is on then you can force everything to shade smooth um yeah and when we get more like mesh selection tools you'll be able to select parts of your mesh and say this bit needs to be smooth this bit needs to be flat shaded am i doing something dumb here i feel like this should be working but the bevel note does not seem to be picking up oh that's weird it does seem to be working now now that i'm in optics it wasn't working in cuda for some reason i can't explain that um yeah it's like the opposite of how it should work so there we go now we have bevels uh best way to make the bubbles a little bit more powerful is with like power or map range um i'm just going to drop them on directly oops like so and then have it basically mix to a white color just on the corners let's use a map range just to pull in those values a little bit just so it's a little bit brighter there we go and instead of mix i'm also going to set it to screen so i can just reduce my second value a little bit and have it kind of just pick up a little bit of sandy color on those edges let's go for a slightly less bright so this should be maybe just turn it up slightly the bevel seems to have stopped working again i can't explain that this must be a daily build issue then perhaps so i will report bug for that later but that is how you would add bevels unless somebody knows what i'm doing wrong okay remember to save and then ambient occlusion is another one which is good to add just to like throw in a little bit of dusty color uh on interior faces so ao node on here is this one going to work i kind of feel like ambient occlusion is also not working um but yeah if you want ambient occlusion in yours then i read an inclusion math node set to power and then you can just crank the power up and this will like limit where it is where the areas are and then you can just multiply that onto your shader multiply and then just multiply in like this cool so once you have your shader which is kind of built in a nice procedural way for you to not need to worry about any unwrapping not really need to worry about any asset placement and just throw nodes on everything we just want to add some foliage so last thing we want to do here is just add a point distribute node which i'm going to throw down there i literally just saw the shader get edge detection again so bizarre um but there we go so we've got a point distribute i'm going to add another join geometry further down the line so that we can join our created points to this but for now we're just going to debug these points or are we let me just see how this works with a brick okay so we are actually getting the bricks oh do you know what actually i need to do this after the rematch don't i apologize so i've got my original node tree that makes the wall and then i've got the remash and then i want to add another geometry noise tree which is going to add the bushes so let's just name these node trees as well bushes there we go so on this one there we go now we can start adding points to things what we're going to do is we're going to make sure that we don't have anything growing on an absolutely sheer surface just with a dot product and so that's really easy to do quite a useful one to know how to do and first of all i need to actually get the assets that we downloaded from sketchfab earlier to the flower and the fern i need to bring these into blender and uh create collections and hopefully not need to decimate anything so i believe we have an obj for the fern which we do which is enormous so let's just scale this down uh somewhere around here and apply the scale there make sure it's got its material which it kind of does but i don't think it has transparency enabled on the material so let's go and tweak that this is the issue with downloading like objs is sometimes the material hasn't actually been set up in a way which is particularly useful so fern make sure you bring in your opacity map and let's just plug that into the alpha channel cool so now we have a proper fern um and i'm just going to save this one as foliage because we will want to well i will just copy them in actually um so we've got fern in here let's just import i think the other one was like a gltf which is actually i usually find has a better material setup i find that gltf's actually have materials with proper maps for everything as long as they import oh there we go it's just huge so let's bring this down a little bit smaller than my phones and let's also apply the scale to both of these go to all of these there we go man there's a lot of stuff going on here with nodes and things let's just remove all of the parents but keep transforms delete the empties position these on the same place and then just join them do it the lazy way so ctrl j and let's make sure that our origin is in a sensible position as well so shift right click to position your 3d cursor right click set origin to 3d cursor and there we go that's that works fine these are super dense though if you ever download a super dense model decimate just go straight at it 100 000 polys no thank you so we can take it down to five basically without any visual change decimate is super laggy but we're going to apply it so i'm literally just stripping off vertices and then we're going to apply the decimate to make it a fixed thing yeah we can go down to 2000 and that's fine so ctrl a on that and now we have much better topology well much worse topology but much clearer things i kind of want to um if i if i select one of these verts and then shift g number of adjacent faces then this basically selects all the ones which are not attached to a face as you can see there so then we can just delete vertices and that's fine it doesn't really matter that we've run out of storks because you're only going to see these from a long way away so yeah that was shift g by the way to select similar so grab both of these ctrl c copy objects find your original file let's make a new collection for foliage and paste into there disable that grab our wall object point instance collection foliage and then we can just play with the uh you can play with the scale of these scale and rotation oh yeah magic clouds we will also add the wall back in but first of all um attribute randomize scale so we're going to leave this as flow actually just so that we're not changing it all over the place so from one i think they're a bit small in general at the moment so going from one to two so that we have bigger ones and then i'm also going to add one for rotation why does the overlay call us all object object i'm not sure the overlay preview looks correct on the discord website because they have like a stream kit uh thing which has loads of stuff um [Music] but yeah for some reason when we uh when we actually use it it only likes people who have long names so if you if you want to show up on the chat just make sure your name is like several words long rotation so if you do one of these replace create for rotation if you wanted to keep it if you want to keep it working with the normals that were generated by the point distribute rather than having to change the normal like point afterwards so using a like a point a line rotation to vector and then using the vertex normal or the just normal attributes um we can just change these like these attribute randomized nodes to add and then basically just add or subtract from here so i'm going to go from minus 0.2 to positive 0.2 but my z rotation to make sure that it like rotates all the way around now do you know what that's not doing local space that's annoying so we will actually have to re point these at the normal which is fine uh so yeah i'm just going to go in my set to two pi and then use a point a line reduction to vector we are aligning maybe the z axis um to the attribute normal and now these all point out different directions and our randomize actually correctly works with the correct axis or like the axis as intended there we go so now i can use a geometry join geometry to bring these back onto the wall and the last thing we want to do here is just make sure that we don't have any on like super sheer surfaces right on the flat surfaces i want to have more on a flat surface like on a an upward facing surface so this is nice and easy just after the point distribute node here what we're going to do is use a point uh sorry an attribute vector math node set to dot product and if we compare normal with the vector 0 0 1 then anywhere that the normal faces the same direction will have an output of one and anywhere it points the opposite direction it will have an output of zero with a gradient in between so let's write this to an attribute up and then i'm going to use an attribute compare this is like the logic one so that we can do uh greater than and we're going to do greater than a float because the dot product outputs a float not a vector so we're going to compare up against this so anywhere that it is greater than like 0.2 should be tilted upwards um so anything which is like on the face of these should disappear and then i'm going to write this to up again and now we can use a point separate node this is like our mask um and our mask is going to be up and then anywhere so this is kind of confusing you always think that geometry one is gonna be the like the yes faces but actually it's geometry two because geometry one is anywhere that the mask is zero and geometry two is anywhere the mask is one so it's in that order um so now you can see that all of our ferns and flowers and things are on upward tilting surfaces which is kind of useful so like the mix with the factory exactly yeah yeah you just got to remember that zero comes i mean like obviously zero comes before one but uh for a lot of these things it kind of feels like the ui so it feels reversed but it's because it's in that order of zero before one um i'm just going to increase the density just so that we get a bunch on top of our walls and let's also have this at like 0.15 there's a couple on some slightly upward tilted bricks but for the most part they're just on the properly up surfaces i'm going to change my visibility on here so that we have a shadow catcher on the floor and no transparent film save and rendered view so there we go it kind of worked i'm sorry it took so long to reach this point if you were i know some people have been in the stream for like two and a half hours so honestly thank you so much for persevering um but yeah this is how you can make a fairly simple and still editable you know if i want to break up here i can literally just do that and then now we have a brick and it comes with a fern and it comes with a shader with proper light edge detection um so super nice to uh to start like generating woodland things really easy to do thanks um can we get the blend file of course you can let me just pack uh external data so if you want to hang around now isaac is running the um like the social saturday modeling club thing there's a isaac if you're in the chat uh drop what the theme is and uh i will make a proper announcement thing theme is cute okay if you want to make cute stuff hang around people are just going to be modelling stuff and hanging out um in the hangout selfies are accepted nice yeah or if you just want to make anything like model anything then that's also fine i'm probably actually not going to model anything but i'm going to be here i'm going to grab some food first um yeah just no stress nice draw time so there we go so people want to move over to the hangout and just hang out that's uh go for it right i'm signing off i'll be back in like 10 minutes i just need to get a drink bye thanks for thanks for watching
Info
Channel: Erindale
Views: 16,710
Rating: 4.9722991 out of 5
Keywords: blender, shader nodes, shading, beginner, procedural, material, nodes, shader editor, introduction, tutorial, eevee displacement map, eevee displacement node, blender pbr tutorial, pbr textures in blender 2.9, Blender 2.8, vfx school online, blender tutorial, blender eevee, blender enviornment, blender easy, blender easy tutorial, blender cycles, intro to blender, blender 3d, b3d, learn, free, concept art, parametric, computational, design, everything nodes, geometry nodes
Id: EGWgC9fz7fQ
Channel Id: undefined
Length: 80min 4sec (4804 seconds)
Published: Sun Mar 14 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.