Video summary
In this tutorial, the creator demonstrates how to procedurally generate a realistic diamond plate texture by first establishing a geometric base using shape nodes and normal maps. The process begins with creating a classic diamond pattern through tiling and adjusting parameters like resolution and smoothing to refine the edges. A key technical step involves calculating surface curvature and occlusion to understand which parts of the geometry are convex, sticking out, or concave, protected by surrounding elements. By comparing different nodes such as smooth curvature, occlusion, and HBAO (Horizon-Based Ambient Occlusion), the creator learns how to isolate specific areas like crevices versus exposed peaks, which is essential for applying realistic wear and tear that mimics real-world physics rather than a uniform distribution.
The core of the tutorial focuses on simulating rust and corrosion by leveraging these geometric insights to mask where damage should occur naturally. Instead of applying rust uniformly, the creator uses the curvature and occlusion data to concentrate rust in the darker, sheltered crevices while keeping the exposed tops cleaner, as moisture and dirt accumulate more easily in protected areas. To achieve a convincing look, various noise types including Perlin, Simplex, and Voronoi are blended using fractal brownian motion (FBM) to create grainy, organic textures. The creator experiments with different blending modes like overlay, screen, and lighten to ensure the rust pattern respects the underlying diamond geometry without destroying the visual clarity of the plate's shape.
Finally, the texture is enhanced by adding scratches that tell a story of usage and age, further deepening the realism. Shallow scratches are introduced to affect roughness and metallic properties, representing areas where protective coatings have been worn away, while deeper dents are created using difference nodes to simulate heavy impacts like dropped slag. These physical deformations are crucial because they allow secondary effects, such as rust accumulation inside dents, to occur naturally based on the new geometry. The video concludes with a highly detailed, weathered floor texture that combines rust, scratches, and dents into a cohesive scene, showcasing the power of procedural generation to create complex, believable materials from simple geometric inputs.
Read the full video transcript
Hi, I'm Anfa. Welcome to this material
maker tutorial.
Today we're going to continue with our
brick texture. And as I promised in the
first video, we're going to change the
underlying brick structure and see what
we can do. So, let's zoom out a bit and
get back to our bricks.
Now, to easily reroute these outputs,
I'm going to insert a reroute node. So,
I'm going to hold shift and right click
on both of them.
And now I'm going to find some other
bricks. Bricks.
And we have different things. For
example, uneven bricks.
Now, an interesting thing that we can do
is there is something called a switch
node. Right click, switch.
And
we can actually use the switch node to
dynamically switch between two
two pairs of different inputs. So input
A and input B1.
So that would be our existing brick. And
let's connect it here. And output A2 and
B2.
Now, if I flip the switch,
um, if I flip the switch, you can see we
get uneven bricks. Now, we might want to
adjust the mortar and the bevel and
around the corners a bit,
increase the randomness, etc. We can
also randomize the random seed.
basically
minimum size.
Oh yeah, that's cool. Wow, I love that
iterations.
Now that starts to look like a city. Um,
I think we need to greatly decrease
mortar and bevel if we want even
rounding if we want this to work. Okay,
that's too much.
Right, we have our uneven bricks. This
would work for some kind of pavement,
but well, the grouds seem to be too deep
for a pavement really. We would stumble
upon something like that and fall. So,
not the best. Uh, I think we would have
to
greatly reduce the amount of spaces
between our bricks and maybe
lower the depth so that it doesn't look
like it's such a deep thing. No, now
this looks like a pavement.
Um yeah.
So this is the power of being
procedural. We can replace
the the initial inputs and everything
else adapts. That's very very powerful.
Okay, we can try and work on this
further
or we can make something new. I think I
make something new. This was just um to
finish up the previous video. So, I'm
going to create a new file. CtrlN.
And what can we make now? Well, we can
make a very classic thing, which is a
diamond plate.
So, we want to make some steel. I'm
going to make the metallic to one and
roughness decrease roughness.
So this is our basic thing. Now maybe
there is a pattern for that
diamond plate. No plate. No pattern.
Maybe we can find some kind of diamond
plate pattern. Oh wait, look. Mesh. That
is exactly what we want. Uh diagonal.
Yes, please. Shape one, shape two,
input. Interesting.
Uh, let's go and find a pattern. No,
sorry. Let's use this thing, a shape.
Polygon.
Okay, let's decrease the size, I guess.
How does this work? Tiling. Okay.
Um,
okay. Hey, we can do something like
that. Interesting.
Well, that's cool. But we're going to
use this diamond shape. Okay. So,
in this video, we're going to learn
about curvature
and do some rustiness and scratches
maybe. Let's see. Well, we we'll see how
long that does it take. So our first
thing, this is our diamond plate base
line. So let's uh add a normal map node.
Connect it to our output. I'm going to
change the output resolution to 1024.
Okay, that doesn't look very good.
Honestly, it's kind of crap. So I think
what we need to do is clamp this um so
that we don't have this overlap between
different things because it seems like
Well, doesn't Yeah, it's not right.
Okay, let's do remap.
Okay, so remap is a node that well, it
remaps.
Now, what it does by default is it
remaps a normalized float input
and normalized means it's the values are
between zero and one. and it turns it
into
uh it t it turns the range to a negative
one to one. So if I turn this to zero
now there is no change between the two.
What we'd like to do what I would like
to do is actually yes offset this and I
want to clamp it. So I'm going to use
math
and use clamp
and I'm adding zero. So nothing really.
I'm just using this to clamp. And look,
just doing this
creates our diamond PL pattern. What I
like to do is round off the top edges a
little bit. So I'm going to increase the
max.
See if I can clamp the tops as well.
Okay. And I need to decrease the low.
All right.
And like to round this off a little bit.
So maybe I'm going to turn this into a
smooth step
now. Maybe less.
You can see we can tweak this quite a
bit.
And the smooth step makes it so it's a
little less sharp. But if I say decrease
the the strength of the normal map,
that's even better.
Okay,
that's nice. But it looks kind of
sparse. I think we need to increase the
density. Okay, let's reset this view.
And I'm going to change it so it's not
tiling. So, not repeat, but clamp. Okay,
now we see how much texture do we
actually get
in our 1024x 1024 pixels.
I think that's a good amount. Okay. So
now what we'd like to do, what I'd like
to do is calculate the curvature of
this.
A good way to calculate curvature is of
course using the curvature nodes.
And we have two smooth curvature and
smooth curvature too. I will use smooth
curvature too because it gives us more
control. So I'm going to connect this
thing
and I will zoom right in.
Mhm.
I'm going to reduce the radius.
Um yeah, interesting. There is some
ringing, but if I increase the strength,
uh by ringing, I mean there is a black
point here, but there is a white edge
here. So, it seems like it's bouncing
back. Bouncing back. So, I'm going to
decrease the strength to hopefully cut
back on the ringing a bit. There's
quality 16. What if we just decrease it?
Okay, now we see why
the ringing happens, I think. Okay, we
do need to increase the this quality.
That should be enough. All right. So,
what this tells us is which parts of the
height map, because this is a height
map, which parts of the height map are
sticking out and which are sticking in.
So which parts are convex like the sharp
edges here the top edges of our uh
diamond shapes and which are concave
which means they are um
poking inwards they're protected or
surrounded by other things. Now another
way
we could extract something similar and
that is find out where which parts are
kind of in the shadow is by using
occlusion.
So let's use occlusion and see what it
does for us and how it compares. Okay,
looks like I need to increase the
strength.
I'm going to increase it much more.
Okay. Quality
we need a bit more.
All right. So now what this looks is it
this is is a bit similar but the flat
surface is not middle gray like here
because a flat surface has no curvature.
And so it's the curvature is zero. So
it's using the neutral value 0.5.
Things that are poking out are whiter,
white, brighter, and things that are
poking in are darker. Now, the occlusion
node gives us only the darker parts, but
it doesn't have this ringing, which is
something I like. So, I think I will
combine the two.
Now, there is yet another one which is
HBAO.
This is a a shortcut for horizonbased
ambient occlusion. And what this note
does is kind of like path tracing or ray
marching. I don't know. It is using a
determin no sorry a stochastic uh
process to to find what ed what points
are oluded and we can increase the
quality
and we can actually crank the quality
way up. Uh well that's is if you
actually type a number.
Now, this is even nicer because it gives
us partial occlusion of the sides. So, I
like that. I increase the resolution to
two times what we have in our output
because this node kind of gives a noisy
blurry result. If you use the
uh same resolution with occlusion here,
we can actually go lower. It doesn't
matter that much.
I think it's actually really
it's it's very sharp.
Okay, so we have three different things.
Now, why do I even try to find this out?
Well,
we are going to add wear and tear to
this because a diamond plate like this
is pretty boring. It's too perfect.
Nothing looks like this in real life.
You have scratches, you have dirt, you
have rust, you have um some grime that
you know just accumulated dirt,
water that flew here and like corroded
parts of that. And the thing is that
this kind of wear and tear or how we
could call it distress is not
distributing uniformly across surfaces.
It usually occurs in certain parts of
this. So for example, if I have this
curvature map,
then the bright parts are more prone to
being scratched because they are poking
out. The dark parts are less common to
being less
less likely to be scratched or dented
because they're protected by things
around them. They are shielded somewhat.
However,
the parts that are in the dark are
actually more likely to accumulate dust
and rust because there's going to be um
water that is not going to evaporate as
quickly because there it's a it's in a
crevice. There's going to be more dirt
because it's the surface is occluded.
So, it's less likely to be wiped off,
wiped away. Even if you try to mop this
the the floor, some dirt, some some
moisture is going to resid keep stay in
this in these crevices and will corrode
your plates and stuff. So we can use
this information about the geometry of
our height map
to wear it down in a way that is closer
to reality than if we just applied it
uniformly. And well, we'll first apply
our wear and tear uniformly and then we
will mask it out based on the curvature
and the occlusion of our base pattern.
And you'll see what happens and how what
the difference that does it make. So
let's go ahead and create
uh a mix a blend node.
And I'm going to blend
colors
so uniform.
My diamond plate is going to be a bit of
a darker thing with a tiny tiny hint of
blue cuz it's going to be steel or
aluminum. Actually, we could do metal.
And we could take uh some values from
this. So, let's go with
uh iron. Iron. This is going to be our
color.
Now, I need a color of rust
cuz that's what I'm going to do first.
And well, rust is kind of well, it's an
iron oxide, so it's a bit of a brownish
brownie reddish
thing. Something like that, let's say.
Okay. Now,
rust doesn't usually accumulate
fully. um uniformly. So, we do need some
noise because otherwise it's going to be
just like this, which is kind of nah.
I'm also going to um
actually the new version of multi maker
has something called portals or
aperture.
Uh portals aperture. Yeah. And so
we can have apertures.
We can have a multiple.
It's kind of like a reroute node, but
it's uh
doesn't clog the view as much. So, I'm
going to actually Whoa, sorry. Uh
I'm going to actually use first I'm
going to use an FPM noise. So, we can
click here. I'm going to connect it to
the aperture.
And another thing I want to do is
colorize.
Actually, I'm going to do contrast.
Brightness contrast. So here,
let's say that what is white, what is
bright on this is going to be our rusty
thing and what is dark is going to be
our clean thing. So I want to actually
invert this
because what we're trying to set here is
the metalness is the metallic map. So
rust is non-metallic.
Now I'm going to copy this contrast
and put it here.
But I'm just going to reset this. And
I'm going to actually increase the
contrast. Let's go for eight.
Right. So you can see now part of our
plate is rusty and non metallic.
That is correct. It should also be more
rough. So I'm going to duplicate this
contrast node again. And let's see. So
rust is white,
metal is black. I think I'm going to
decrease the contrast a little bit
because I want my diamond plate baseline
to also be a bit rough. So, I'll just
connect it to the roughness.
And it seems I got it wrong. You can see
that our metal parts are more diffused,
rough, and our This looks like a rough
diamond plate that is splattered with
ketchup or some other liquid. So, I'm
going to invert the contrast.
Okay. And that looks better.
So, our rust is actually rough. And
maybe it's too rough. No, it's okay.
Rust is rough. Now, another thing I want
to do is add some grainy noise to the
rust part so we can show that it is
um
rusty. I'm going to copy this aperture
out.
And what I'm going to do is add a blend
node.
And I'm going to generate another noise.
Uh so let's go FPM frequency.
Let's go up. And now this is normal. So
it will overwrite our our texture. And
so you can see that our
our rust is kind of grainy, but we are
losing the diamond plate pattern. So I
need to tweak two things. First I want
to tweak the frequency or scale of the
noise. So the grain is much higher
frequency. That looks much better. And
second thing I want to change the
blending mode because if I look at this
you can see that well our diamond
pattern disappears here and I don't want
that. So let's change this to
overlay.
Okay. So our diamond pattern is there
still but we have some rusty grimy
um
dilation happening the I mean the rust
is like expanding you know now it's not
perfect because part of our noise is
being clamped down
I think by the normal map node.
So what we could do is instead of
overlay we could multiply we could apply
to a screen so that it's always
brighter. Now screen is a little bit
like additive
only that screen is kind of sort of
smoothing the highlights I think but we
could do additive and we could also
maybe tone it down a bit.
Also I think I would increase the
frequency even more.
Um what we can do is increase the
iterations or decrease them first. So as
you can see iterations is how many times
do we take the frequent the fractal
brownian motion.
If I change this to four and four you
can see we have four values in each
axis. One 2 3 4 and then it repeats to
the same thing. And again 1 2 3 4. And
the fifth one is looping back here. So
if I have one that means it's the same
color. If I have two that means one two
and repeating again one one two and
again repeating one. Now iterations. If
I do two iterations you can see now we
have a blend of our one two again one
and 1 2 3 4 and again four. So it
multiplies our
uh size by two that's the lacunarity
um factor and it blends it in by a
factor of 0.5
which is persistence.
So now if I do three we have three
layers of
FBM four layers five layers etc. Now if
I increase the persistence, it's going
to give more power to the higher
frequency versions. So if I increase the
persistence to ridiculous values, we
only see the last iteration. So if I
increase this, you can see we're only
seeing the last iteration. So 10,
we don't have any of the low frequency
components, which is what we might want.
I'm going to do persistence of one. So,
we still have some of the low frequency
content. And now we can increase the
bass frequency to Oh, sorry. If I right
click, you can actually open expression
editor.
Uh, but we're going to expressions are
Let's not get into that just yet. That's
that's an advanced topic. Let's not jump
the gun.
So, I'm going to increase the scale to
32 by 32. And you can see if I even
remove persistence, that's already this
is our base frequency. So yeah, this is
nice and rough. I like that. Maybe it's
a bit too uniform. We could actually
reduce the persistence a little bit to
get a little bit more low frequency
content.
Okay, now you can tell that this noise
is kind of weird and blocky and we can
change the type of noise. There's
multiple types of noise. You can try
perin. Perlin is smoother. If we
disable, if we decrease persistence, you
can see that Perllin has like these
small blobs and value noise is blocks.
There's also simplex noise that's a
different algorithm and you can see it's
at the same scale. It's higher
frequency. Simplex is higher frequency
than than parallel noise. However, I'm
not sure of simplex noise because it
looks like it's kind of repeating
itself.
Perilin is also kind of but less so. Now
noise I like most is called voron noise
because it has the most interesting
look. It's the most non it looks the
most natural to me. So I really like
voron noise.
Now all of these noises can also be
tweaked with the offset parameter.
The offset parameter
um is like a
imagine that this is a slice of a
three-dimensional cube of noise and
offset is shifting our Zcoordinate. So
we are scanning through this cube of
noise.
Now what is interesting is for example
if we duplicate the noise I can change
the frequency
and we put it into the offset and now
one noise is controlling the zcoordinate
of another noise scanning this cube of
noise. So we get a bit more interesting
patterns. Now this slider is not active
when anything is connected here. But
this creates some interesting things
like you know it's not just these
blocks.
Still value noise is a little bit
blocky. So we can use perin
uh or maybe use simplex on this thing.
And you see noises different noises
merged together give our different
lizards. This looks kind of like a
liquid or like some kind of growth. I
don't know. Let's increase the
persistence of our
of our final noise. And well, this is
our rust pattern. Now, I'm don't not a
fan of this exact pattern. Let's get to
our FBM noise that is providing us with
a information of where does our rust
happens. I'm going to increase the scale
to maybe five
by five.
And I'm going to copy the seed. And so
we can go back and just randomize a bit.
Okay, I already like this better.
Now maybe I need to decrease the
contrast a little bit cuz this seems
like the no there's just the rust is
starting too abruptly.
Okay, another thing I see, another
problem is that
even in places where the rust barely
barely is there, we already have a lot
of bumpiness. That's not what we want.
So, I'm going to add a math node
because this is our
this is our height map which we're
converting to a normal map here. So what
I want to do is modify this mask and I
want to insert a math node here. So I'm
going to connect the math nodes output
here to
to have it insert. And now what I can do
is switch this to power.
Now the power is neutral at one because
that's the input to the power of one
which equals the p the input. Now watch
what happens when I change this to two.
You see that?
Let's go back to one
and two.
Our spots that are darker than bright
than white are getting more dark. Now,
why is that? Well, if a value here of
any pixel,
if a value here is less than one, that
means that value times itself,
which is what power of two gives is
still clo farther away from one. So
basically 0.5 *.5 equals 255. This is
what power
uh function does to a normalized float
input. That's why we it's very important
that you understand what is the range of
values in your input because this is a
normalized input.
I can say okay I want higher power and
now everything that isn't
bright white is going to be less of if
of it it's going to be diminished. And
this gives me the effect that I want,
which is only the parts that are really
rusty become bumpy, which is what we
observe in the real world usually.
Now, another thing I can think of is
that what is kind of strange is that
this rust should kind of overgrow
the the diamonds because it looks like
it's so thick that it overgrows them.
So, what I'm going to change here is the
editive mode. I'm going to switch it to
lighten.
That might be a bit subtle. So, let's
zoom in, stop the rotation,
and look very very closely. So, let's
even blend it more so we can see this um
better.
Now look at the difference between this
part and this part and we can correspond
it here.
Okay, that's I don't have so much
zooming precision but same thing here.
Here is a clean diamond more or less and
here is a overgrown with rust diamond.
If I change this to
screen
that's kind of between honestly that's
interesting. If I switch it to additive,
you can see that
our diamond is entirely here. We can see
the small peak here. We can see all the
ramp. If we switch to lighten,
you can see that this thing shrunk as
this did as did this thing. And that is
because
the lighten mode is basically a max
operation. So filter
max.
If I reroute the inputs here.
Oh wait, actually I should reroute this
input.
Now the the value
max value
is um yeah the max function is taking
the highest of two inputs. It's not
merging anything. It's deciding which
one to use.
Lighten seems to be a bit more subtle
about this.
Um,
but that's because we're also using this
noise. So, if I didn't use the noise and
used uniform, I'm going to go grayscale
and just one.
We should get exactly the same result.
So, lighten
and
What is this? It's a diamond plate.
Huh? It's not the same. That's
interesting.
So, lighten seems to be a bit smoother
still.
Well, play around with the mixing modes
and you can discover some interesting
things. Uh, I'm going to again connect
our noise.
Now, hard mix doesn't seem to be doing
our us any favors. I'm going to use
lighten again. And so this looks like
our
uh rust is overtaking the diamond shape.
Now, maybe that's not what you want.
We're going to cut down on the amount of
rust in a moment when we add a mask, but
this is our baseline. Okay,
this isn't the best rusty diamond plate
you've ever seen, but this is your first
one. But it's it's already you know
conveying the message.
Okay. Now
our mask is this. It has no correlation
with the underlying geometry which is
kind of crap.
So, I'm going to take this aperture
input
portal uh and I'm going to use
our wh
our curvature
and blend that with
our mask in different ways. We'll have
some experimentation.
Okay, now it's going to blend this
default gradient. Let's not do that
curvature. Okay, so we want rust to be
in the crevices. So I would invert this.
I'm going to connect drop it here and do
filter invert. Let's click. Yeah, that's
great. So now
the top of the diamonds are black and
the crevices near them are bright. Let's
do that.
And now I'm going to just blend between
that.
Now look, let's switch this to overlay.
And just look
how much better this looks like. How
much better this works.
We actually have rust in the crevices
and less rust on the tops. Um, this is a
bit too extreme, I think,
but a little bit of it does wonders.
Okay, let's add another layer. That's
our curvature occlusion. Let's invert
this one, too.
Connect it here. I'm going to select all
of these and move them to the left so we
have a better view of what's going on
here. I could again do overlay
Now, because most of this is black, it's
going to greatly reduce the amount of
the rust that is not in the crevices,
which honestly I'm okay with. I think
that's okay. Now, the cool thing is
because the blend mode provides us with
mask inputs, we can add some extra noise
in here to make things more interesting.
So, let's go and do that. I'm going to
enter. Enter. I'm going to add another
FBM
node and I'm going to switch it to
Voronoise, my favorite kind of noise.
And let's do a high frequency. So, let's
go maybe 48 by 48.
Let's connect this to the opacity
and see what happens.
Neat.
That's that seems a bit more organic
now. I think it's a bit too selective.
So
maybe I'll dial this back a bit. It's
not It's a little bit.
It's a bit too much.
Should be a bit more uniform, I think.
Well, okay. Let's see what have we with
our HPIO. Okay. Same deal. We can invert
that.
Add a new input to our blend node. Click
here.
Uhhuh.
Let's go overlay.
And it further decreases the amount of
rust we have in non-luded areas.
Okay. So this is our rust.
We are 35 minutes in. So we can still do
something more. Maybe some scratches.
So
the basic basic thing is that roughness
of surfaces varies because
parts that are oluded are getting less
contact with other objects in the world.
So if we want to go with scratches, well
we can do right click scratches
and material maker provides us with this
kind of node that generates this
pattern.
Now
I think I need to reduce the width quite
a lot and the length as well. Maybe
increase reduce the winess.
Increase randomness.
Add more layers.
More layer. Okay, maybe that's too much
layers. Okay, that's let's try that.
So now we can add scratches as part of
our rust mask. That would mean
we will have scratches. We have more
rust where scratches are. Let's just
plug this in and look. Okay, that looks
like someone dropped a bunch of rusty
needles on top of the floor. That's
weird.
But if we just do maybe screen
still.
Oh, it's because we're also using this
for in our normal map. Well, that's
going to look weird.
I mean, with a super super low amount so
that we don't see it on the normal map.
That actually looks cool because you can
see there's a tiny tiny bit of this.
Yeah, but the fact that it's be it's
visible on the normal map. No, I don't
like that. That's uh
let's disconnect that. And we can right
click here and select the number of
inputs. So, we can reduce it to three.
That's going to remove the extra channel
ends.
Okay. So, we want to introduce our
scratches after we apply our normal map
or at least
not connected here.
So, let's maybe do something interesting
with this. Well,
um we can add another blend mode here.
Blend mode. Blend node.
connect this here to our roughness
and to our metalleness and roughness.
Where's our scratches? There it is is
and connect
scratches here.
Now, our scratches are not taken into
account with the normal map,
just the other things.
Okay, so we can add them in and they add
some rust. Now, why would that make
sense in the real world? Well, because
steel is steel is uh
suspect to corrosion.
So, um susceptible to corrosion. So, you
generally try to protect steel with
something that will help keep the water
away, water and salt to make it not
develop uh corrosion. Well,
that something is usually either paint
or some kind of coat. So, for example,
this diamond plate because it looks like
it's metal, it's probably coated with
some other kind of metal
uh or some oxide layer. But when you
scratch that oxide layer or that maybe
it's zinc, zinc plating is is a common
thing. Uh so zinc plating creates some
interesting patterns which we could
explore later.
maybe in a different video. And so when
you scratch uh the surface of this
diamond plate, you remove that
protective coating and so you make it
easier for rust to corrode it because
well there's a a bit of a thinner
thinner uh surface.
So we can make our scratches
this way. Now, it would make sense to
have scratches on the bumpy paintings
and not have them in the crevices cuz
like the crevices are protected cuz
there's like things they're covering.
So, I'm going to use our age
HBAO.
I'm going to drag it here into a math
node because I want to in I'm going to
just change the gamma on this. So, I'm
going to use power
and I'm going to use well one is um
neutral, two darkens the dark things.
I could go with a four. And now I can
invert this.
No, wait. Actually, no, don't invert.
This is good. This is good. This is
where the scratches can be. So now
here we are merging in the scratches.
Let's move this up and make it our
opacity mask. Let's see what happens.
Okay, we get less scratchy in the
crevices
and still scratchy on the flat parts and
on the tops. That's that makes sense.
One thing I don't like is that our rust
seems to be really really um blooming in
the corners. looks like a mold or
something. I think that's a bit much.
So, um I think I'm going to lay off this
to maybe 0 255. Um now that we could
have a little bit more.5.
Uh okay, let's go with 04.
All right, that's better.
Cool. So, we have some scratches. Now,
these are u thin or rather thin. These
are shallow scratches. they don't show
up on the normal map, but we can have
some deeper scratches.
Um, deeper scratches that would show on
the normal map. Now, to do that, we need
to kind of remap our normal map. Sorry,
our height map because our height map
goes from pure black to pure white. Um,
we need to offset that. So, we're going
to actually use a Well, there's a then
there's another node that you can use.
It's called tones map.
Um, it's a different node from remap.
Remap only takes float input, so one
channel grayscale to map tones. Map
takes color input, so RGB. And it also
defaults to not changing anything. It
has a bit of a different way. So, input
output minimum. So, we're remapping the
input minimum to be somewhere here.
Let's go here. That should not change
much about our look other than decrease
the depth of our normal map a little
bit, but should be pretty much
invisible. Let's switch this to zero.
You can see there is not that much
difference. Okay, let's go one, two.
It's not dramatic.
So what we can do now is
blend in
something that will like create actual
dents in our in our surface. So let's
create scratches again. And this time
they're going to be deep scratches. I'm
going to reduce the layers to one.
Maybe increase winess. I'll decrease the
length.
randomness angle.
Okay, I want to randomize this further.
And also, I don't like this quite
regular. So, I'm going to create some
noise.
Mhm. Now, I'm going to Oh, if we right
click, we get an a preview on this.
Interesting.
That's cool.
So, I'm going to click and drag to a
blend.
I'm going to click and drag here. So,
it's applying to everything. Uh, I'm
going to turn this down zero. So,
scratches.
And I'm going to use
some noise
as our mask for the scratches.
Now, this is white. The scratches are
white are bright on dark and I would
like to
um make these dents. So, okay, I'm going
to first switch to add
so you can see what happens.
So now we can add our scratches and they
will look like someone
dropped some hot slag or like there was
like melted wire dropped on this or
something. This is really weird. Um, so
first thing is I'm going to change the
noise pattern to be more high frequency.
Okay, I'm going to decrease the
persistence so it's a bit lower
frequency.
Um, I think I want to increase the
contrast honestly. So, I'm going to go
with contrast
to increase the contrast, please.
Maybe even more. Yeah, I really want to
chop these things. And I'm going to
lower the height.
Okay, that makes that looks cool. I
mean, this this now looks like someone
was welding and dropped some hot slag on
this. But well, we'll not want to don't
want to be additive. We want to be
subtractive. So, where is subtraction?
Well, we don't have subtraction. We have
difference.
And that should be the same. So now we
have deep dents. Something heavy fell on
the floor and make a dent. Made a dent.
And honestly that looks pretty cool. And
because we're doing this upstream,
all of our other nodes like HPAO,
occlusion, and smooth curvature, they
all take note of these dents.
And so we have natural things like rust
occurring inside of a dent, which makes
sense because there's going to be more
moisture in a crevice, etc. So this is
our very dented
floor.
I like how this thing looks. Yeah.
Okay. I think uh I think we'll call it a
day cuz we're approaching 50 minutes and
I don't want to go as long. So this is
our final result. It's a nice little
rusty floor. So yeah, thanks for
watching and I'll see you in the next
video.
Take care.