Substance Designer - Overview, Setup, and General PBR Creation

image

Unleash Your Creativity with Substance Designer

In this mini-tutorial, we’re diving into the process of creating custom PBR (Physically Based Rendering) textures using Substance Designer.

While there are many workflows and softwares you can use to create PBR textures, this guide will focus on Substance Designer where you’ll learn how to set up Designer, use nodes, and add details to your textures. By the end, you’ll have the skills to craft procedural Textures and Materials that bring life and realism to your Roblox Games.

The Principles Behind Substance Designer

Understanding Texture Maps and Nodes

Substance Designer is a tool for making texture maps that follow specific rules. These maps use height information and black-and-white pixels to create textures.

The main way to make these maps is by using nodes, which are like building blocks. They might look sometimes like a messy spaghetti plate, but they’re essential for creating textures.

Exploring the Graph Workspace

Think of the workspace in Substance Designer as a canvas called the Graph. Here, we arrange nodes to build our textures. Each node lets us make different pixel effects.

So, in short, Substance Designer helps us make cool textures using nodes on a canvas called the Graph.

Getting Started: How To Launch and Setup Substance Designer

Getting Started with Substance Designer

After Substance Designer is downloaded and installed, you can launch the application and start immediately with a new Substance Graph.

image
After Launch, Click New Substance Graph

Once we click the New Substance Graph, another new window will pop up.

Setting up Initial Workspace and Resolution

From here we can choose Templates and we can also set up our initial working resolution. For this mini-guide, we select the Empty Template and we set the Parent size to 1024x1024 pixels.

Now press the OK button, and this will bring you into the development environment, like the image below.

Preferences and Settings for Roblox Studio

Configuring General Project Settings

Once we have successfully launched Substance Designer, we want to check our General Project Settings.

Ensuring Compatibility with Roblox Studio

To do so click Edit–>Preferences–>General–> and make sure that the Default Normal Map Format is set to OpenGL. This is the Normal Map Format we need for Roblox Studio.

At this point, we are good to go with our Setup. Now we can take care of the next important step.

How To Setup a PBR-Material

Creating a Base Material

Our goal is to create a material that contains four basic texture maps we can then use within our Roblox Surface Appearance.

  • Color
  • Roughness
  • Metal
  • Normal Map

Substance Designer comes with a Library, that is very useful, especially as a Beginner.

As mentioned in the short introduction. The main canvas we are using to generate nodes is called Graph. So let’s select the Graph Editor, and work from there.

First, press the space bar. A Seach box shows up. That allows you to search for any Library Assets. In our case, we want to create a Base Material. Enter “Base” into the search bar and select the Base Material.

Hit the Space Bar to open Search → For Base Material
Hit the Space Bar to open Search → For Base Material

The screenshot below shows the Base Material Node, which includes the four PBR-Texture Maps we want to create.

image
Base Material includes four essential texture maps for Roblox Surface Appearance

The Base Material node has like any other node, input values, and output values. Which means, what information we want to feed into our material, and what information we want to output.

Setting Up PBR Texture Maps: Color, Roughness, Metal, Normal

By default, the Base Material has no Input Nodes defined. This means we have to activate those within the Material parameters.

image
Select the Base Material, and set Base Color, Normal, Roughness, and Metallic to “True”

Once these nodes are activated, we can start using various nodes and plug them into the Input pins. So let’s do that next. First, we want to create a simple color node. In Substance Painter, that node is called Uniform Color.

Let’s press the space bar again, and search for Uniform Color. Select it, and connect the Output Pin from the Uniform Color to the Input Pin of the Base Material. See the screenshot below.

image
The uniform Output Pin is now connected with the Input Pin from the Base Material Color Node

By default the color is black. But we can change this, by selecting the Uniform Color Node, and then changing the Output color parameters. Change it to any color of your choice.

image

You might have noticed, that some pins are orange, and some pins are grey. The orange pins indicate that this node is a color node. The grey pins indicate, that those pins are just working with grey-scale values.

Next in line is the Normal Map. That normal map will help us to give our material some extra details.

Let’s create our Normal Map

Now let’s get started with the creation process of the Normal Map. What we do need first, is a shape. We can create a shape by using the Node called “Shape”.

In our example, we create a Disc Shape and just change the scale to 0.8

image
Create a Shape Node → Disc

Next, I am going to tweak my shape using a Bevel Node. The Bevel Node gives me the option to give the edges a bevel that will transform the sharp edges into smooth round edges. You can adjust the bevel size with the Distance Parameter, see the screenshot below.

image
Bevel Node for a smooth edge

If we try to plug in the shape node to our Normal Map Pin it will not work because our Shape node has only grayscale values. What we have to do, to use that shape disc as a Normal Map is to convert it to a Normal Map.

We can do this by using the node called “Height To Normal World Units”.

image
Height To Normal World Units

Once we do have our Height To Normal World Units Node applied, I am adding a bit of a Blur followed by a Tile Generator. See the screenshot below which shows you the exact flow of the nodes, reading from left to right.

image
The Node Network

The image below shows what this Base Material looks like so far.

image

How To Create the Roughness Map

We have two more maps we need to create for our PBR Material - next in line we do need the Roughness Map.

