Submind YouTube summaries
Thumbnail for Material Maker 1.6 - user interface and making your first glorious material

Material Maker 1.6 - user interface and making your first glorious material

Watch on YouTube

Video summary

The tutorial introduces Material Maker 1.6, a powerful tool for creating procedural materials primarily designed for the Godot game engine but also compatible with Unity, Unreal Engine, and Blender via GLTF export. The presenter begins by exploring the main menu bar, highlighting features such as loading community-created projects to learn from others' workflows and exporting materials in various formats including standard PBR textures and channel-packed OM files for better performance. A key tip shared early on is adjusting the idle FPS limit in preferences to one frame per second when the application loses focus, which significantly reduces graphics card load during non-active periods. The interface overview continues with a look at the environment editor, where users can download and apply different lighting setups like a Venice sunset, and the help section, setting the stage for a deep dive into the node-based creation system. The core of the workflow involves using the left-side library panel to drag nodes onto the canvas, where connections are made to define material properties. The presenter emphasizes the versatility of noise generation, particularly Fractional Brownian Motion (FBM) noise, which is essential for creating chaotic yet semi-coherent natural patterns. A crucial concept explained is the random seed; nodes that generate randomness possess a die icon allowing users to click to regenerate patterns or right-click to lock a specific seed for consistency. The tutorial demonstrates how to manipulate these nodes to create complex textures, such as using an edge detection node combined with an invert node to isolate specific areas of a pattern. This isolated data is then connected to the roughness input of a material node, allowing the creator to make certain parts of the object shiny while keeping others matte, effectively simulating materials like silver wire on a black ball. To refine the quality of the generated textures, the video addresses resolution and filtering issues that often result in jagged edges or pixelation. The presenter explains that Material Maker generates separate textures for albedo, metallic, roughness, and normal maps, which can be exported individually or packed into a single OM file. To smooth out jagged lines without losing detail, the tutorial introduces the "super sample" node, which works by copying the input texture, shifting it slightly, and averaging the overlapping pixels to create a smoother result. The presenter also showcases an efficient workflow trick using reroute nodes to quickly insert math operations into existing chains of connected nodes without manually reconnecting every single wire. Finally, the material is exported as both a source project file for editing in Material Maker and as texture files ready for use in game engines, concluding with a successful test where the created material is applied to 3D objects like barrels and containers within Godot.
Read the full video transcript
Hey, I'm Anfa. Welcome to this tutorial for Material Maker. I hope to show you the basics. We're going to go from broad strokes to fine detail. Let's go. So, when you start material maker, this is what you're going to see. On the top we have the menu bar and there we have various things regarding creating loading projects. A notable thing here is load material from website where you can explore materials created by the community and you can find some that I made myself. You can double click on any of them, open them up, and see how they are made, which is an incredible way to learn material maker. But we're going to check this out later. So, other things of note here is exporting material. So, material maker is has support for a few game engines. This is GDAU game engine 3 and 4, Unity and Unreal Engine 4 and five. It can also export a generic glTF plane for a standard PBR materials that can be in gltf files. So, this should work in anything. And also Blender, which is kind of a hack on top of the GDO export because it really exports a good thing, but well, there's a different texture layout. Never mind. And of course, we can close and quit. Next, edit. Here, the important thing is preferences on set theme. If you like light themes or something else, colorful themes, you can use this in preferences. Something I always do is go here and change the idle FPS limit from 20 to one. [clears throat] This makes material maker, if I click away from it, so it loses focus, you can see that it switches to one frame per second. And this helps reduce load on your graphics card when you are not really working with material maker at the second. So highly recommend it. Next we have view. You can open different panels here. These are mainly used for painting the brushes, layers and parameters. So we're not going to use those. You have tools. You can create a group. Make selected nodes editable. I generally don't access this menu. I just use Ctrl G and Ctrl W shortcuts. You can also create any node and this this is useful because some of these nodes are not accessible through other means because some of them are specifically meant for painting. Uh but well this is something we should investigate further. Then there's add selection to library. You can create your so your own libraries. I have created a library called Anfa PBR workflow. I'm going to show it to you later, much later. And we can create a screenshot of the current graph, which will zoom around this canvas and show us all the different nodes and stitch it together into a nice big screenshot. So, we can print it in A2 format and put it on your wall [snorts] or on a t-shirt. So, that's the tools environment editor. This is when you can where you can download extra environments. I really like this Venice sunset one. So I click okay. It's going to download it. And now you can change your environment here. So I can click Venice sunset. I can also deselect clear background to see the actual um environment map in action. So that's that's a thing. That's the environment editor. And finally, help. There's stuff here. Well, we can learn. What is this? Material maker 1.6 made with GDO engine. Cool. All righty. So, that's the top menu. Now, the left panel here, you have something called library. And there's a bunch of colorful buttons. These colorful buttons move you to a category of nodes. So there's for example pattern nodes which we can click and drag and this is one kind of a pattern we can have. We can change the parameters of this pattern [snorts] noise. Something we're going to use over and over is FBM or fre >> [gasps] >> fractional brownian motion noise. My tongue isn't exactly swift these days. This is something we're going to use over and over and over because if FBM is basic tool of modeling chaotic yet semi-coherent things that happen in the world. I'm going to disable I'm going to do clear BG. So we have a defaultish view and I'm going to go with studio because that's kind of the default way thing we have. Going to zoom this in. I'm doing this with mouse wheel by the way. It's not showing in here but this mouse wheel. By the way, I've run a program that shows you the keys I'm pressing. So if I type A B CD FG, you can see that I'm typing. That hopefully helps you follow along. Cool. So now we made two different things. We we've dragged some nodes. Um it's incredibly fun to explore what all of these do and what you can make with them. We're going to slowly slowly chew through some of them at least. It's going to be hard to cover all because there's just so much, but they're all amazing and very useful. Okay, so this is the library tab. On the bottom you also have browse community nodes. This is similar to the open project from website but here it's not entire projects it's just nodes. So you can scroll and select something and decide okay I want that. Voronoi++ for example is a very interesting no node and it's made by uh author of author of material maker and it's really interesting because we can feed density and we can do crazy crazy crazy crazy things. like uh yeah something that is uh much more varied and different. So that's our library. We have a filter so we can search for noise for example and you'll find all kinds of different noises. And of course you can just click and drag. Here's white noise. So this generates completely random pixels at a given resolution. Now since we're talking about randoms noise and things, you might wonder what is this little die icon? Well, this is to control random seed. So some nodes you can see not all of them. Okay, let's let's find something that doesn't have a this this doesn't have a an random seed. Okay, maybe we can have something else like pattern generic. Yeah, this also this doesn't have a a a random seed. So, any node that can generate something random, it's going to have a random seed. If you leftclick, it's going to just create a new random seed. So, you can just change the pattern. This is very useful. I use this all the time, especially for the FBM noise, because right out of the box, if you just keep the defaults, it's going to look the same every time. And we don't want that. We want this noise to be different every time. So, this is just you can, you know, randomize until you find something that looks better. Like, I like this cuz it's more bit more uniform. There's not this very low frequency content here. Now, if you right click here, you can lock the seed to make it impossible to change it. So you can't click this if you're like that's the seed I want and nothing else. You can unlock it or you can copy seed and paste it somewhere else. Now these both use the same seed. Neat. So that's the random seed and you can see we moved from library to the canvas. So this is canvas. This is the place where you place nodes where you make connections between them. You navigate by clicking and holding your middle mouse button. You use your mouse wheel to zoom out and in. If you left click, you can select a node. If you left click and drag, you can box select multiple nodes. Using control, you can click and select multiple nodes. I think using shift doesn't do that. Yeah, if you click and drag with control, you can add to your selection. And if you click on something that is selected, you can deselect it. But you can't deselect with box selection. At least I can see a way to do that. If you right click, what happens is a quick pallet pops up. And this is a very interesting thing. So first thing we have the filter. This is kind of like a mini version of the library we have on the left. So what happens here if we can type noise if we do noiser then we found dinoiser and we can just hit enter and it's going to create the node that we found which is neat. Now we can also just scroll here and look at cool things and say oh I like this. What does that do? Uh, what does detect edges simple do? Okay, let's go here. Let's put this through that and see. Um, it seems like it drew some edges which is interesting. Maybe we can do this other one. Right. So you can see that um if I click on a node it's topmost output is going to be selected and presented in this 2D preview. So we're now talking about this right hand side. The right hand side is our previews. Above we have preview 2D and below we have preview 3D. So preview 3D gives us the an a look of our entire material. So you can see here is our material output node or like how is this called the material node. Yeah. So this is where we feed our output. So if I take this click here click on this output click and drag put it into albido. Now this weird spider web actually not spider but some kind of web pattern is the albido map or the albido texture for our material. If I zoom in, you can see we have some pixels here. So this is how we make our material. Now if I connect this to metallic as well. Now the white parts should be metallic but you can see maybe you can't see but I can see they are not because metallic is at zero. So if I rise this up now they are metallic. Well, I would like to make them more shiny. They seem kind of diffused. So, I'm going to lower the roughness here. Okay, this this now is a nice nice ball of shininess, but it's all shiny. I just want the silver parts to be shiny and the black parts to be not shiny. So, again, now I'm going to add an invert node. Right click env. Okay. Filter invert. It's on top. I can use mouse uh sorry arrow buttons. Arrow keys to select what I want. Then hit enter. Now another way to insert a node from something is to click and drag and then release. And it shows us this pallet dialogue invert. but it shows it in the context of what are we going to connect to what we've just created. So now this invert if I click on it and it selects the first output you can see this is the opposite the the edges are black and the regions are white. So I'm going to click and drag this to roughness. I'm going to move this here. I'm going to delete this extraneous. Yeah, you can select anything and hit delete. So let's delete the noiser. Also you can undo. So Ctrl Z is going to undo and Ctrl Y. No, Ctrl R. No. What is Ctrl R? Something happened. But no, nothing happens. Okay. Yeah, you can undo. Can you redo? You can. Control shift Z. Okay. So [laughter] yes, [snorts] by the way, the menus are nice to explore so we can learn hotkeys. I really like that. Okay, so now we want to up our roughness. And you can see that if I go up to here, our black parts are nice and diffuse, but our silvery parts are still shiny. Now, I'd like to make the silvery parts to pop out to look as if they are kind of like a a wire laid on top of a flat black ball. So, I want this to become a normal map. I can plug into here. I'm going to move this here. Um, so to do that, we need an extra node. So, I'm going to click and drag and I'm going to type normal. And you can see the thing that comes on top is called normal map. I'm going to hit enter. And I'm going to click on this node to select its output. You can see it highlights on white. Now some nodes have multiple outputs. By the way, it's this is the right before we go into this. So let me show you plus. If I click on it, it highlights the first output. If I click on another output, it shows that output. And then there is fill. Fill is a special type a green type of output that encodes a a set of different areas. It so we can do various crazy things like uh paint every area in a different color or paint every area in a different gray. Um, fields are incredibly incredibly powerful, but that's a topic for a next video cuz I don't want to make this one 57 hours long. I don't think I have enough disk space for that. Yeah. Okay. So, back to our normal map. If you click here, our first output is selected. And you can see this is our normal map. Let's try it. Let's click and drag here into normal. Now that's more like it. Okay. So now now our spidery [clears throat] silvery web looks like it's popping out. Something we can do with this preview to kind of help us assess the the qualities of our material is we can enable automatic rotation. So if I click on this little tab here, go to model and press play, I can now click away in my canvas and this is going to rotate on its own. Now you can see a little problem here that this is a little bit pixelated and it's also kind of pixelated here. So you can see that our static PBR material this thing here we have size 248x 248 that's the resolution of our material. So this node static PBR material this node creates a texture in the in the computer's memory a texture for every input and that size of that texture is 2048x 2048. If I change this size to say 256 x 256. Look what happens. Now this is pixelated because our texture is much smaller. Our texture set. We're not making one texture. We're making a set of textures. An albido texture, a metallic texture, a roughness texture, and a normal texture. So if I were to export this now, we would get 1 2 3 four five four files each 256 x 256 in size. Of course that's a simplification. We could have less files because the some channels can be combined into a single file like metallic and roughness can be combined into a single file and our LBO and normal are would be separate. So we would actually get three files if we export it for like uh say export material GDO GDO for OM OM stands for occlusion roughness metallic and it's a standard way of channel packing different PBR material properties into a single texture for the sake of improving performance and storage. [snorts] um efficiency. So, OM would take metallic roughness and ambient occlusion in a different order, but it would put them into red, red, O, green roughness, and M metallic, red, green, blue channels of a texture. And then whatever you put that in would unpack these and use them to render your texture. Okay, let's go and see the smallest possible size. Now, material maker is pretty cool and it when you set this small size, it disables texture filtering. So, we have nice chunky pixels. I think at 120 it still does that. 256 it turns on filtering. Okay, let's go with 1024 cuz that's the resolution of our norma map. Now, this is still it's not as chunky and blocky, but it's still kind of jagged. we can do better. So I'm going to go and we can do a very cool thing which is super sample this. So I'm going to take this output, drag it and type super and we have filter super sample on top. Let's click on this and see. You can see it became a little bit blurriier. If we change the resolution to the size to 256, you can see it's even blurriier still, but we want our texture to be 1024 x 1024. So, let's set this to 1024 x 1024. And now you can see that there is no difference between our normal map output and our super sampled normal map output. I mean, there is the tiniest of differences. It doesn't really smooth out these jaggies. But if I change the resolution of the input normal map, look what we got. Now the normal map here is high resolution and kind of jaggy. This is lower resolution but kind of smooth. So let's up this more to 496. That's humongous. And you can see that it's much smoother. Even here it's much smoother, but well, this is too big. You can see that this still is jagged in in our material output because we're basically taking every four pixels and averaging them out. But we're doing this in a stupid way. This is why we have so much jaggies here. If we push it through our super sample node though, let's see. Is that better? It seems a little better. Now we can change the count of super sample. So the number of samples on each axis. There are two axes X and Y. So horizontal and vertical. So count of two means we are taking four samples. So we're taking let's say four pixels and we're averaging them into one. And the super sample node does this by copying the input, shifting it a little bit and making it semi-transparent. So you can see our normal map we have one thing in our super sample we have 1 2 3 4. The same thing is copied and offset by a small amount that the amount corresponds to the resolution. If I set this to lower 256 or here you can very clearly see what the super sample node does. Not super sampled. You can see we have one thing super sampled. We have one, two, three, four things, right? But if I count up the count to three, that's going to be 3 * 3. So 9 1 2 3 4 5 6 7 8 9. Cool. Let's set this back to 1024. And you can see we have nine different samples here. So that is becoming a little bit smoother. Not perfect, but a bit smoother. Now, probably probably a problem with why is this so jagged is that our normal map could be based on a anti-aliased input. So, instead of super sampling after we make the normal map, we could super sample before. Now maybe I'm getting into the rabbit hole too much now and we could actually skip this and we'll go back to super sampling later because it's a very deep topic and it's important topic but I can spend all day talking about just the super sampling and well this isn't a tutorial for super sampling specifically. I want to cover more things. I want to just give you a good introduction. All right so let's go. Let's move on. Let's say I want to make the black parts grainy. I want them to be like rough concrete or or like roughen plastic. So, we're going to need some pattern that was going to give us this roughness. Now, we can do a regular pattern with this pattern node. For example, if I zoom right in, I can also go to this view. No, center view. Ah, center view. Yes, we can have this pattern and you can see it creates these white spots. So, if I do, let's say 512x 512, that's going to give me these. [gasps] Okay. So, I want to mix this in with that to create bumps on the black parts. Okay. So, I'm going to rightclick and do a math node. Enter. I'm going to select all of this and put it here. Now, we're going to do a little trick. So, you see what I want to do is I want to insert this math node between this simple edge detect node and all these other nodes which is which are connected to it. But that would take a lot of time because I would have to do it like that. this. And now manually reconnect every single one, which is doable, but it takes a lot of time. We can do a trick though. Let's undo all of this thing that we just did. Ctrl Z. And instead of doing that, we can do a super cool trick. Let's press shift. And now right click on this. You can see what happens. We have a reroute node created for us here. I can move it to the right. Now I can simply route this in. Bam. All of these are now connected to my math node. And now we can shift right click again to remove this reroute node. This is super super useful. Okay. What I want to do with this math node is add my bumps. So, I'm going to just route this here and let it think for a bit and see what happens. Okay, let's go zoom in. All right, that is I would say. Okay, I'm going to disable the rotation for a moment. Let's pause. That is okay, but the silver parts are also bumpy and I don't want that. So, let's think because my edges are already white. If I change the math function here, there's multiple things I can do to make so so the white edges so the bumps do not appear on the white. Now, we can't see what's here because it's already white. So, it's kind of all blown out, but we can see that there the bumps are there. We can't see them here, but they are here. [gasps] However, if we click this clamp thing, what that is going to do is it going to clamp the result of this math node between zero and one. So, whatever we see here, this is exactly what we get. And you can see, tada, the bumps are gone from our silver parts, from our silver edges. So, we have a nice little um kind of grip improving pattern. However, the resolution is kind of unsuitable. So, I'm going to I'm going to make this smaller. Let's go 256 by 256. Okay, I think that's pretty cool, but the the pattern is a bit too strong. So, I'm going to insert another math node. Let's go click and drag. Let's go again. Math. And here, I'm gonna I want to make this less. So I'm going to make a multiply by 0.5. So that's going to make my patterns if I if I click on this darker. So all these bumps are going to be smaller. So let's dr that in here and observe what happens. Okay, our bumps are less. Let's do even less. Let's do 0.1. Okay, now we're talking. That's really cool. Okay, I think we're going to cut it here cuz this tutorial is almost 30 minutes and I think that's kind of enough. What we're going to do is just export our material. Maybe save it. So, file, save. And I'm going to call this well blah enter blah. Pex shortcut from procedural texture I suppose. Now file export material. I'm going to export to goodo form. Let's go. FA games. Blur. Let's just do this. Sweet. Um, hold on. Look, this these are our exported textures. So, this is our blah alb albido texture. This is our blah normal texture. And this is our blah or texture. ORM stands for occlusion roughness metallic. So, it's our channel pack texture that contains multiple different pieces of information about the material. Now, I'm filtering this to only show PNG files. But if I unfilter, we can see our blah. PEX file, which is our source project for material maker. This is mmcr, which is material maker. Uh, copy redundant. Uh, I don't know. This is like um copy for recovery. I don't know. This is like for crash recovery file. And then we have blah. T-RES. TRES means text resource and that's a good file. And we're going to be doing GDAU things later on this channel. [snorts] But maybe I'm going to just move this into a GDO project and show you how it works in a game. [clears throat] Okay, let's try this. I'm not sure if it's going to work, but I've selected all the files. I'm going to click and drag into good into GDO's file manager. Okay, we have blah. Let's click and drag. [laughter] Well, it it works. All right, here it is. Our glorious material in a game. It's horrible, [laughter] but it's there. It works. Now we can put it on a barrel. There we go. Nice little barrel. Barely as all barrels. Let's put it in a container. Nice. Fantastic. Stellar work. Good job. Let's I'll see you in another video. Take care.