Blender3D - Creating a procedural Building with Blender 2.93 Geometry Nodes (TUTORIAL)

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
Hi guys welcome to my channel i'm Chong today i'm going to share with you how to create a procedural building in Blender 3d 2.93 before we dive into blender let me breakdown what we are going to do in this tutorial first we are going to create all the 3d elements that we need to clone later and then we can start to clone the 3d element to form a wall using geometry node then next we are going to replace the top row of the windows with the roof and the bottom row of the windows replaced with the ground floor and then the right column here replaced with the pillar then after we complete one side of wall we can start to duplicate the wall and put it together after putting it together we can start to link it so that when we change the width, height and length properties it will move together okay so without further ado let's get started okay first select all and delete everything and then press Shift A and add a plane rotate it 90 degree press N to toggle the properties panel then change the dimension to 1 meter by 1 meter and then press ctrl A and apply the scale press ctrl A again and apply the rotation and then press Numpad 1 to see the front view then we can start to modelling the windows and door on this plane we can treat this as a canvas so you can modelling your own design on the plane and don't have to follow me just one important thing that we need to aware in order to make us easy to do the calculation later in the geometry node no matter what we model on this plane we need to remain the size of the plane in 1 meter by 1 meter x axis 1 meter and z axis 1 meter and i'm going to fast forward the modeling part so if you don't want to model this yourself you can also download my asset file in the description below after finish the pillar make sure the dimension of the Z-axis is remain to 1. and then remember to press ctrl A and apply the scale after finish all the modeling we need to move the origin of the 3d element to the bottom left back corner here so press tab and go into edit mode select the vertices press Shift+S and select the cursor to selected press tab again and set the origin to 3d cursor and then we are going to do the same thing for all the elements here okay and now we can dive into the geometry node split the screen and go to geometry node editor in the 3d viewport press shift s again and move the cursor to world origin then press shift A and add a cube and actually you can add whatever mesh you want is not important at all in the geometry node editor, click new to apply a geometry node to the cube and then press shift A go to mesh primitive and add a grid disconnect it then press Shift A again to add a point instance in the object column we use the eyedropper to select our windows and then press Shift A again and add a transform node add it before the point instance then rotate the x-axis 90 degree and now you can see our windows is overlapping together the reason is because if we refer to our grid our instance object is actually clone on every vertices on the grid and currently the grid size is set to 1 meter by 1 meter which is the size x and y here and if you remember our windows is all make in 1 meter by 1 meter as well that's mean currently we have 2 meter squeezing in a 1 meter grid so in order to fix this issue we need to increase our grid size to 2 meter by 2 meter and now it stick together that means every time when we change the value of vertices x and y the grid size has to be one point smaller than the vertices let's say we change the vertices x to 6 then we have to change the size x to 5 as well then only it will stick together but this is very inconvenient if we need to change both of the value manually every time so in order to make it easy we can connect the vertices x to the group input please connect it to the blank dot here don't connect it to the geometry and then go to the group tab here select the vertices x and rename it to width and now we want to add a math node press shift A and go to utilities and add a math node connect the width from group input to the math node and then change the function to subtract and then in the value column change it to 1 then connect the value to size x that means now we are sending our vertices x value to the group input and we can now adjust the value in the modifier properties here and when we change the value in modifier properties the value will send to this math node from the group input to the math node here and then minus 1 and send the value to size x so no matter what number you put for the width the number will always minus 1 and send to the size x here and now we want to do the same thing for vertices y connect the vertices y to the group input go to group tab select the vertices y and rename it to height in the geometry node editor select the math node and duplicate it connect the height from the group input to the math node then connect the value to size y and now we can play with the width and height at the modifier properties and you can see everything is stick together perfectly okay next we can start to replace the top of the row here with our roof so in order to do that press shift A go to point and add a point separate node then add it before the point instance the function of this point separate node is allow us to separate the point on this grid into two group and then we are able to assign two different instant object to the grid like for example now we only have the windows clone on the grid then the separate point node is allow us to separate the point on the grid into two group then we can replace another group of points with our roof but of course it's not just limited to 2 only if you want to separate more points we can actually adding more "point separate node" into the node tree ok now we can we can name the mask "roof" and next we need to add an Attribute Separate x y z then now we want to get the position of every point on the grid so to do it type position in the vector column and next we need to create new attribute for result x y and z let's name it pX for x-axis pY for y-axis and pZ for z-axis that basically means we are giving a name to our xyz axis and then later when we want to select which row we want to replace the instant object we can call out the name later we can call out the name here so blender will know which axis we are select okay now we want to start select the row that we want to replace so to do it we have to add an attribute compare node add it before the point separate node then the axis we want to select now is in Z-axis because we are going to select the entire top of the row here so we can put pZ to our A attribute column here so now blender know we want to select all points on z axis but blender still don't know which row i want to select so to let blender know this we can change the B attribute to float and then we output the result to roof now we can play with the number in B attribute to select the row we want and now we can start to include our roof to the geometry 2 so duplicate the point instance select our roof then add a Join Geometry connect it and now we have our roof and now we can try to increase the height of the building and we can see the roof is duplicate to 2 and if we keep increase the height the more it will duplicate so in order to fix this issue we can go back to Attribute compare node then now we want the height of the building value here to link together with the float in the b attribute here so press Shift A and add a group input connect the height to the B attribute here and then press shift A again go to utilities, and add a Math node then we change the function to divide and the value change to 2 so we are going to divide 2 and then duplicate the math node again then we change the function to add and we can start adjust the add value until our roof appear and remain only one okay now we can start to adjust the height again and we can see the roof is remain one and keep stick at the top row ok now we have done the roof and next we want to do the exactly same thing for the ground floor so now go back to the point separate node here and now we want to separate another group of points so i'm going to duplicate the point separate node and we need to give the mask another name we can name it ground floor then duplicate the point instance and use the eyedropper to select the ground floor element connect it to the geometry 2 and connect this to join geometry and then go to the attribute compare duplicate it then change the result to GFloor i'm going to copy this just hover it and press ctrl c to copy it and ctrl v to paste here and then change the greater than to less than so it will select the opposite side of the axis and now we can select tree of the node here and press shift d to duplicate it then connect the add value to the B attribute here and now you can see all our windows have been replaced by the ground floor and the reason is because we are now using the math node for the roof this is the math node for roof and the roof is actually positioned at the positive Z axis let me draw something to explain so this is positive z axis and this negative z axis so now the roof is at the positive z axis and we are using the math node here we are just duplicate from the math node for roof and the ground floor should be at the negative z axis so to reflect the axis we need to add another math node before "add" so duplicate this and change the function to multiply then change the value to -1 so that means we want to multiply -1 to reflect it so now we can try to adjust the add value to show our ground floor and now we can try to play with the height and you can see now the ground floor is stick perfectly at the bottom then next we want to include the pillar into the grid so what we need to do is we need to select the column in the right here and then replace it with the pillar so to do it we are going to do the same step again go to point separate node for the ground floor this one then duplicate it and rename the mask to "pillar" then duplicate the attribute compare and change the result to pillar as well so hover this ctrl c to copy and hover the result here and ctrl v to paste and now we actually want to select the point on x axis so in order to do it we need to change the pZ to pX so now blender will know we want to select the point on x-axis and then change the less than to greater than then we can start to add our pillar duplicate the point instance connect it to geometry 2 and join geometry then try to adjust the width and now again we can see we get the same problem with the roof just now so to fix it again we need to do the same step again go back to the Attribute compare node for the roof duplicate 3 of the node here disconnect the height from the value and connect the width to the value because we need to get the value of the width to link with the attribute for the pillar and then we link the add node to the attribute for the pillar and then we fix it when we adjust the width now now it’s stick together and then next i think you guys already know what i'm going to do now we are going to replace the pillar in the top right corner with the roof corner this is our roof corner so to do this again we need to duplicate the point separate node then rename the mask to roof corner and then press shift A go to attribute and add a Attribute Math then change the function to multiply then we put roof in the attribute A and put pillar for the attribute b then output the result to roof corner by doing this that means we are selecting the intersection point in between the pillar and the roof and now you can see the corner of the roof is empty and the reason is because we still not include any geometry to the geometry 2 in the point separate so now duplicate another point instance and then use the eyedropper to select the roof corner connect it to the geometry 2 and the join geometry and now we've done the roof we have the corner here and next i actually want to mix two different 3d elements for the ground floor so we have to select the ground floor element that we want select two of this then press M to make a collection then go back to the geometry node go to the point instance for ground floor this one click collection untick the whole collection and select the ground floor so now we have two different 3d elements in the ground floor and we can play with the seed to choose the matching we want so now we have done the first wall in the next video i'm going to show you how to duplicate another 3 wall and link it together so if you like my video please subscribe and see you next week Bye!
Info
Channel: Chong 3D
Views: 26,225
Rating: 4.9786525 out of 5
Keywords: blender 3d, procedural, tutorial, high rise, building, skyscraper, blender 3d geometry nodes tutorial, 3d, cgi, b3d, how to create a procedural building in blender 3d, blender 3d geometry nodes, blender geo nodes, 3d modelling building, blender building generator, blender 3d 2.93, Felipe Del Rio, procedural building system with blender Geometry Nodes, modelling, rendering, grid, blender 2.93, geometry nodes, blender tutorial, blender cycles, blender mograph, motion graphic blender 3d
Id: t1W3yBpPLQ8
Channel Id: undefined
Length: 17min 57sec (1077 seconds)
Published: Thu Jul 08 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.