image
Uniform Color → Grayscale Conversion

In our example, I am using again a Uniform Color node which I connect to a Grayscale Conversion node. We can change the color node to any grayscale value of our choice. And with that, we can control the grayscale value of our Roughness map.

Black means 100% smooth, super clear shiny reflective. White means the exact opposite - a completely “rough” surface. For the material, I pick a grayscale value that will give my material a reflective look similar to a non-slip mat.

image
Roughness Map applied

The Metallic Map

The same principles apply as well for the Metallic Map. A fully white value means it’s 100% Metallic and perfectly reflective. Black means not metal at all; a non-reflective surface.

image
The same material with a fully white value was applied to the metal map

Because our non-slip-mat material is plastic and doesn’t need any metallic values, we just can keep our metallic value black. And that’s it. See the screenshot below to see the final graph at this stage.

image
The final graph includes all the nodes for the final PBR Material

Creating and using Masks

Understanding Masks in PBR Material Creation

Masks are another important component of creating PBR materials with Substance Designer. Let’s say, we want to have our bumps appear in a different color. We can do this, by using a Mask.

image
Adding a Mask to use two different colors

The Graph above shows the nodes used to set up the mask.

Applying Masks for Color Variation

Blend Mode let’s you mix two different colors depending on the grayscale input intensity As you can see on the graph, the output from the Bevel node was used again for the input of the Tile Generator node. The Parameters from both tile generators are the same, so the mask matches the same pattern we use for the color input.

The main difference between those two Tile Generators Node lay in the Gray and Color difference.

The Output Pin from the Gray Tile Generator feeds into the Opacity Pin of the Blend Node, which defines the mask. Last but not least, I added another Uniform Color Node and selected a second color.

image
The Final Graph showing all nodes

image
Change Colors and Patterns on the Fly

The Graph lets you exchange Patterns, Colors, Masks, etc. on the fly. It’s a very fast way to generate your unique texture maps for your custom-made materials.

Exporting PBR Texture Maps

Finally, it’s time to export the texture maps, to upload them to our Roblox Studio application. You can export each texture map directly from the 2D View.

Finalizing and Exporting Texture Maps

For example, let’s double-click the Output Node from the Base Color to load that texture map into the 2D View. From here, we can click the Save Icon. Select the the format and directory of your choice and you’re done!

image

image

Uploading to Roblox Studio: Step-by-Step Guide

Now, that we have our four basic PBR-Textures generated, it’s time to upload them to our Roblox Studio Experience.

image

To do so, we can use the Asset Manager which allows us to upload all four texture maps in bulk.
View–> Asset Manager–> clicking the tiny Arrow Icon that lets you select your four texture maps in a bulk upload.

image
Asset Manager uploading our four texture maps

Next, we need to assign the texture maps to our mesh. To do this, we add the object called SurfaceAppearance, which allows us to assign the uploaded Texture Map IDs. See the screenshot below.

image
Explorer–>Assign the SurfaceAppearance and copy and paste each individual Texture Map ID into the attribute field

Questions? Let’s chat

In this guide, we learned how to craft custom PBR textures using Substance Designer. We explored setting up the software, using nodes, and creating essential texture maps like color, roughness, metallic, and normal maps.

We discovered how Substance Designer’s node-based system works, allowing us to manipulate textures with ease. By following simple steps, we can generate detailed and realistic textures for our Roblox games.

Now, it’s your turn! Dive into Substance Designer, unleash your creativity, and bring your Roblox creations to life with stunning PBR textures. Feel free to share your own implementations or ask any questions!

Resources:

[Download .zip file containing:]
How To Create PBR Textures using Substance Designer.zip (2.0 MB)

  • Substance Designer File
  • Roblox Place File
  • PBR-Texture Maps
22 Likes

The plugin isn’t working for me, it keeps spamming this in my output:
image
“Destroy is not a valid member of Workspace”

I don’t really trust it now, please fix this immediately.

If you want you can add me as a friend btw

3 Likes

Explain: Substance Sampler - Overview, Setup, and General PBR Creation , Substance Painter - Overview, Setup, and General PBR Creation - #2 by OppaStoppaStomppa , Substance Designer - Overview, Setup, and General PBR Creation - #2 by USADevForum .

1 Like

I can’t zoom in on that one, same for the other ones.

1 Like

Really nice, thank you friend.

Although it’s really obvious your anootations are done with snipper tool lol

1 Like

I think it’s some mistake the roblox staff did, I would recommend debugging the code yourself

2 Likes

Firstly,thanks for sharing this beatiful article for us.I see your shared texture files are exported with 64bit and greyscale maps with 16bit.Is it okay for Roblox? I thought its okay with Color maps with 24bit and Greyscale maps are 8 bit?

1 Like

It’s really sad to see that a roblox staff is trying to destroy workspace (if you don’t know what that error meant).

Expected better from them, i thought this would be a good plugin

2 Likes

The provided place file doesn’t require any additional plugins. I am not sure what plugin you are referencing that could cause issues in your project file. Please feel free to ask if you have any further questions.

1 Like

The exported texture maps are in 16bit. That is okay for Studio, they will be automatically converted to 8bit.

1 Like