Video summary
This video presents a comprehensive procedural workflow in Houdini 18.5 designed to create a detailed USPS mailbox prop that is subsequently textured using Quixel Mixer. The process begins by generating a side profile through grid manipulation and group expressions, which isolate specific points for beveling with PolyBevel and vertical separation to control height. A boolean operation creates the mail slot cutout, refined via linear tapering, while geometry is mirrored across the X-axis after correcting normals using Skin and Reverse nodes. The UV mapping strategy involves identifying seams through point sorting and flattening the layout in a dedicated node before final arrangement for proper tiling and padding, ensuring efficient texture application throughout the model.
The construction of specific components follows a highly procedural approach to maintain flexibility and symmetry. Side panels are extruded from the initial profile with added thickness, while decorative trim pieces are formed by converting lines into curves that include extended legs via Copy To Points at endpoints. Foot pads and bolts are generated using PolyExpand 2D techniques where spheres are clipped to corners and mirrored for balance. The door is constructed as a NURBS surface derived from specific edge groups, allowing users to toggle its position easily; it features beveled edges, extruded thickness with decorative details, and an attached handle created by sweeping rounded tubes along curves defined via Wrangle normals and Point Sort tricks. All these individual components are UV-mapped based on edge angles and organized within a unified layout before baking.
Refinement of the geometry focuses on realism through precise adjustments to bolts and edges. The creator moves bolts inward using point expressions with explicit normals, calculates outward-facing vectors via cross products, and resamples them along polygon edges for even distribution while alternating their placement. To soften harsh transitions, selective poly beveling is applied after blasting specific faces like the bottom. Color IDs are assigned randomly to distinct sections such as green or blue areas, trim pieces, bolts, feet, and body parts, ensuring visual variety without adding extra geometry. Occlusion masks are generated by dividing the mesh into dense polygons with a small scale, applying mask-by-occlusion settings adjusted for blur, bias, samples, and ray distance to minimize color bleeding in the final output.
The texturing phase combines these procedural elements into a cohesive material setup using a Labs baker node that merges low-resolution geometry data with high-resolution sky inputs at 2K resolution. The base blue material is modified with parkerized steel adjustments for roughness and metallic properties, while rusty green sections utilize bumpy paint effects achieved through albedo removal to simulate weathering. Additional layers include scratched metal textures responding to curvature, rusted sheets on lower sections, aged materials above, and the baked occlusion map topped with an official logo overlay. This final bake produces a highly detailed asset where custom attributes are mapped as grayscale vectors for accurate lighting interaction, resulting in a realistic USPS mailbox ready for integration into larger scenes.
Read the full video transcript
howdy guys handypixel 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 kwixel
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 quiksil 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 node 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 101 for
the size and 2 and 2 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 at
p
dot y is greater than zero and that will
group just those top points because they
are above
the grid here and then we can polybubble
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 it looks pretty good yeah it
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 appear right on top of
each other so let's just fuse it to
clean that up
all right 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 at p dot y
is less than 0 this time and set the
group type to points
and that will select just those bottom
points there then 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 all
right so i'm going to drop down
a no no we'll call this out side
profile 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 spacebar 4 we can move this
guy
up and i do want this all to be
procedural so
i'm just getting a place of just 0.5 and
0.5
i could have done that on my own that
was easier and faster though
all right so now when we boolean this
out we get you know 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 all right 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 i'm going to 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 that adjusts 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 all right 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 topmost 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 note 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
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
a scene 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
dot y is equal to the get bb box
size and the incoming geometry is 0
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 flat note
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
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
uh 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 textile 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 mipmap bleeding or
anything like that i'm going to add some
padding of two 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 ue visualize node from the
labs toolkit
which is very handy and then set the
texture tiling to one and 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'm just leave that at 0.5
for now
and now i want to go and focus on the
side pieces
for that we're going to need to go and
grab the profile before
we blend 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 it just copies over all
the settings
so we just have one place where we
change the width
value all right so then i want to create
some uvs for this guy right off the bat
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
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 all right 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 all right
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
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
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
that gets rid of all those guys cool so
looking at our uvs again you can see
that the polyextrude 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 1 on the keyboard
and then drop down a uv flat note again
and take a look so let's go back and
that is exactly what i need
so in this case the uv flat 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
the previous one we had and there we go
so now we're starting to get the
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 to 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 ions to
match their surface area
and then we'll add some padding in there
uh and then let's hit escape over here
in the uv
view then select our other uv layout
node that's controlling the main area
here
let's scooch this 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 view vs
now with the visualize node
that looks pretty good so let's go and
change our width
just to make sure it's always a 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 evs
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 uh 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 and 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 polypath node
and select connect endpoints 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 by vertex order and that just cleans
that up so it's zero to one
and with that now i need to go and add
the little leg so this currently if we
were to
template our main area for our 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 the leg height so
let's actually name this appropriately
then
cool and then let's copy it to a 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 and 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're going to go down to the
sliders here for start and end and
just increase them to 1 and then invert
the range 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
polypath node
and say connect endpoints and we now
have just a single primitive again so if
we 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 would say point sort by
vertex order so now we have 0 1 2 3 all
the way around to the ends
perfect so with that done 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 xy 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 we're saying max and
then
min for justifying y and the reason why
i want to 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 2 or 1 so i'm going to
say 2 space
1 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
polyexpand this will add our thickness
to it so polyexpand 2d is really useful
node for stuff like this
so it just gives a little bit thickness
so we can control it as well
let's um 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 input 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 an appropriate position so i'm just
going to use the uniform scale for this
and let's actually template on our main
mailboxes 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
um 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
oh 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 yeah because we need to account for
the
the size of the poly bevel on our sides
but that hides it quite nicely
yeah that's perfect then let's uh 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 let's also scale to
match
it doesn't really matter for this one
let's apply padding and all that's good
stuff
just so we don't get any mint map
bleeding 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 mat 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
with 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 a
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
just treat it a little bit differently
so i'm 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 endpoints of the profile so this
actually needs to go over here
there's our path and this is our profile
and we're going to copy that
and we just need to copy it to the
endpoints 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 endpoints for the path
and then on the copy to 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 let's 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 card let's do a
poly bevel and let's poly about with the
points on these
feet pieces here so we're going to go up
here go to points
and we're just going to probably bubble
that and let's make them round so we're
going to add two
actually three divisions there that
looks good
all right sweet so now we've got that
guy uh 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
of this so 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 footbed
there we're going 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
i'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 polyexpand geometry here and
drop down on polyextrude 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 poly bevel
after we
clip yeah we'll do this
i'll do that over there because i really
just want uh
a bolt at 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 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 draw in a transform node and
we'll just get 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 feet pieces so the last thing we
really need to do is create the uvs for
all this stuff so
for the footbed here i'm going to drop
down a group node
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
yeah it 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 it's 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're not going to 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 y axis
so it's
orthographic and uh y y axis
sweet so then we just uh mirror that and
then we need to mirror it
um 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 yep
so i'm going to merge it in with the
legs this is where we're moving it
over yep so this is our width
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
i'll adjust it here before we finish it
up so let's go back to the
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 profile over here right before we
put it into that
polyexpand 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 to do that you just copy
or just highlight the first u right
click and drag it down to the second u
and say
relative channel and then just do one
minus
and now you have an equal offset so i
really just want to control the
size of that so i'm going to come back
down to the bottom of the graph here
and 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
that looks pretty good
yeah i'm going to leave it like that for
now
maybe on the polyexpand we just bring it
in just a little bit
yeah there we go that's what i'm looking
for
maybe we reduce that poly bevel a little
bit more
there we go and then make the bolts a
little bit smaller
very nice and all our uvs are still laid
out for us
pretty cool got a bunch of bolts down
here too
those guys are so small 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
geometry up here because what we can do
is we can
export out some groups here and that
specific group is the a b
seams so if i take a look at the let's
drop down a null node 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
and 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 either a little door or hatch
right here or 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 a b seams to other 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
abc 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 we'll 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
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 nurbs 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 nurbs
surface and we're going to set
interpolate through holes and i'm going
to set the u and v
order 2. that just leaves us with with a
single quad
but a nurbs quad and then i can take a
carb 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
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
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 it looks good and then i
want to do a polyextrude
just give it a little bit of thickness
here
so just lift it up just a little bit
and then i'm going to export out the x
extrude front group
and we're going to use another
polyextrude
and we're going to just inset
the top part and then we're going to
export the extrude front again and do
another polyextrude
so you end up doing this a lot where
you're chaining together these uh
polyextrude nodes and i'm going to lift
this one up a little bit
and then set 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 has something on them like that
cool so the last thing we really need
for the door
is we need to create uh 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 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 by 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 endpoints and there you go
so now we have just those
so let's drop down a carved 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 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 1 or input 1 there
and i want to get it from the current or
from 0
primitive number and we want to say 0.5
and 0.5 to 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 turn 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 i set it for 1
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 0
1 2 3 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 it or 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 bubble 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
tube 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 n
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 uh let's uh
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 to 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 will be good
then let's do a uv flatten
and for the seams we'll put in the scene
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 that'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 looks like we can get away
with quite a bit here so we can do
something like that
yeah that's looking great i 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
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 i 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 banked out and
put into a quicksilver 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 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 one zero zero let's turn on
our
point normals here and actually i want
it pointing the other way
well that should be fine actually so and
then
i'm going to drop down a poly frame 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 we could do it 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
and and our v at forward
so that forward vector that we created
and 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 that will
recompute
and now we can just peek 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 i don't know i'm
gonna 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 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 these 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 to points
node and set this to bolt
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 0
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 got 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
we'll get rid of that and then we'll
drop down our merge node here
and we'll merge in our trim and our
bolts
and then what we'll do is we'll move
those guys and mirror it 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
all right 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 it fits perfectly
like so and then what i can do is i can
fit all the bolts up
there maybe make some spa 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
and 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
remove 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 uh
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 gonna have the two trim
pieces just take up the rest of that
that area there so i'm just gonna move
these guys over here
give it 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 there we go we have our
mailbox
a couple 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
let's untemplate 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 to 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 hosed
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 i still
didn't grab it
well let's try putting it after we find
that bottom scene
seam
yeah that looks alright 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 going to 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 so some random colors
give that a bread and then we'll give
one of these guys over here
so these two guys can actually go hey
i'll separate it all out
so let's give this like a green
and then we'll give this one a blue
and then we want to do all these other
pieces here
let's just 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
quixote mixer or substance painter the
next thing i want to do
is i want to add in some occlusion so
i'm going to drop down a divide node
here
and i'm going to divide this by the
breaker polygons and i'm just going to
do
0.01 and 0.01 and 0.01
like so just to 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
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 gonna
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'm going to set the ray distance to 3
that'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
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 v at occ is equal to f
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 uh with that done we now have
everything that we need to
uh bake with so i can go and set up the
baker
let's do a bake node so i'm gonna get
the labs map speaker
and we want our so this is
our low res mesh right here
we need to pass that into our divide
node as well
i'm going to set this for the low res
and i'm going to set the sky 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 oh 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 uh 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
to size of this max
trace distance so let's visualize this
and that's the reason why
so let's set this to like point zero one
and we'll get a better read on that we
can even go
lower like point zero five yeah that'll
be much better
all right let's do that one more time
you hit render
yeah and that's much better so we're
getting a much better color id mask
and an occlusion mask too it 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
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 and the metalness and
then i added the
rusty green metal and i turned off the
albedo so 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 a 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 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 um
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 i did the
textures all right so hopefully you guys
enjoyed that
let me know in the comments below thanks
so much