 Howdy, guys. IndiePixel here. In this video, I'm going to walk through the creation of this mailbox prop completely made procedurally inside of Houdini and then textured here inside of Quixel Mixer. And so I'm going to walk through how to build up all the shapes completely procedurally and how to procedurally generate all the UVs and then finally how to bake out all the necessary texture maps for Quixel Mixer and then I'm going to walk through all the layers for this particular texture here. All right, so lots of stuff to cover. Let's get started. All right, so I'm going to get the mailbox started here by dropping down a geometry note and I'm going to type in mailbox. I'm going to hit enter on the keyboard and then drop down a grid and this is going to serve as the side profile for my mailbox. I'm going to put in one and one for the size and two and two for the rows and columns and then set its orientation to YZ. Then I'm going to drop down a group expression node because I want to group just the top points of this grid here because I want to bevel them and create a nice rounded top for this type of mailbox. And so I'm going to call the group name top. We're going to set the group type to points and for the Vex expression I'm going to type out appp.y is greater than zero and that will group just those top points because they are above the grid here. And then we can poly bevel those guys. So let's drop down a poly bevel and we're going to work just on the top point. So let's select it from the drop down there and then I'm going to set the distance to 0.5 and that will be equidistant on both sides there. And so let's add a bunch of divisions. There we go. Looks pretty good. Yeah, looks fine. You can add as many as you want. And then I'm going to fuse them because the poly bevel will leave a couple points up here right on top of each other. So let's just fuse it to clean that up. Alright and then I'm going to drop down another group expression node and this time we're going to group the bottom points here because I need to create the overall height for our mailbox. So I'm going to call this the bottom. And we're going to type out appp.y is less than zero this time and set the group type to points. And that will select just those bottom points there. I'm going to drop down a transform node and we'll just move the bottom points down however much we want. I'm going to do 0.5 just kind of keep all this all the values here nice and even and consistent. Perfect. Alright so I'm going to drop down a null node. We'll call this outside profile. And now I want to go and cut out the little section of the top of the mailbox here that has the door where you drop the mail in. And so to do that I'm going to drop down a box. I'm going to boolean out the shape of a box on the side here from this particular shape. And so let's go and do that. So let's drop down a boolean node. I'm going to wire in the profile into the first input and then we're going to take this box and put it into the second input there. And then we just need to orient this appropriately so let's take a look and see where the profile is and then let's take a look at our box. And if we were going to our side view by hitting space bar 4 we can move this guy up. And I do want this all to be procedural so just getting it placed so it's just 0.5 and 0.5. I could have done that on my own. That was easier and faster though. Alright so now when we boolean this out we get a nice profile. I mean it'd be kind of nice if we did a linear taper as well. Just a little bit of a taper to give it a little bit more interest. So if I drop down a linear taper and I set the capture origin in Y to 0.5 then add a little bit of taper. Yeah you can see on the profile here it's giving it a nice little slant which is kind of cool. Yeah. Alright cool. So then we want to go and match size here. So let's drop down a match size node and I want to set this to min like so. Very cool. So this is going to serve as the side profile. So let's move this guy over to the side. So drop down a transform node and we're going to set the translate in X to 0.5 and then I'm going to name this node width as this is going to control the width of the mailbox and then I want to drop down a mirror node and this mirror node is going to flip this over in the X direction by default for me and that's perfect. That's exactly what I'm looking for and then I'm going to drop down a skin node and by default it's going to get flipped as it skins the geometry so we need to select the mirror node and turn off the reverse normals and adjust that but then we still have inverse geometry and so to fix that we're going to drop down a reverse node like so and that will take care of that. Very cool. Alright so the next thing we need to do is produce some UVs for this and if we take a look at our UV editor we don't have anything just yet. In order to do this we need to produce some seams. So how are we going to do that? Well I want to select this edge and the top most edge of this geometry so how do we do that procedurally? Well one way you could do it is drop down a group by range node here. So we take a look at the group by range set it to points. I'm going to call this seam. I think that'll be fine for now and if I set this to the end of two I want to select the last two points in the geometry but currently after all the mirror and skinning operations our point indices are all out of whack so let's drop down a sort node to get that reordered and we're going to set the point sort to by vertex order like so and now if I were to go to my group by range node you can see the last two points are right here. Alright so I'm going to keep that I'm going to invert the range and then I need that to be an actual edge but let's go and select the top two points as well. So I'm going to drop down a group by expression node and like we've seen before we can actually get those top points there but we need to type in a little bit different of an expression for this so I'm going to call this points and this one is going to be called seam just like this guy and for the merge operation we're going to say union with existing so that way they add to each other. So I'm going to say at p.y is equal to the get bb box size and the incoming geometry is zero and we want to look specifically at the y component and you can see it added the top two points here so now with those points selected we can drop down a group promote node and convert that to edges so let's convert the seam to edges. In order for this to work we need to say that we include only the elements on the boundary and so we end up with these two seams right here so the new name let's just type in seam and then let's drop down a UV flattened node and for the seams and the flattening constraints let's set that to seam and then hit 5 on the keyboard to take a look at our UVs and that looks pretty good. One thing we can do is put an asterisk into the rectify group and that will just even it up so it just straightens everything out into a perfect rectangle which is perfect for this type of prop and the last thing that I need to do is drop down a UV layout node. I'm going to go to 5 for my UV layout view and I'm going to hit enter so I can see the gizmo for the transform and I want to just put this into a region here because I'm going to save some space for the other parts and pieces of this mailbox and then I want to set a few of these parameters on the UV layout node. I'm going to set the scale islands to match their surface area so we get a nice even texal density around all of our UVs. I want to then apply the padding just so we can space it out so we don't get any mid-map bleeding or anything like that. I'm going to add some padding of 2 I think for now and yeah that is everything. So now if we have one on the keyboard to go back to our scene view and put in a UV visualized node from the labs toolkit just very handy and then set the texture tiling to one-on-one you can see we have perfect UVs and if I go and change the width now to anything else it's just constantly going to be updating awesome. So I just leave that at 0.5 for now and now I want to go and focus on the side pieces but for that we're going to need to go and grab the profile before we bleed it out. Right the side pieces are not cut out on the sides here so we want to sample it from up here and then I'm going to go and create a reference copy for my width node so I'm just going to say create copy that way just copies over all the settings so we just have one place where we change the width value. Alright so then I want to create some UVs for this guy right off the bat and this basically is the geometry we want to use so to do that I'm just going to drop down a UV texture node and we will select the face option for the texture type and if we switch over to our UV view by hitting 5 on the keyboard you can see it just maps the entire face out perfectly to world space. So really quick and easy way to do that. Then I want to go and poly extrude this guy out just to give it a little bit of thickness on the sides. Alright so let's just go up here and just pop this out a little bit. Let me turn off all my component displays so I can see a little bit better. Let's go and also output the back when we put this on the side so we have to make sure that we see something in the little cutout over here. Alright cool so I'm going to go and expose my extrude front group and then the extrude side group. Let's just expose them all for now because I'm going to get rid of all this geometry on the side here. We're going to put more of a kind of a decorative element on the side here just like you see on the real mailboxes. And so I'm going to go do a blast here. So how do we get rid of the side? Well if we drop down a blast node and blast away our side group we're left with the two pieces but I need to keep the geometry at the bottom here and so I'm going to drop down a group node here first above the blast node and I'm going to say keep by normal so I'm going to turn off the base group we'll call this bottom and I'm going to set the direction for the normal to check is the negative one direction and y and then we'll set the spread angle to zero and that selects just that bottom piece like so. And then inside of our blast node now we can say that we want to blast away our extrude back our front and our bottom and then just reverse that and that gets rid of all those guys. Cool. So looking at our UVs again you can see that the poly extrude node added some UVs for us for that side group but we need to put this back into something a little more reasonable so I'm going to hit one on the keyboard and then drop down a UV flattened node again and take a look so let's go back and that is exactly what I need. So in this case the UV flattened node by default if you don't put any seams in there we'll just take the border edges of your geometry and use that as the seam. I'm going to put an asterisk in for the rectify just to make sure that it's nice and rectangular. Cool. So all we really need to do now we've got our UVs let's just drop down a mirror node and we'll flip it in the x direction and then we need to lay out our UVs for that specific shell so let's drop down a UV layout node and then let's merge these two guys together here at the bottom so I'm going to select this merge it oh and we also need a match size as well so let's just uh alt left click and drag to make a copy of the previous one we had and there we go so now we're starting to get the uh the main shape here again like I said we're going to put a different element over the sides here so I'm not worried about that right now. All right so with this merge node turned on let's select our UV layout two there and go to our UV view I'm going to hit enter on the keyboard and I'm going to move these guys up to somewhere around here I think that'll work let's actually just do that and then let's make sure that we could make a little bit more space actually but first let's go to our UV layout node we'll scale the islands to match their surface area and then we'll add some padding in there and then let's hit escape over here on the UV view then select our other UV layout node that's controlling the main area here let's scoot just down a little bit and then maybe make these guys a little bit bigger so the side pieces can be a little bit bigger have a little more space yeah there you go perfect so let's check out our UVs now with the visualize node that looks pretty good so let's go and change our width just to make sure it's always good idea to check as you're modeling your procedural models and that is working beautifully so I make it really wide let's take a look at our UVs so you can see what's happening it's just constantly updating to fit within that area as best it can so let's put this back to 0.5 there you go so now I want to focus on the trim piece this decorative piece that goes around the side it's not really decorative it's more of a structural piece trim piece that goes around the side here in the little legs on the bottom so I'm going to go and drop down a convert line node and I want to go and grab our side profile and let's actually grab it from our mat size over here so that way it's already sitting on the grid perfect so for this to work I don't need the bottom piece here and so the convert line split all this up into separate primitives there so in order to get that bottom line procedurally I'm going to drop down a sort node and say sort by y and the primitive sort and you'll notice that this gives us the primitive of zero at the bottom always because it is the lowest so I'm going to go and get a blast node now and we can just blast away primitive zero because we know that that is always at the bottom so then let's drop down a poly path node and select connect end points and that will leave us with a single primitive so we just have a single curve and we should drop down a sort node as well just so we can redo our point order you can see we're getting zero one two somewhere around there so let's do um bi vertex order and let's just clean that up so it's zero to one and with that now I need to go and add the little legs so this currently if we're to template our main area for a mailbox this currently only goes down to the bottom of the main box area but the legs actually stick out a little bit farther so I need to add on a little bit more to this curve that we just generated so to do that I am going to drop down a line over here so let's drop down a line and this line is going to point in the negative one direction in the y direction there and let's make it a little bit smaller this will control the leg height so let's actually name this appropriately then cool and then let's copy it to point so let's drop down a copy to points node and let's wire in both these guys so the line goes into the first input the profile goes into the second input and now currently you'll notice that we're getting a line copied at every point that's not what we want what I want to do is drop down a group by range node and just get the two end points so the first and last point in our curve so I'm going to set the group type to points I'm going to call the group ends and we are going to go down to the sliders here for start and just increase them to one and then invert the range and that gives us just those two end points there and then in our copy to points node let's say the target points now equals those that ends I totally misnamed it there we go we'll call it ends appropriately awesome all right cool so now we have our little legs that we can attach on to the end of our main profile here so let's do a merge node now and with that we can then drop down a poly path node and say connect end points and we now have just a single primitive again so if you turn up our point numbers you can see we just have a single primitive and we should always go and clean up our vertex order so let's drop down a sort node and we'll say point sort by vertex order so now we have zero one two three all the way around to the ends perfect so with that then we need to create the actual profile that we're going to sweep along this curve here so for that I chose to do a grid so my previous test here I chose to use a grid and I'm going to set this guy to one and one in fact I'm going to use my preset just so you guys can see me use that so I just created a preset called unit grid and it sets it to one and one and two and two for rows and columns now for this guy I really only need the x y plane for this one and then I'm going to go and drop down a match size node and this guy is going to be set to the max of justify x so or say max and then min for justify y and the reason why I do this you'll see once we copy it or we sweep it onto the the curve is I just try to find the position you can always do this after the fact as well let me then convert the line here so we get a primitive per segment in our geometry so we have a segment per piece there and then let's blast away the parts that we don't want so in this case I don't want primitive two or one so I'm gonna say two space one and then flip it that way we are left with just that cool so that's basically the trim profile but I need to give it a little bit of thickness so let's poly path this so it's back into a single curve so connect ends and then let's do a poly expand this will add our thickness to it so poly expand 2d is really useful node first stuff like this so it just gives a little bit thickness so we can control it as well let's add a little bit of a bevel to it so I'm going to drop down a poly bevel node and let's just bevel the points let's just do a little bit just so it catches some light it doesn't look so harsh all right so let's then drop down a sweep node so I'm going to feed this in for my backbone and then the second to put it is going to be my cross section of this profile and there we go so we need to make this obviously a lot smaller let's drop down a transform node and get this into a appropriate position so I'm just going to use the uniform scale for this and let's actually template on our main mailbox so we can see what's going on and let's turn off all of our component displays and it looks like we need to reverse it also so let's reverse it all right and then I also need to well we could either flip it or we can just put it on the negative side and then mirror it to the positive side let's scale this down just a little bit more it's still way too big for my taste or something like that all right then let's move it over so I'm going to do a transform and we're going to move it negative 0.5 for this one and I think I want just a little bit more we have because we need to account for the the size of the polybevel on our sides but that hides it quite nicely yeah that's perfect then let's mirror that there we go so now we have the two so the other thing we need to take into account is the UVs for this so for this sweep node we can do this quite easily we can go to the compute UVs and I don't want to normalize it but I do want to keep the length weighted that'll actually keep the full length of that UV shell there and I don't want to snap I want the actual width and length of that whole entire piece and then we can go and put this into the side over here for our UV layout so let me go and do a UV layout node and turn this guy on and then I'm just going to move this and put this guy over here so I'm going to say these guys can go over here I'm going to say for rotations we can do 90 degree rotations and we'll just keep this guy in that area looks good that's also scaled a match doesn't really matter for this one let's apply padding and all that's good stuff just so we don't get any map leading yeah there we go so let's merge it into our final merge node over here turn on our UV visualize and let's turn off the template over here look at that we have something that looks kind of like a mailbox now we can throw down a match size here as well just to get it to sit on the ground voila mailbox so we have a couple things that we need to take care of first I want to put bolts on the side of these trim pieces we need some little foot pads down here or some bolts on them and then I need the the door so let's go and take care of all that stuff here so let's start with the feet so I'm going to put the feet on the the bottom of the legs there and to do that I'm going to drop down an object merge node and I'm going to get the profile so I need this profile here so let's just drag and drop that into the object and let's set the transform to none and let's make a copy of that by using alt left click and drag and let's get this profile so I want to copy the same profile but we're going to treat it a little bit differently it's going to drag and drop that into there and then we're going to do a copy to points so I just want to copy it to the end points of the profile so this actually needs to go over here this is our path and this is our profile and we're going to copy that and we just need to copy it to the end points of our path up here so let's go and get the group by range node and let's set the group type to points we'll call this ends for the group name and we'll set the start and end of one and one and then invert that range and that'll get us just the end points for the path and then on the copy of points node we can set the target to just the ends sweet so let's go and template this geometry just for reference and I'm going to drop down a transform node and we're going to rotate this in x by 90 and I'm also going to scale it down and then I also need to rotate it let's do 90 and y and let's just keep going with that there we go we need to do 180 there we go cool so that fits this one guy right over here we'll take care of this one pointing in the wrong direction here in just a second then let's go and poly expand 2d the profile just get something a little bit fatter than our original curve or our trim curve over there that's looking pretty good and then I want to go now and carve we're actually not carved let's do a poly bevel and let's poly bevel the points on these uh fee pieces here so we're going to go up here go to points and we're just going to poly bevel that and let's make them round so we're going to add two actually three divisions there looks good all right sweet so now we've got that guy to take care of this particular piece pointing in the wrong direction let's just drop down a clip node now and we will clip in the z direction like so and then we'll just mirror uh whatever we finish for our feet pieces so we'll mirror it on the z axis and that will take care of that problem for us perfectly so we can merge it with the actual trim and legs and stuff like that all right cool so before we do that let's go now and create a little bit of depth to this I'm going to do a poly extrude and we are going to shoot this guy down so I'm going to do it downwards this time it doesn't need to go much then let's go and expose the output back and we don't need the front in this case and then let's reverse that geometry just so we have the faces pointing in the correct direction awesome so now we got our you know at least the little foot bed there we're going to have to add some points let's first drop down a poly bevel here and we are going to bevel our edges just want to give it a little bit of something then let's set the exclusions to oh let's do 45 then there we go that'll work out nicely we'll just catch some light so it doesn't look super harsh all right now I want to take care of the bolts and so for that we can take the original poly expand geometry here and drop down a poly extrude node and what I'm going to do is just inset this to get to where our points should be or where our bolts should be and I actually want to do so let's do it this way let's uh poly bevel after we uh clip yeah we'll do this I'll do that over there because I really just want a bolt out all the corners here and that looks like it's going to be perfect all right so then we're not going to output the side and I'm going to create a sphere and this is going to represent our bolt and I'm just going to clip it so far to look at the geometry for this I'm going to set it to polygon and we're going to clip it in the z direction so I'm just going to set that to the z direction perfect now that we've got that all set up we can copy it to the points now of the inset geometry up here and then we just need to scale it way down so let's drop in a transform node and we'll just scale way down until we get an appropriate size here yeah something like that looks good to me and I'm going to reduce the radius on the sphere just so it's a little bit flatter on the z direction here awesome all right so now we can mirror all that stuff together so we have our geometry for the feet and then we have our bolts for the feet so we can just merge all that together now and mirror it over so now we have both the the feet pieces so the last thing we really need to do is create the uvs for all this stuff so for uh the the footbed here I'm going to drop down a group note and try to select some edges that we can use as seams and so I'm going to call this seam I'm going to set the group type to edges turn off the base group and we're going to go to the include by edges and I'm going to turn on the min and max edge angle and then just reduce the min edge angle that looks pretty good so I'm going to use those guys as the seams so then I'm going to drop down a UV flat node and uh it's a really good node to produce UVs really quickly so you can see it's already generating pretty awesome UVs for me in this case I do want to cut it just to reduce any sort of stretching you get a little overlap here you know this is so small you know I can even notice it so you can do you know whatever you want I'm going to go with that for now and then for the bolts over here I'm just going to do a UV project you could use a UV texture actually let's do that just to show you guys let's do a UV texture and we'll go to and it's already set up because they're pointing in the white axis so it's orthographic and y y axis sweet so then we just mirror that and then we need to mirror it one more time but actually we'll just leave it like that for now so let's do a um well let's let's merge it in with the legs first so we have this guy up here yeah so I'm going to merge it in with the legs this is where we're moving it over yep so those are with control so let's merge all this together with our legs so I'm just going to merge these guys together and then we will just move it out and then mirror it and then we do a UV layout so all those pieces basically will go together so let's take a look at our our handiwork here it's looking pretty good they feel a little fat and uh yeah they all got organized up here which actually works out pretty well all adjusted here before we finish it up so let's go back to the um scene view and I'm going to actually adjust the size of this a little bit more so I'm going to show you guys really quickly how I do that so I'm going to go over to the um profile over here right before we put it into that poly expand let's take a look at our point numbers and our primitives yeah let's do a carve node and I'm just going to do an equal offset from the ends and to do that if you don't have a preset already set up but to do that you just copy or just highlight the first u right click and drag it down to the second u and say a relative channel and then just do one minus and now you have an equal offset so I really just want to control the uh size of that so I'm going to come back down to the bottom of the graph here and uh turn off all my component displays and just start to take a look at this the size and relationship of that that looks pretty good all right I might scale it down a little bit too so let's go back to our transform and this guy right here yeah looks pretty good yeah I'm going to leave it like that for now maybe on the poly expand we just bring it in just a little bit yeah there we go that's what I'm looking for maybe we uh reduce that poly bubble a little bit more there we go and then uh make the bolts a little bit smaller very nice and all over you these are still laid out for us pretty cool we got a bunch of bolts down here too those guys are so small it doesn't really matter they really just need the color maybe just a little bit of detail cool so now we need to take care of the door and for that I'm going to go let's go up to where we're bullying the um geometry up here um because what we can do is we can export out some groups here and that specific group is the ab seams so if I take a look at the let's drop down an old note up here and just kind of break off the geometry and do a new stream here and if I take a look at the attributes groups and go to edges you can see I'm getting just these two edges which is awesome because now I can put put like a either a little door or hatch right here a little door hatch right here right so whoever uses this particular tool for this prop can change you know which face the the door is on so that is awesome one thing we need to do is we need to take that group and promote it to points all right so let's do that I'm going to say from edges to points we're going to convert the ab seams to another points and the reason is because I'm going to convert this to line I really just want to grab just the edges here just these curves so I'm going to use a convert line and I'm going to turn off my compute rest length here and we're going to blast away anything that's not an ab seam point so let's blast that away and delete non-selected and that leaves me with just these just this curve right here right and so we have zero and one which is awesome because now what I can do is I can connect this so we can say we're going to do a poly path here connect this into one path here I'm going to connect the ends all right so now a piece of geometry we can go and copy our width so let's make another reference copy here and I'm just going to drag and drop this over here so there's our width and then we just mirror it and then skin it and that leaves us with geometry that we can use and we need to go back to our mirror node and turn off the reverse normals and then reverse the curves themselves so we'll do a reverse there we go all right so now we have some options here we can put a door here we can put a door here uh so what I'm going to do is I'm going to split on primitive one that leaves me with this one so by default this is going to be the the polygon that has a door on it but I want the user to be able to decide so I'm going to set up a switch node here and now we can switch between where the door is located on the mailbox always good to find opportunities like that for your procedural tools all right so now we need to put the door on this so to do that I'm actually going to convert this polygon into a nerve surface and the reason for that is I want to be able to carve out an equal shape out of this so I'm going to convert this to a nerves surface and we're going to set interpolate through holes and I'm going to set the u and v ordered or two that just leaves us with a single quad but a nerves quad and then I can take a carve node and I can do an equal offset for both sides right so I'm going to use my preset for the equal offset this allows me to clip off just the sides here and if I were to do the same thing for the first v and second v so let's just copy this and paste this down here and do a one minus and I now have the ability to basically shape the door and it will always stick inside the the width of the mailbox right so we're just going to get a percentage of that polygon that looks good awesome so now we need to convert it back to a polygon uh because I want to be able to use all the polygon tools so I just drop down a convert node and say interpolate through holes and everything else is fine so all the defaults are fine sweet so now I am going to um do a poly bubble and we are going to bevel our points here there we go and I'm going to add three divisions to round it off a little bit so it's not so harsh there we go looks good and then I want to do a poly extrude just give it a little bit of thickness here so just lift lift it up just a little bit and then I'm going to export out the extrude front group and we're going to use another poly extrude and we're going to just inset the top part and then we're going to export the extrude front again and do another poly extrude so you end up doing this a lot where you chain together these uh poly extrude nodes and I'm going to lift this one up a little bit and inset it as well just to give it kind of like a decorative piece I also need to fuse the points up here there we go yeah we'll just pull this down a little bit I just want a little bit of a feature there usually have something on them like that cool so the last thing we really need for the door is we need to create the handle all right and so we can build the handle out of this top polygon actually so let's do that I'm going to export the extrude front and I'm going to blast it away so let's get a blast node and we will blast that away and we'll say delete non-selected so we end up with just a single quad and then we can use an add node to turn this into a curve so I'm going to say delete geometry go to the polygons tab and say buy group and we can go and find the we need the the width lines here and it looks like we should sort this so let's sort this and let's start with the vertex order or maybe we do it by z by x that looks good and then we want to do groups of end points and there you go so now we have just those so let's drop down a carve node and I'm going to set it to 0.5 so we get the middle of each one of those segments and we're just going to extract the point and then we can use another add node and turn that into a curve so this represents where our handle is going to go so let's actually template our door so we can see where this is going to go so I want to add another carve node and do another equal offset for this so let's do an equal offset and we'll just push it out I don't want it to be right on the edge cool so now we need to turn it into an actual handle and so to do that I need to actually move it up in the direction that this door is slanted in at this angle here and we can do that by getting the normal so we can actually get the normal from this polygon right here from the primitive all right so I'm going to show you guys how to do that let's drop down our wrangle node and let's feed in this blast five node so just this polygon into the second input like so and I'm going to get the normal from that so I want to use the prim normal function so we say prim underscore normal so I want to get it from geometry one or input one there and I want to get it from the current or from zero primitive number and we want to say 0.5 and 0.5 to sample the primitive in the center of the polygon what we're doing is we're actually grabbing this normal this direction normal right here all right and we're going to then pass it off to the point so I'm going to say at n is equal to norm so now if I return on my point normals you can see we have the normals pointing in the right direction which means now we can go and peak this let's do a peak node all right so I'm just going to peak this guy we're going to just lift it up like so I don't want to recompute the normals either so I'm just going to pull this down and then let's merge the original one with the peaked one there we go and then I want to turn this into a polygon so let's drop down a join node and I'm going to say wrap last to first and then turn off my blend and that leaves me with just a single polygon right there that I can use cool so let's then go now and do a convert line because again I need to turn this into a curve that's shaped like a handle so now I need all the outer segments here and not this bottom one all right so how do we do that well I'm going to do a sorting trick so I'm going to sort along a vector and the vector that I want to sort along is that normal direction that we applied to these points all right and so I am going to drop down a sort node all right let's turn off our point numbers and just keep our primitive numbers on so we need this to be zero so we can always blast it away and so to do that in this sort node I'm going to set the primitive sort to a long vector and I want to get the normal direction from this node up here so this let's name it call it set normal so I want to get the normal direction here from point zero and to do that we just come over to our sort node and type in point so we're going to use a point expression I want to get the information from that set normal node or that wrangle node where we set the normal I want to get it from point zero and the attribute that we want is the normal and we want zero for this first input to get the x component from the vector and then we set it for one for the y and then set it to for the z so now if we take a look at our sort node it's sorting it by that direction so you can see it's it's got that arrow pointing so now we have zero one two three which is awesome because now we can drop down a blast node and delete away primitive zero and that is will constantly be the case because we're aligning and we're sorting it by that vector all right so hopefully that makes sense I'm going to drop down a polypath node and we'll say connect endpoints very nice and then we're going to do a poly bevel and I'm going to bevel the points and there we go and we're going to add a few more just make it nice and round and now I'm going to do a sweep node and we're going to sweep with the round option oh we also need to produce proper normals so let's to do that let's drop down a poly frame node and for the tangent we'll just put in end for the normal and we'll reverse the cross sections in the sweep node here and then let's just change the radius on the sweep and look at that we have a pretty cool little handle increase the amount of segments as well yeah all right so let's let's produce the UVs as well using the sweep node I don't want to normalize the components and I want to turn off my snapping so that way I get the true width and length in the UV space all right and then finally we can just merge it with the the door over here so I'm just going to drop down a merge node and merge these guys together like so very nice and let's go and test now our switching so if I switch to the other polygon yeah we should get a door up there instead pretty cool the other thing we need to do is we need to UV map this guy so let's take care of that really quick I'm going to do my edge angle trick here so let's go and drop down a group node I'm going to set it to edges we'll call this seam now turn off the base group go to include my edges turn on my min and max edge angle and then just move the min down a little bit until I get what I want yeah I think that'll be good then let's do a UV flatten and for the seams we'll put in the seam group and then we'll rectify this guy so just put an asterisk for that and it didn't want to do an awesome job with that but that's fine yeah let's turn this off then there we go it's actually better without it all right so let's feed that in and there we go so now we have our door let's drop down a UV layout and get this guy laid out with the other guys so I'm just going to pull this down here we could start putting all these things in little subnets this one got quite long that's for sure um it's fine for now so let's uh merge it in and let's turn on the template with the control key press on the keyboard and then let's go to our UV view with the UV layout for the door selected and let's go and find a little spot for this guy so I'm just going to put them right over around here I think we'll just put it up here I'm going to allow rotations there we go let's just do 90 yeah and let's scale to match the actual surface and it looks like we can get away with quite a bit here so we can do something like that yeah let's looking great we might have to adjust a little bit more but so far hopefully you guys can see you know the pattern of just adding more parts and just adjusting your UV layout uh in here it's looking pretty cool uh let's merge in why is the door not showing up here oh I need to match size it so we actually need to take it from here let's do the match size there we go and we can move this up and then we can play around with the size of it so again we can go and switch this now to wherever we want and let's go and change the the size of the door a little bit that looks pretty cool I think the overall size of the mailbox just needs to be a little taller so if you remember that was from this guy right here so you can just lift this up a little bit more that looks pretty cool all right let's go down now all the way to the bottom and take a look everything is UV'd perfectly and it's coming along so the last thing we really need to do is put on some bolts for the sides here and then get everything baked out and put into a quicksill mixer so let's do that now let's get the bolts all finished up and that's pretty simple I'm just going to put some bolts on the sides here for this demonstration at least and so I'm going to move all these guys over to the side here and I need to go and get the curve before we add the legs on it so this guy so we can actually sample it from here so let's do that I'm going to actually merge together with them all these guys so it goes with this UV layout node all right let's now drop down an object merge node and I'm going to drag and drop this over here and we're going to just say none for the transform information so there is my curve and what I need to do is I need to copy a bunch of bolts to the side of this and I also need to make sure that this is sitting right on the edge of this guy and it already is actually so that's nice so we don't have to do any sort of ray casting I do need to move it inwards a little bit though and so let's take care of that now to do that I'm going to drop down a point node a point expression node and in here I'm going to set an explicit normal so I'm just going to set it in the x direction so 1 0 0 let's turn on our point no point normals here and actually I want to point in the other way well that should be fine actually so and then I'm going to drop down a polyframe node we're going to create our flow normal and I'm going to actually call it forward so let's just do forward so fwd there we go and then in a wrangle node let's just take the cross product of those two you could do with a point bob node as well so I'm going to say at n is equal to the cross product of at n the current at at n and our v at forward so that forward vector that we created that gets us this normal that's pointing outwards which is fine you can always negate it so we can go into the peak node let's not recompute actually yeah we'll recompute and now we can just peak this inwards cool so now we can put our bolts there before I do that I'm going to resample this and we're going to resample by polygon edge so I get a nice even distribution that looks good and then I want to group every other point just so I don't have too many so let's do a group by range so I don't have too many bolts on this thing so I'm going to set the group type to points and we'll call this bolt and I'm going to make sure that we don't ever have well we could always have a bolt down there I think that's fine well I don't know I'm going to just remove the start and end just so we start from there and we'll say every other point so one of two cool so then now we can take our bolt that we created up previously so this geometry right here so let's just copy this and I'm just going to do an alt left click and drag there we go and then we can just copy these guys to our points just because it's already made there's no reason to make it again so now we've got bolts so we could make this a little bit more interesting let's actually scale it up a little bit more just guys make it a little bit fatter and then it might be nice to kind of stagger them a little bit we also need to go to the copy of points node and set this to bolts so we get the every other pattern and then let's stagger it a little bit so I'm going to put down a point jitter node for the main path that we're copying to and I don't want to update the normals either and we don't want to do this on the x direction so we don't let's put a zero for that and then let's make the scale just really tiny I just want a little bit of offset between those bolts yeah this gives it more interest really cool and then we also need to make sure we add some UVs so we can drop down a UV texture node and we're going to set this to the z axis there we go and then if we merge it together in this stream right here we should get it automatically laid out for us yeah so the bolts are going down there very cool we could always do it a little bit differently so let's do this here this is the that strip so let's keep those guys here I'm going to actually let's do this let's group this so this is going to be our trim and then we'll group get rid of that and then we'll drop down our merge node here we'll merge in our trim and our bolts what we'll do is we'll move those guys and mirror together but then we'll split down here and treat the UV layout differently so this guy is going to be our trim so I want that layout for our trim pieces and then I want to do a different layout for our bolts and our feet pieces so then we can merge those guys back together so hopefully that made sense I'm just trying to organize it a little bit better and let's take a look yeah so now we can kind of move these guys around give it a little bit more space so let's do that now I'm going to basically template this guy by holding down control and hitting the template flag then I'm going to select this guy and we're going to adjust the position for this one to something like over here yeah yeah I like that I'm still I still don't like this over here we've got tons of this space so I think what I'm going to do is kind of free up some space here I'm going to go to this guy and we're just going to move this down like so and I think I'm going to move these guys down a little bit too so I'm going to hit escape in there and then go and select this one come back to the UV view and hit enter again and I'm just going to move the gizmo till fits perfectly like so and then what I can do is I can fit all the bolts up there maybe make some space yeah I think that's what I'm going to do so I'm going to hit save and then let's activate not that one let's do this one so this one's going to go up here so I'm just going to move this over here move that up like so that looks pretty good and then I think for this guy I'm just going to move this down like so we move it like that and then we'll do the door I'll just put it out this way or maybe we can fit it down here somewhere yeah so let's turn this guy on and we'll do something like that that looks pretty good yeah we still have a big old space over here which is fine you know for the most part I don't really plan on adding any more parts or anything so I think I'm just going to have the two trim pieces just take up the rest of that that area there so I'm just going to move these guys over here a little bit of a buffer anyways that's how you go I do a ton of that stuff I just go and start to reorganize things and until I get a really nice fit this looks pretty good probably not the the most perfect but it's going to work for our purposes right now and there we go we have our mailbox a couple of last things I want to do right now I do have harsh edges for this geometry for the the main box so I just want to go and take care of that really quick so I'm going to do that before I create my seams here this is for the main box here so I'm going to go and select this it's on template it I'm going to do a poly bevel and we're just going to bevel it just a little bit just want to give it a little bit of thickness for that so that way we get a little bit of light interaction some specular highlights happening on the edges same with this guy and actually let's do it right after we blast the bottom so we're not having a bevel unnecessary things yeah it looks pretty good all right let's hit save and then just check all of our UVs everything should be fine let's go to the UV view and that definitely changed it quite considerably so it looks like this piece down here got a little hose so I'm going to go and check that out really quick oh let's put it before the sort there we go that's why let's check that out again nope it's still in grab it well let's start putting it after we find that bottom scene yeah that looks all right so let's do that take a look yeah there we go so now we're back to normal all right so with that all done the last thing I want to do is set up some colors so I'm gonna actually move this guy up here in the list just to organize this a little bit so I want to create a color ID map here and so I'm just going to give all these guys some colors or some random colors give that a red and then we'll give one of these guys over here so these two guys can actually go right I'll separate it all out so let's give this like a green and then we'll give this one a blue I want to do all these other pieces here so let's do some random pieces so that's the trim these are the bolts and these are the feet all right let's take a look at that beautiful all right so that'll be perfect for quick submixer or substance painter the next thing I want to do is I want to add in some aminiclution so I'm going to drop down a divide node here and I'm going to divide this by the brick or polygons and I'm just going to do 0.01 and 0.01 and 0.01 like so just give it a really dense mesh like so and then I'm going to drop down the occlusion node so the mask by occlusion and this will put the occlusion mask onto this mask attribute and so to visualize it I'm going to drop down a wrangle node and I'm just going to say that at cd is equal to f at mask that will show me my occlusion yeah not too shabby one thing we should do is also provide some normals here and I'm going to do something like 45 nope let's do yeah 65 was good that looked good all right now we can see our occlusion let's go and adjust it a little bit so I'm going to increase the blurring a little bit and increase the bias over here get a little bit darker let's increase the samples I guess at the rate of since the three that I'll just extend it out a little bit more yeah I think that's good enough so one thing that we need to do when I'm trying to bake this out with the labs baker node is we need to make sure that we set this to a new value so I'm going to set this to be at occ is equal to f at mask and we need to make sure that it's set to a vector that way it gets written out as a grayscale image instead of just a rgb image all right with that done we now have everything that we need to bake with so I can go and set up the baker let's do a bake node so I'm going to get the labs maps baker and we want our so this is our low res mesh right here we need to pass that into our divide note as well I'm going to set this for the low res and I'm going to set this guy for the high res so we have our color and our occlusion on there and I don't want my colors to be overwritten okay cool yeah we're all good and then finally I'm going to set this to a value of 2k for the texture size and I'm going to send this to a bake folder so rather than render I'm going to set this to bake and then call this mailbox and I want to leave the channel on there so I'm just going to call this mailbox that looks good and I want I don't want to do AO I do want to transfer the color which is fine then for the custom attributes I'm going to get that OCC value that we set up in the the wrangle node over here and so that will get our occlusion for us and with that we're pretty much good to go I'm just going to hit render and let this guy roll and that looks pretty good so we got this result I did notice though if I were to make this a little bigger for you guys I'm getting a little bleeding of the color and that is because let me move this off the size of this max trace distance so let's visualize this and that's the reason why so let's set this to like 0.01 and we'll get a better read on that we can even go lower like 0.05 yeah that'll be much better all right let's do that one more time when you hit render yeah and that's much better so we're getting a much better color ID mask and an occlusion mask too looks pretty good all right so with that now I'm going to go over and just work through the texturing side of things so for the texturing I really just wanted to walk through the layers that I did because at the end of the day I really just you know overlaid a bunch of different types of materials so I started out with a solid material I set it to blue and just set a really basic roughness and metallicness over here I added the parkerized I think that's how you say that steel which just kind of modified the roughness in here in the metalness and then I added the rusty green metal and I turned off the albedo that way it doesn't sit on top but it gave it this really nice just kind of bumpy paint look just helps break up the surface even more and then I added a scratched metal and that really was for the curvature and then I added the rusted metal sheet this is all for the bottom pieces down here so this is for all the rest down there and then I did another one just for all the rest up here just to make it look kind of cool a little bit aged and stuff so that was really that's all the metal stuff and then I just put the AO map over the top of this that we baked out of Houdini and then I just put a logo on it just to make it look official and there we go so that's how we did the textures all right so hopefully you guys enjoyed that let me know in the comments below thanks so much