Hey, everyone, it's
Jeremy Seiner and today we're going to create a cellular pattern
most commonly found in leaves. Now, what's special about this process
is that it has multiple jumping off points that give you useful resources depending
on where you are in your creation process. So we start off by creating the pattern
as a tileable mask, which you can import into any program
and take it from there. But after that, if you want to continue
developing a material in substance designer,
we create a simple stylized leaf material that kind of reminds me of some lettuce. Now, once you have your cellular pattern
generator, you'll be able to create an infinite amount of cellular variations
that you could use as brushes or tileable masks in a render engine
or in substance painter. Now, it's a lot of fun.
So let's get started. OK, here we are in substance designer. Let's create a new graph. So file, new package, substance graph. I'm going to choose the metallic roughness
template and let's call this leaf cellular pattern. I'm going to set the size mode
to relative to parent. And the width is 4K
and then 16 bits per channel. I'm going to hit, OK. So here we are with our template graph. So let's start by creating
the larger cell shapes. These will blend with our smaller
cell shapes to add some diversity and compartmentalization. This process that we're about to do is a great technique
used to make voronoi patterns. So I'm going to start off
with a tile sampler. So spacebar tile sampler hit enter. Now, this tile sampler is going to create
small random points that will expand out
to create our voronoi pattern. So what I want to do. Let's adjust some of these
parameters here. So for the X amount,
I'm going to change this to seven. And for the Y amount,
I'm going to go with. Something like let's go with 11 for now. And then I'm going to change the pattern
here from square to disk disk in this case is a circle. Or a dot. And then what I want to do is
I want to bring down the scale here so that there's a bunch of small
dots. Point one eight is fine. And what I want to do
now is go all the way down to our color parameters
and change the color random property. So I'm going to drag this
all the way to the right. And I notice now that our dots
are different grayscale values. Now, I'm going to go back up to our
position properties of our tile sampler. And I'm going to adjust this position
random slider to give us all of these random dots
in a different spot, still tiling. If you hit spacebar,
you can check out the tiling here. The idea is I don't really want
any of these dots to intersect or at least I don't want many of them
to do so, so I'm just going to pick something like that's fine. And then what you can do is you can go
back down to the color parameters and you have this mask random property. So if I drag this to the right, it's
going to remove. Randomly. Some of our tiles or our circles. So I don't actually need
many of these dots because I'm working on a larger
cellular voronoi pattern, so the less dots there are, the larger
those cells will be. So something like point
seven, six leaves me with just a few of these dots,
and that's exactly what I'm looking for. So now let's use this information
to expand these dots out to create our voronoi pattern. What I'm going to do is click on my tile sampler, hit spacebar
and bring it a distance node. So spacebar distance. And I'm going to connect this tile sampler to both of the inputs
in our distance node. And what I'm going to do
is bring up the maximum distance here and watch how this now expands
to create our voronoi pattern. Now, if I bring this
all the way to the right and it goes to 256,
you still see some gradients here. It hasn't quite filled
in these shapes entirely. So you just fill this with a
really high number, like a bunch of nines. Hit spacebar and now it's
perfectly flat voronoi values. And if I hit spacebar to see the tiling,
you see it tiles nicely and we get those shapes. Now, what I want to do is
I want to get the edges from our shapes. And that's why in our tile sampler. I went down and chose
in the color parameters to increase the color random here,
because if I brought this down so that they're all white, the distance
node wouldn't really be able to calculate where these different dots intersected
when they expanded. So if I bring this back up... I'll scroll all the way down to color
and increase the color random back to one. We can now get our shapes. So let's get these edges. So I'm going to click on my distance node and hit spacebar
and get an edge detect note. And this does exactly
what it says it does. It detects the edges
where these grayscale values differ and so automatically, you can see
we're getting some roundness here. You can adjust the edge roundness this to
make this a little more organic looking. I'm going to go about this
in a different way later on. So I'm just going to bring
the edge roundness down to zero and we can change the edge width here. I think that's fine,
one point seven seven for the Edge Width and now I'm going to focus on
making these shapes slightly more organic. And one way to make that happen
is by blurring these lines and using a histogram scan node. So after the edge detect
when it hit spacebar and bring in a blur. And a histogram scan after that. I could see we're running
into our outputs here, so I'm just going to move things
over a little bit to get some room. And so if I double click on my histogram
scan and bring up the position, we're just going through that histogram
and finding our values. What I'm going to do
is bring the position up to point five and bring up the contrast to one. Now, that might be a bit weird to do so. But check out what happens if I go to
my blur and I bring down my intensity. As I increase the intensity of this blur, you can see that
we're rounding out these corners and so we can play with this a little bit,
I can bring down the position , for instance, and increase
the blur intensity. And this is just going to give us more of those rounded corners,
it gives us more control with these nodes, in fact, I can increase this intensity
to something like five and then adjust the position
on our histogram scan. And you can see what kind of neat shapes
and patterns we can come up with here. I think what I want to do
is really bring down this intensity. One point five eight here, and then, yeah,
I'll bring that position back up to if I double click the histogram scan
to see what I'm doing in my 2D viewport, somewhere around zero point five. And now I've got some nice
organic rounded corners here. Depends on how you want to do it. You can get a very similar effect here by
using the edge roundness slider as well. So if I go between the two. That's what we get now, our cells are looking a little
too artificial and uniform, so let's distort them a little
with a couple directional warp nodes. Let me bring in a directional warp node
by clicking in the graph spacebar directional warp. And the thing we're going to warp
is our histogram scan with our cells the way they are. And we're going to warp them
with a noise in our intensity input. So that noise that we're going to use
is a Perlin noise. So I'm going to click on my graph
and bring in a Perlin noise. So I'm going to hook up this Perlin noise
into the intensity input. And if I double click
on my directional warp, you can see the weird black and white dots
from our Perlin noise are distorting and pushing our cells so I can change this
intensity of our directional warp. And you'll notice
how that warp is creating more of an organic random
shape with our cells. Now, I think these small dots from our Perlin noise
are a bit too small. So let's adjust the scale parameter. If I bring down the scale,
you'll see it zooms in here. So maybe I'll go for something more like because I want this particular warp
to be a little more subtle, but have a large round
swooping warp shapes, if that makes sense? I'm going to keep this scale
to around four so we can have this really zoomed in noise
to distort our shapes. So if I double click the directional warp,
you can see that slightly adjusting what our cells are looking like. Now, this doesn't seem to be enough intensity for what I want
so I can input a larger number here. So if I choose something like 50
and now I adjust the intensity slider, we're getting a lot
more randomness in our cells and that distortion
is looking a lot more organic. It's also nice to know that you can
change the warp angle if you'd like. So if you want to push
these cells up or down in any direction, you can do that, too. I'm going to keep mine for now at zero turns and zero degrees,
which pushes everything to the left. So this takes care
of our larger distortions. Now, let's add some finer detail. So I'm going to do another directional
warp here, spacebar directional warp. I'm going to plug the previous
directional warp into the input and the noise that I want to use
as my intensity input is going to be something a bit more sharp. And the crystal one
noise is perfect for this. So I'm going to hit spacebar
and bring in a crystal one. You notice how we have these nice,
sharp, intricate, crystal looking distortions. So what I can do
is I can bring in that crystal one into the intensity
input and see what we've got here. And so, yes, you can see we're getting
a lot more of that jagged fine detail. And so don't forget,
we can change the scale of this noise too. So if I bring this down, just like our
Perlin noise, it sort of scales things up. So maybe I'll go with something like 16. Go to our directional warp
and I can adjust this intensity. And so now we have more organic
looking shapes here. If I toggle between the two of these, you can see
we have our initial directional warp and now our secondary directional warp
to give us that finer detail. So now we've created those larger shapes. Let's create some smaller shapes
using a different method. So I'm just going to move this over
a little bit to give us some space. And I'm going to start off
with a cells 4 noise. So spacebar cells
and then we have one, two, three, four. So you can see here now
we have a voronoi pattern similar to how we had over here
and with our distance node. However, the only controls that we have
with our cells 4 noise is the scale and the disorder. So with a method like the one that we used
previously, we have a lot more control as to how many cells we have,
what their sizes are, the position we can use our tile sampler
to continue playing with the randomness of the scale
and the random position. However, with the cells 4 noise,
we do have scale and disorder, but we don't have that much control. So I mentioned before,
we have our larger cell shapes then we also want to break this
into smaller cell shapes. So let's focus on those
smaller cell shapes. I'm going to go to the scale
parameter of my cells 4 and increase it. And that means it's
going to make them smaller. Something like twenty seven
looks pretty good. And just like before, I'm
going to bring in an edge detect. So I'll select my cells 4,
hit the spacebar edge, detect it, enter. And you'll notice we get this. And that's because our edge roundness is
by default set to four. So I'm going to turn that
all the way back down to zero. And I can adjust that edge width. And this is how thick
those cells are going to end up being. So I do want them to be rather thin. One point four nine looks good. And then these still look
pretty artificial. So I'm going to warp them similarly
to how we warped our larger cell shapes. So let me get a directional warp. Let me plug the edge detect
into the input, and then I'm going to bring in another crystal one noise. So we're using a new crystal one node here
instead of reusing our previous one, because I'd like to increase the scale
parameter to something higher, making the distortions
from the directional warp a little more precise
than the one that we used down here. But it's always good practice
to ask yourself, can I reuse noises or nodes that I've used previously
to increase the performance of your graph? So I'm going to take my crystal one and pump this into the intensity
input of our new directional warp. Let's see what we got here. Now,
the intensity is way too high. And I want to check the scale here. I'll start by looking at it a thirty two. And let's just bring down the intensity. So a little goes a long way here. I can bring the intensity to zero
and bring this up to one. That's pretty good, I think, somewhere
around three or four is all that we need. OK. Looking fairly decent here. We can look at this differently as well
by after our direction of warp, I'm going to bring in an invert grayscale and that lets us see our lines
just a bit better. So you can see we have two
different patterns here. We have our large cells
and our small cells. And now what I'd like to do is offset
our smaller cells based on our larger cell shapes so it doesn't look like our small cells
are stamped over the big ones. Now, this is a great way
to add more realistic detail to materials that have cracks or similar voronoi
patterns across the entire material. So I'm going to add a directional warp to our invert grayscale,
which is on our small shapes here. So spacebar directional warp. And that's going to automatically
plug it into the input. But what are we going to use
to warp our small shapes? Well, we need to generate some random grayscale values from the larger shapes using the flood fill nodes
in substance designer. So what I'm going to do is
get a flood fill node here. So spacebar, flood fill. Now, what I want to do is connect our
directional warp into our flood fill node. So because all of our cells here are basically white islands
separated by a small black channel, the flood fill node is able to recognize
that each of these are separate pieces. Now, what do I do with this information? Well, there's a bunch of flood
fill family nodes. So if I hit spacebar
and type in flood fill, you can see we have all kinds of nodes
that take flood fill information in here. So we have flood fill to position, flood
fill to grayscale. We can do random colors and gradients. It's great to check all these out
to see what you can accomplish. What we're going to use now is the flood
fill to random grayscale node. So if I plug in, you see it wants to get
flood fill information here. If I plug in the B Box output
into this flood fill input, you see, we now have random
grayscale values here coming from our cells Now, you might be asking
why didn't I go back to something like our distance node,
which already has that information ? Well, we've done a lot of processing
through this. We've warped it. We've added an outline
by using the edge detect. So doing it this way allows you to take these shapes
that already have all this processing and get you back to something similar
with these random grayscale values. So let's hook up this new random grayscale
map that we've made and plug it into the intensity
input of our new directional warp. And so now if I double
click this and I adjust the intensity, you can slightly see that we're offsetting those smaller cells
by our larger cell patterns. Now let's increase this to something
like three hundred. This gives us a much larger
scale of our slider here so I can really see what's going on
and I can just mess with this to see
what kind of pattern I'd like to get. I can also adjust the werp angle to see if I can get something that I like. You can always adjust this after the fact. So I think an intensity of 300 is fine. And I've just adjusted the warp
angle a little bit. Now let's combine
the two by blending them together. So let's get a blend note. Spacebar blend. And let's take the directional warp from our small shapes
and put it into the foreground. And I'm going to move our flood
fill stuff up here for now and get the directional warp
from our large shapes and plug that in to the background. Now, you'll notice
that we still have this inverted and these big ones not inverted just yet. So what I can do is I can invert these to make sure we're
dealing with the same kind of information. So I'm going to select the connection
between the directional warp here from our large cells
and this new blend hist spacebar and type in invert
for an invert grayscale. So now these are both inverted. So what I'm going to do
is go to our blend node and I'm going to change the blending mode
of our blend node to add. And as soon as I do that and you can see
I can change this opacity here. We've now successfully combined these lines together to make it look like
we have large cells with smaller cells compartmentalized
in the way that we'd like. Let's take a look
at what we're doing in our 3D view. Seeing as we haven't used it at all
so far in this video. So I'm just going to move these things
over a little bit. And I think I'm just going to look
at the color information on a cube here. So I'm going to take the uniform color
that we have and just move it to the side and connect our blend node
here to the base color output. And that's going to attach it here
and view it in our 3D view. That's looking really cool, actually. I can also take a look at this by going
to scene and going to rounded cylinder and usually a rounded cylinder is how I like to view things
because it has curvature, but also a flat space as well,
gives me the best of both worlds. Now, there's one more thing I want to try
in terms of viewing our material here, and that's by tiling this material twice
without changing anything in our graph. And this just shows me
what it looks like in the 3D view with this pattern
repeating or scaled down. And I don't have to worry about changing any parameters
or properties later on in my graph. So I'm going to go to materials,
default and edit. And that was all done
with the menu in our 3D view. And then I have these properties
over here, up here. You see, I have this tiling parameter
and I can increase this. And it's just going to tile
this multiple times over our 3D shape
that we're dealing with in the 3D view. So I can double click
this to select and change the value here in the tiling property
and change it to two. And you'll see now
it repeats across the whole thing twice. And I think this is a good way
to look at this material. Having it back at one, if I just hit
the reset button, it's a little zoomed in. And I think I'm going to want to probably apply
this material scaled down a little bit. So I'll take this back and set it to two. So if I just zoom out a little bit
with the scroll wheel and see what we have so far, what I like about this process
is that you have different stages that you can stop at that provide you
with useful resources in your pipeline. And what I mean by
that is right now we have a black and white mask that can be used
in other applications. If I hit spacebar you can see it's tiling
and it's perfectly usable. So some examples could be
that you could import this into unreal engine
and build a shader in there, or you could apply this material
to a mask in substance painter. You could use it to drive
the color subsurface, scattering anything you'd like. Now, as an extra option, here's
a quick process to add a little more detail
and dimension to this mask. I'm going to select everything
we have so far before our outputs and give us a little more room. And then after our blend here, I'm going to bring in something
called a non uniform blur grayscale. Spacebar, non uniform . You see, we have that non
uniform blur grayscale. The non-uniform blur grayscale
node is extremely useful. It can provide some realistic depth to your mask
if you'd like to use it as a height map. It will round out the edges and corners
with a soft gradient to make these lines
more like veins or pipes. So let's see what it does. So if I take the output of our blend
and I plug it into the grayscale input and also the blur map
input of our non-uniform blur grayscale and double click,
let's see what we got. Well the intensity is a little high here. So let me just take down the intensity. And you can see what it's doing here. It's added that soft gradient. And if this were a height map,
you would see that these are rounded off. So they look more like veins or pipes. So what I'm going to do in this...in
the parameters here is increase the samples all the way
up to 16 and the blades all the way up to nine. And I can finely tune
and adjust this intensity. Even something as minute as point seven here in the intensity still adds
some great information here if I zoom in. This is great, but I think I want to add
just a little more distortion in organic ness to this. So what I'm going to do
after the non-uniform blur grayscale is bring
in another directional warp. And the noise that I'm going to use
is another crystal noise, crystal one. But I'm going to bring in another one
because I want to change the scale again. So space bar crystal one. Let's hook this up
into the intensity input. And I think I want to really increase the scale here. OK. So I'm going to pick something
like fifty two because I really want these small edges warping what we have so far, and let's bring down that intensity. And we only need a little bit. So one point one seven here,
if I switch between the two. Just gives me a little bit
more of that detail. Now, as I look at these, these lines are so clean and nothing
organic really looks this clean. So let's add some noise here, and I'm going to do that
with a slope blur grayscale. So spacebar, slope blur grayscale, excellent node
And I'm also going to bring in a clouds 2
just like the directional warp, the slope blur grayscale requires
a noise as its slope input. And this is what distorts
the input using these parameters. So I'm going to plug the directional warp
into the grayscale input and the clouds
to into the slope input. And right away. We get this mess. So I'm going to increase the samples. It's basically like the resolution
or iterations of this filter. So I bring the samples
all the way up to thirty two and I'm going to highly bring down the intensity. And we can zoom in
to see what it's doing here. This is something that you probably have
to type in a parameter for instead of use the slider
because it's not quite sensitive enough. Maybe something like point zero two. And now I get some nice noise around the edges here
if I switch between the two. That's the clean version. That's the slope blurred version. Nice detail there. And so after these
steps here with the non-uniform blur, directional warp,
and the slope blur this completes our more detailed version of our mask. Now, both the original
and the detailed versions have their place in a pipeline, depending
on what you'd like to use it for . So I'm going to comment these just so we can establish
the certain stages in our graph. So this is our blend node where we combined
our big and small shapes together. I'm going to right click
that and say add comment and I'm going to call this mask. So you can see that
adds a small little comment there. And I'm going to do the same thing
over here to our slope blur Grayscale, right click, add comment. And I'm going to call this detailed mask. So at any point, you can click and find, OK, this is where I could export this mask
or I can export the detailed version with the height information
and the non-uniform blur. Excellent. If at any point you'd like to export
what you're seeing in the 2D view, you can double click on something
and click on this floppy disk icon
just to save this as a bitmap. And if you want to export
any of these stages, go ahead double click and then click on the floppy disk
to export it out. As a final part of this video. I thought it would be fun to apply
some of our substance designer skills and create more of a finished material. Why not quickly create
a simple leaf pattern using the masks that we've created? Well, there are many use cases for
the cellular leaf pattern that we've made. But here's a simple way
to make a stylized material for any Close-Up leaf shots
that you might have. So what I'd like to do to keep organized
here is I'm going to select all of our nodes here before outputs and hit spacebar and type in frame. So I'm going to make
a frame around all of these. And this is how I keep
organized in my graphs. And so what I'm going to do
is go to the title here, and I'm just going to
call this cellular pattern. And I think I want to keep with the green
theme here and just make it green. So now I'm going to do something
I don't usually do. And that's start off by creating
the albedo color information first. So I'm going to go with a simple green
color that has some sporadic dark and light values. And in this case, I'm also going to make
the veins a bit of a lighter color. So I'll show you what
I mean as we go along. So right now, I'm going to get rid of that uniform color
that we had from our template and maybe just make some room
by moving all this over. First thing I want
is another clouds 2 noise. So spacebar, clouds, clouds 2. And I'm going to
keep the settings as default. Next up, we're going
to do, though, is after the clouds 2. I'm going to bring in an audio levels. So spacebar, auto levels. And this does something kind of like what you would do in maybe Photoshop
or maybe the photos app on your phone. It adjusts the values in the image
so that it maximizes the total use of the histogram. So you can see our darks and lights
just become a little more contrasty. And the reason why I want to do that
is because I like to get the maximum amount of grayscale
information in this noise to drive the gradient map node that I'm about
to use to remap my colors to these values. So let me get that gradient map node now. I'm going to hit
spacebar gradient map at the top there. And I'm going to go to my gradient editor
and I'm going to use the pick gradient option and select
some colors from a leaf image. So I've just gone to Google here, and there are plenty
of leaf images to choose from. I'm going to choose this one. And what I can do is I'm going to take
my pick gradient button and then just drag across
a small part of this leaf. And I'm mainly aiming
for just the green parts and not the light veins
in between everything. So I've gone ahead and I just
slightly dragged across that spot. And I got two keys here, and I made sure
that my precision is pretty low. And that's pretty much all you need. And that's because we have that auto
levels here giving us a lot of contrast. You could use a levels note if you wanted
to, to adjust it even further. I thought this was fine. And so you can see that
our light green to dark green is being mapped
and you get a nice variation here, kind of organic, swirly,
cloudy background. Now, let's add on our veins
or our cellular patterns that we've made. So I'm going to get a blend note here. We're going to be adding on these shapes. So I'm going to get the gradient map
and put it into the background and then find our detailed mask here. And plug that into the foreground. Now, you notice we have this
red dotted line, and that's because our slope blur grayscale is outputting
grayscale information and we can't blend color information, which is this
orange connection with the gray. We can have two of the same,
but we can't have one of each. So what I'm going to do is select the
connection from our grayscale information. And bring in a gradient map node, and this automatically converts
that grayscale information you see here to that orange output
or color information. That's a quick way to convert grayscale
to color information. So now if I get my blend,
I can change the blending mode to add. And so now, as I increase the capacity,
you can see that the light values from our cells is being added on
to the gradient map and I can just fade on the light veins or
cells onto our gradient map. I don't really need that much here. So maybe something like point
two eight looks good. We can always check this out
by connecting what we're doing into our base color output
to see what's going on in our 3D view, and I think that's looking
pretty good, actually. So we've got our color information. Now let's use our cell's mask information
to create our height information. So what I like to do. We have three bits of information
that we need to generate height information for our material. We have our normal map, our Ambien occlusion and,
of course, our height information. And so to make it
so that we can connect one input pin from what's going on over here
and distribute it to these three different outputs, I like to create
something called a final blend. So I'm going to hit spacebar
and bring in a blend node. What I'm going to do is I'm going to connect this
blend to the normal conversion node here, and I'm going to remove these two uniform
colors from our template. We need to provide
our own information here. So I'm going to hit
delete and delete those. For the ambient occlusion,
we can't just connect our height information and generate those shadows
automatically from this output. We need to generate it with a node
that does that for us. So I'm going to hit spacebar
and type in ambient occlusion. Now, if you're using a later version of substance designer, you're going to have two versions
here, depending on how fast your machine is or how quickly
you'd like to get some things done. You can choose the horizon based ambient occlusion
or the ray-traced Ambien occlusion. For now, I'm going to choose
horizon based, because for this particular example,
the difference isn't striking enough for me to go for the processing power
of the ray traced version. So I'm just going to choose
the HBAO version. I can connect that HBAO Ambient occlusion node to the Ambient
occlusion output and now connect our blend
to that Ambient occlusion node. And I'm also going
to connect our blend to the height. Now, it looks a bit crazy here. We have different colored connections
and dots going on, and that's because our blend doesn't know
what kind of information it's dealing with. It could be either color information
or grayscale information, but as soon as we plug
something into this, it's going to figure itself out
and fix all of our connection errors here. So now all we need to do is connect
something into our foreground here for it to distribute to these three different outputs for us,
which is really handy. Now, before we do that, though,
we need to make some adjustments. So I'm going to go to our mask here,
our original one, the one that doesn't have the detailed information. And I'm going to branch off
a connection from that mask. And bring in an invert grayscale so you can see now that we've inverted it. We have our veins
which are going to sink into the material, and we have our cells which are white now, which will pop out
from the surface of the material. And now the reason why I'm using the mask without the extra detail added onto it is because I want to use another non uniform blur grayscale to round this off
and make it a little more clean looking. So I'm going to go to our invert grayscale
here of our first basic mask here. And I'm going to bring in that
non uniform blur grayscale. Again, I'm going to connect
both of our inputs here. You can see we're getting
some really cool information. It's a little bit pixilated, and that's because we need to go to the samples
and blades and increase those. So I'm going to increase the samples
all the way up to 16, the blades all the way up to nine. And then I'm going
to dial back that intensity. It's getting a really cool result. I think three point nine two. Looks good. So now you see we have lots of nice
depth here from our cells. So let's see what we've done so far. I'm going to plug that non-uniform blur grayscale into that final blend
that we created in the foreground here. Now you can start to see
we're getting a really cool, scaly kind of material from the cells and you can see how it's bumping out
based on how we created that height map. I want to make a couple of adjustments
before we go any further here. And that's to do with how these nodes here
are interpreting the information and distributing it
out to our outputs. Right away, I'm noticing that our ambient
occlusion node is way too strong. So I can decrease the height depth here. And that's going to remove
some of those shadows that it's those fake
shadows that it's creating. We only want a tiny bit. Point zero one, I think, is just enough because we're getting a nice
rounded look here. I also want to take a look at the normal. And this is the normal conversion
node connected to our final blend. We can adjust this intensity
and I can either decrease it. Or increase it. I think for now, I'm going to want to actually increase it
just a tiny bit. One point three five looks OK for now. Kind of looks like a bunch of raindrops
on a windshield or something like that. So now just with this non-uniform
blur grayscale from our mask, we created that height information. We've got some nice big bumps here. But now let's add some micro bumps
for a little bit more height detail, what I want to do is bring in a fractal sum base node, fractal sum Base and the fractal sum base node
gives us lots of control when creating really neat noises like this where
I want to create some small bumps here. It takes a lot of the fractal sum nodes and combines them together
so that you can do a lot of things with just one node
and a couple of parameters. For instance, I can bring up the roughness
here to to adjust the max level here, because this really adjusts
the resolution of our noise. And I kind of want some softer,
relatively small bumps. So maybe a size of like nine here
for the max level. OK. And it's looking pretty flat. So what I can do is add a levels node
after the fractal sum base and I can adjust these top left and right triangles to add more contrast
in, I can fiddle with this for a little bit just so I can get more
light and dark values here. So I think that's looking pretty good. What I can also do
is go back to the fractal sum base and adjust this global opacity value,
and that lightens and darkens the noise. So one point zero eight there. And the levels that's looking pretty good. Now let's blend our levels with our height map that we have so far,
so blend node... I'm going to put the levels
in the foreground and the non-uniform blur grayscale into the background
and change the blend mode to multiply. So now, before I adjust this opacity, I'm going to plug this new blend
that we just created into our final blend here
- connect it to all of our outputs, you can see what it does,
it's added those small bumps. And what I'll be able to do now
with our new blend is bring down that opacity if I'd like to. Let's see, I could dial it
down a little bit. Yeah, I think I actually liked it at one. Because if we zoom out here,
you get some nice, juicy detail. Up to you, though, now it's definitely looking a bit shiny, so it's time to focus
a bit more on our roughness. And so let me just move
these things over a little bit. And now I'll focus
on the roughness output. You can see we have a uniform
color from our template. And if I bring up that grayscale value
to closer to white, it's less of a shiny material than if we
bring it down to the darker values. So I'm going to use this uniform color
to set the baseline for where I want my roughness to be. But I do want to add some variation here, because nothing is completely
the same roughness. Not usually, anyway. So I'm going to get a blend node here, a new one,
and I'm going to connect this uniform color that was already connected
to the roughness. I'm going to plug
that into the foreground of this blend. Now for the background,
I want to get some random information here, which we already have from this
fractal sum base and this levels. So I'm just going to take this levels
and get a new connection and connect it to the background of this
new blend for our roughness. And now if I double click on the blend,
I'm going to leave it on copy. In fact, let's connect our blend
to the roughness output here on the right. And so if I adjust this opacity, I can let some of that noise
that we generated come through, and this lets us control
the overall roughness. I can change this roughness
down to something a lot more dark. And now overall,
the material will be a lot more shiny. If I control shift and right click,
I can rotate the light here. I can bring this back up. And while still getting
some of that variation. It's a lot less shiny. That's a nice way
to really give yourself some control. And it's a great example of reusing notes
that we've already created. So this is what our material
looks like so far. And I can move that light again. Control shift, right click. And now, as an added bonus,
if you're working on the underside of a leaf,
you can invert this height information. So if I go find my height information
here, which is down here, there's the non uniform blur with the noise that we added
going into this final blend here. If I click the connection between these two blends
and bring in an invert grayscale. It now looks like we're looking
at the underside of the leaf and the veins are
more closer to the surface. While the bumps are pressing inward so you can click on this invert node
and just change from true to false, false to true,
depending on what you're working on. And you get two materials in one. So to review everything,
we've created a cellular pattern starting off by doing a basic voronoi
operation with a tile sampler using the distance node. And doing lots of manipulations
with directional warps, as well as creating smaller cells
with the cells 4 noise, grabbing those edges and doing
some continued warping and distortion. We even use the flood fill nodes
to create a distortion map for our warp. And we also made a detailed version
of this mask that we created using a non-uniform blur grayscale
and also a slope blur gray scale. We then use these two different masks and applied it
to creating our own material here. So we created our color information
with a gradient map and a clouds 2 noise. And then we also created
our height information with our handy, non-uniform blur grayscale, some noises
and pumped that into our final blend. We were also able to reuse that fractal sum base and levels node
to adjust our roughness. And we did that to create
a very stylized, simplistic, almost Lettice looking material. I think this is a great jumping off point, if you'd like to take this Lettice
material further, you could add some subsurface scattering
in your render engine and use the black and white
mask has an intensity input, although you might need to invert the mask
to get the results you want to get there. Now, you could also use the albedo
for the scattering color. There's really a lot of possibilities
with what we've created today. Now, initially, I created this technique when I was working on a project
that required me to texture a plant where I knew the camera
was going to be very close to the subject. Now, I ended up exporting the black
and white mask as an image and imported it into substance painter. I could then apply that to
some layers, create some masks there and add some hand
painted variation. I think it's a great example of using
proceduralism and hand texturing together. Now, I'll never have to make
that cellular pattern again, or I could just change that random
seed of my graph to get multiple variations
of that particular pattern. Now, I hope you've enjoyed this tutorial. If you're new here, welcome. Hi. Hit that subscribe button
if you'd like to see more texturing and material making tutorials. And if you like this video
hit the thumbs up. It lets me know that you are watching and that you'd like to see more videos
like these. Now, that's it for now. I'm Jeremy Seiner. Thanks for watching.
And I'll see you in the next video.