Materials in Unreal Engine

A Complete Beginner's Guide to Creating and Using Materials

5 Tutorial Modules
15-30 min each
Unreal Engine 5
Complete Beginner

Materials control how every surface in your game looks - from shiny metal to rough concrete. This tutorial will teach you everything you need to know to create professional materials in Unreal Engine, even if you've never opened the software before.

Materials Tutorial Header - Different material examples

What You'll Learn

Material Basics

Understand what materials are and how they make surfaces look realistic

Material Editor

Navigate the interface and create your first material from scratch

Working with Textures

Import and use texture images to add detail to your materials

Tutorial Topics (Click to Jump)

Tutorial 1: Introduction to Materials

15-20 minutes

1.1

What Are Materials?

A Material is what makes a surface look the way it does. Think of it like paint and finish for objects in your game. Materials tell Unreal Engine: "Is this surface shiny like metal? Rough like concrete? What color is it?"

Real-World Example: Imagine a wooden table and a metal table. They're both tables (same 3D shape), but they look completely different because of their surface properties. Materials define those surface properties in Unreal Engine.
Same 3D object with different materials applied
1.2

Understanding PBR (Physically Based Rendering)

Unreal Engine uses something called PBR - a fancy term that means "materials behave like they would in real life." Instead of guessing how light should bounce off surfaces, PBR uses real-world physics rules.

PBR Requirements:
Base Color // The color of the material (like albedo)
Metallic // Is it metal? (0 = no, 1 = yes)
Roughness // How smooth or rough? (0 = mirror smooth, 1 = very rough)
Specular // How reflective? (usually 0.5 for most materials)
Beginner Tip: Don't worry about understanding all of this right now! We'll explore each property hands-on. Just know that materials need these four properties to look realistic.
1.3

Understanding Color Values (0 to 1)

Unreal Engine uses a different number system than programs like Photoshop. Instead of 0-255, Unreal uses 0 to 1:

0 = Black (0%)
0.5 = Middle Gray (50%)
1 = White (100%)

// Example: A medium gray in Photoshop
Photoshop: R: 128, G: 128, B: 128
Unreal: R: 0.5, G: 0.5, B: 0.5
1.4

Opening the Material Editor

Let's create your first material! In Unreal Engine:

  1. Open the Content Browser (bottom panel in Unreal)
  2. Right-click in an empty area
  3. Select Material from the menu
  4. Name it M_MyFirstMaterial
  5. Double-click the new material to open the Material Editor
Naming Convention: It's good practice to prefix materials with "M_" so you can easily identify them in your project. For example: M_Metal, M_Wood, M_Glass.
Creating a new material in Content Browser
1.5

Material Editor Interface Tour

The Material Editor has several key areas you need to know:

Preview Viewport // Top-right: See your material in real-time
Graph Panel // Center: Where you build your material
Palette Panel // Left: List of all available nodes
Details Panel // Right: Properties and settings
Base Material Node // The final output (always visible)
Material Editor interface with labeled sections
Live Preview: The preview viewport updates in real-time as you make changes. This means you can instantly see how your material looks without applying it to an object first!
1.6

Your First Material: Solid Color

Let's create a simple solid red material to learn the basics:

  1. Hold the 3 key and left-click in the Graph panel (this creates a color node)
  2. Double-click the black square on the new node
  3. Pick a red color using the color picker
  4. Drag from the color node's output pin to the Base Color input on the Material node
  5. Click Apply in the top toolbar
Simple red material node graph
Congratulations! You just created your first material! The preview sphere should now be red. The number "3" creates a 3-channel color node (Red, Green, Blue).

Tutorial 1 Complete

  • You understand what materials are and why they're important
  • You know the basics of PBR (Base Color, Metallic, Roughness, Specular)
  • You can navigate the Material Editor interface
  • You created your first solid color material

Tutorial 2: Creating PBR Materials

20-30 minutes

2.1

Understanding Base Color (Albedo)

Base Color is the "true" color of your material without any lighting or shadows. Think of it as the color of the object if you photographed it in perfectly even, white light.

Important Rule: Base Color should NEVER be pure white (1,1,1) or pure black (0,0,0) in PBR. Real-world materials always have some color variation. Even "white" paper is usually around 0.8-0.9.
Examples of correct vs incorrect base colors
2.2

Understanding Metallic

The Metallic input is simple: it's either metal or it's not. Use 0 for non-metal (wood, plastic, fabric) and 1 for metal (iron, gold, aluminum).

0 = Not metal (wood, plastic, fabric, skin, etc.)
1 = Metal (iron, copper, gold, aluminum, etc.)

// Rarely use values in between unless doing metal transitions
Why is this important? Metals reflect the environment differently than non-metals. Unreal needs to know which you're making so it can calculate reflections correctly.
2.3

Understanding Roughness

Roughness controls how smooth or bumpy the surface is at a microscopic level. This affects how blurry or sharp reflections are.

0 = Perfect mirror (chrome, polished metal)
0.3 = Glossy (car paint, polished wood)
0.7 = Semi-rough (worn metal, matte plastic)
1 = Very rough (concrete, chalk, rough fabric)
Roughness values from 0 to 1 comparison
2.4

Understanding Specular

Specular controls how reflective the surface is. For 99% of materials, you can leave this at 0.5 (the default). Only change it for special cases like wet surfaces or gems.

Beginner Tip: When in doubt, use 0.5 for Specular. It's the physically accurate value for most common materials.
2.5

Exercise: Create a Shiny Plastic Material

Let's create a realistic blue plastic material using PBR values:

  1. Create a new material: M_BluePlastic
  2. Hold 3 and click to create a color node
  3. Set the color to blue (R: 0.1, G: 0.2, B: 0.8)
  4. Connect it to Base Color
  5. Hold 1 and click to create a value node (for single numbers)
  6. Set the value to 0 and connect to Metallic (plastic is not metal)
  7. Create another value node, set to 0.3, connect to Roughness (glossy)
  8. Create another value node, set to 0.5, connect to Specular
  9. Click Apply
Blue plastic material node graph
Keyboard Shortcuts Recap:
Press 1 + click = Single value (Constant)
Press 3 + click = Color (Constant3Vector)
Press 4 + click = Color with transparency
2.6

Exercise: Create a Metal Material

Now let's create an iron metal material. Notice how metals work differently:

  1. Create a new material: M_Iron
  2. Set Base Color to dark gray (R: 0.2, G: 0.2, B: 0.2)
  3. Set Metallic to 1 (it's metal!)
  4. Set Roughness to 0.6 (slightly worn metal)
  5. Set Specular to 0.5
  6. Click Apply
Metal Tip: For metals, the Base Color determines the metal's tint. Dark gray = iron, yellowish = gold, orange-brown = copper.
2.7

Applying Materials to Objects

To see your material on an actual object in your level:

  1. Place a cube or sphere in your level (from the Place Actors panel)
  2. Select the object
  3. In the Details panel, find the Materials section
  4. Click the dropdown next to "Element 0"
  5. Select your material from the list
Applying material to object in Details panel
2.8

Using Physically Based Values

Real-world materials have been measured and catalogued! Use this reference site for accurate PBR values:

// Reference: https://physicallybased.info/

// Examples from the site:
Gold:
  Base Color: (1.0, 0.766, 0.336)
  Metallic: 1.0
  Roughness: 0.3

Rubber:
  Base Color: (0.05, 0.05, 0.05)
  Metallic: 0.0
  Roughness: 0.9
Important: On the website, set "Default Engine" to Unreal in the top-right to get correct values!

Tutorial 2 Complete

  • You understand all four PBR inputs (Base Color, Metallic, Roughness, Specular)
  • You created a plastic material from scratch
  • You created a metal material and understand the difference
  • You know how to apply materials to objects
  • You can find real-world PBR values for any material

Tutorial 3: Working with Textures

25-30 minutes

3.1

What Are Textures?

Textures are image files (like JPG or PNG) that add detail to your materials. Instead of a solid color, textures give you patterns, wear, scratches, and realistic surface details.

Think of it this way: Solid colors make materials look like plastic toys. Textures make them look like real-world objects with history and detail.
Comparison: solid color material vs textured material
3.2

The Power of 2 Rule

Game engines require texture dimensions to be "powers of 2" for technical reasons. This means each side must be one of these numbers:

Valid Texture Sizes:
16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192

Valid: 512 x 512, 1024 x 2048, 256 x 1024
Invalid: 500 x 500, 1920 x 1080, 300 x 600
Good News: Textures don't have to be square! 512 x 1024 is perfectly valid. Just make sure both dimensions are from the valid numbers list.
3.3

Texture Size Limits

Unreal Engine has minimum and maximum texture sizes:

Minimum Size: 16 x 16 pixels
Maximum Size: 8192 x 8192 pixels

// Recommended sizes for different uses:
UI Icons: 128 x 128 or 256 x 256
Props/Objects: 1024 x 1024 or 2048 x 2048
Terrain/Large Surfaces: 2048 x 2048 or 4096 x 4096
3.4

Importing Textures

To bring texture images into Unreal Engine:

  1. In the Content Browser, click the Import button
  2. Navigate to your texture file (PNG, JPG, TGA, etc.)
  3. Click Open
  4. Unreal will import it as a Texture asset
Supported Formats: PNG, JPG, TGA, BMP, PSD, and more. PNG is recommended for textures with transparency, JPG for everything else.
Import button in Content Browser
3.5

The Texture Editor

Double-click any texture in the Content Browser to open the Texture Editor:

Texture Viewer: Shows the texture image
Details Panel: Texture settings and properties
Toolbar: Controls for zoom, mipmap preview, etc.
Texture Editor interface
3.6

Understanding Mipmaps

Unreal automatically creates mipmaps - smaller versions of your texture for when objects are far away from the camera.

Why mipmaps? When an object is far away, it doesn't need a huge 4096x4096 texture - a 256x256 version works fine and saves memory. Unreal automatically picks the right size based on distance.
Example Mipmap Chain:
Level 0: 2048 x 2048 (original, close-up)
Level 1: 1024 x 1024
Level 2: 512 x 512
Level 3: 256 x 256
...down to 1 x 1 (very far away)
Mipmap visualization showing texture sizes
3.7

Adding Textures to Materials

To use a texture in your material:

  1. Open your material in the Material Editor
  2. Find your texture in the Content Browser
  3. Drag the texture from Content Browser into the Material Graph
  4. This creates a Texture Sample node
  5. Connect the RGB output to Base Color
  6. Click Apply
Shortcut: You can also press T + click in the graph, then select your texture from the list that appears.
Texture Sample node connected to Base Color
3.8

Exercise: Create a Textured Material

Let's create a complete material using a texture:

  1. Import a color texture (or download a free one from a site like textures.com)
  2. Create a new material: M_Textured
  3. Drag your texture into the graph
  4. Connect the RGB output to Base Color
  5. Add constant values for Metallic (0), Roughness (0.7), and Specular (0.5)
  6. Apply the material to an object in your scene
Pro Tip: Most textures come in sets: Base Color, Roughness, Normal, and Metallic. We'll learn about using multiple texture maps in future tutorials!

Tutorial 3 Complete

  • You understand what textures are and why they're important
  • You know the Power of 2 rule for texture sizes
  • You can import textures into Unreal Engine
  • You understand what mipmaps are and why they exist
  • You created a material using a texture

Tutorial 4: Material Editor Shortcuts & Workflow

15-20 minutes

4.1

Essential Keyboard Shortcuts

These shortcuts will speed up your material creation workflow dramatically:

Creating Nodes:
1 + Left Click = Constant (single number)
2 + Left Click = Constant2Vector (X, Y)
3 + Left Click = Constant3Vector (R, G, B color)
4 + Left Click = Constant4Vector (R, G, B, A)
T + Left Click = Texture Sample

Math Operations:
A + Left Click = Add
M + Left Click = Multiply
S + Left Click = Subtract
D + Left Click = Divide
Visual reference of keyboard shortcuts
4.2

Navigating the Graph

Moving around the Material Graph efficiently:

Navigation Controls:
Right Mouse + Drag = Pan the view
Mouse Wheel = Zoom in/out
Left Click + Drag = Select multiple nodes
Ctrl + D = Duplicate selected node
Delete = Delete selected node
C = Add comment box
4.3

Connecting Nodes

How to wire nodes together:

  1. Click and drag from an output pin (right side of node)
  2. Release on an input pin (left side of another node)
  3. To remove a connection, hold Alt and click the input pin
Color Coding: Pins have colors that show data types:
White = Float (single number)
Yellow = Vector3 (3 numbers like RGB)
Green = Vector2 (2 numbers like UV coordinates)
4.4

Using Math Nodes: Multiply

The Multiply node lets you make colors darker or lighter:

Example: Making a texture darker
Texture (RGB) → Multiply → Base Color
                  ↑
                0.5 (darker) or 2.0 (brighter)
Math Tip: Multiply by less than 1 to darken (0.5 = 50% brightness). Multiply by more than 1 to brighten (2.0 = 200% brightness).
Multiply node example in material graph
4.5

Using Math Nodes: Add

The Add node combines two values together:

Example: Tinting a texture
Texture (RGB) → Add → Base Color
                  ↑
               Red (0.2, 0, 0) adds red tint
Creative Use: Add is great for adding color tints to black-and-white textures or combining multiple effects.
4.6

Exercise: Create a Customizable Material

Practice using math nodes to create an adjustable material:

  1. Create a new material: M_Adjustable
  2. Add a texture to the graph
  3. Press M + click to create a Multiply node
  4. Connect: Texture → Multiply → Base Color
  5. Create a Constant value (press 1 + click)
  6. Connect the Constant to the Multiply's second input
  7. Try different values: 0.5 (darker), 1.0 (normal), 2.0 (brighter)
Adjustable material with multiply node
4.7

Organizing with Comments

Keep your materials organized with comment boxes:

  1. Select the nodes you want to group
  2. Press C to create a comment box
  3. Type a description like "Color Adjustment" or "Texture Setup"
  4. The comment box moves with the nodes inside it
Best Practice: Use comments for complex materials so you (and others) can understand what each section does!

Tutorial 4 Complete

  • You know all essential Material Editor keyboard shortcuts
  • You can navigate the graph efficiently
  • You understand how to use Multiply and Add nodes
  • You can organize materials with comment boxes

Tutorial 5: Material Instances

20-25 minutes

5.1

What Are Material Instances?

A Material Instance is a "child" copy of a master material. Instead of creating 50 different materials from scratch, you create ONE master material and 50 instances with different settings.

Real-World Example: Imagine you're making a racing game with 20 different colored cars. Instead of creating 20 separate materials, you create ONE master car paint material, then make 20 instances with different colors.
Benefits of Material Instances:
Instant previews (no compilation wait)
Can be edited in real-time (even while playing)
Better performance
Easier to manage large projects
5.2

Parameters: Making Values Editable

To create values that can be changed in instances, you need to use Parameters instead of regular constants:

Parameter Types:
Scalar Parameter = Single number (roughness, metallic, etc.)
Vector Parameter = Color (base color, tint, etc.)
Texture Parameter = Texture (swap textures per instance)

Shortcuts:
S + Click = Scalar Parameter
V + Click = Vector Parameter
5.3

Creating a Master Material

Let's create a master PBR material with adjustable parameters:

  1. Create a new material: M_MasterPBR
  2. Press V + click to create a Vector Parameter
  3. Select the node, in Details panel name it "BaseColor" and set a default color
  4. Connect it to Base Color on the main material node
  5. Press S + click to create a Scalar Parameter
  6. Name it "Metallic", set default to 0
  7. Connect to Metallic input
  8. Repeat for "Roughness" (default 0.5) and "Specular" (default 0.5)
  9. Click Apply and Save
Master material with all parameters
Naming Tip: Use clear, descriptive parameter names. "Color1" is bad, "BaseColor" is good!
5.4

Creating Material Instances

Now let's create instances from your master material:

  1. In Content Browser, right-click on M_MasterPBR
  2. Select Create Material Instance
  3. Name it MI_Gold (prefix instances with "MI_")
  4. Double-click to open the Instance Editor
Create Material Instance context menu
5.5

Editing Instance Parameters

The Instance Editor looks different from the Material Editor - it's just a list of parameters you can change:

  1. In the Instance Editor, you'll see all parameters from the master
  2. Check the box next to a parameter to enable editing it
  3. For the Gold instance, set:
    • BaseColor: (1.0, 0.766, 0.336)
    • Metallic: 1.0
    • Roughness: 0.3
    • Specular: 0.5
  4. The preview updates instantly - no compilation needed!
Material Instance Editor showing parameters
Instant Feedback: Notice how changes appear immediately? This is why instances are so powerful for iteration!
5.6

Exercise: Create Multiple Instances

Practice creating instances for different materials:

  1. From the same master material, create these instances:
MI_Copper:
BaseColor: (0.955, 0.637, 0.538)
Metallic: 1.0, Roughness: 0.4

MI_Plastic_Red:
BaseColor: (0.8, 0.1, 0.1)
Metallic: 0.0, Roughness: 0.3

MI_Rubber:
BaseColor: (0.05, 0.05, 0.05)
Metallic: 0.0, Roughness: 0.9
Think About It: You just created 4 completely different-looking materials without opening the Material Editor even once! This is the power of instances.
5.7

Real-Time Editing While Playing

One amazing feature of instances: you can edit them while your game is running!

  1. Apply one of your material instances to an object
  2. Click the Play button to start the game
  3. While playing, alt-tab back to the editor
  4. Open the material instance and change values
  5. Alt-tab back to the game - it updates in real-time!
Use Case: This is perfect for tweaking materials to get them just right, testing different looks without restarting, or even creating dynamic material effects!
5.8

When to Use Instances vs Regular Materials

Here's a guide for choosing between master materials and instances:

Use a Master Material when:
You need complex node logic
You're creating the "template" for variations
You need to add new features/connections

Use Material Instances when:
You need variations of the same material
You want to adjust values without recompiling
You're tweaking parameters for art direction
You need runtime-editable materials
Best Practice: In professional game development, 90% of materials are instances of a few dozen master materials!

Tutorial 5 Complete

  • You understand what Material Instances are and why they're powerful
  • You can create parameters in master materials
  • You created a flexible master PBR material
  • You created multiple instances with different looks
  • You know when to use instances vs regular materials

What's Next?

Advanced Materials

Learn about Normal maps, Emissive materials, Opacity, and advanced techniques

Material Functions

Create reusable node groups to build complex materials faster

Performance

Optimize materials for games, reduce instruction count, mobile considerations

Dynamic Materials

Control materials with Blueprint, create interactive effects, runtime customization

Additional Resources

Official Unreal Documentation:
Unreal Engine Materials Guide

PBR Reference Values:
Physically Based Material Database
// Remember to set "Default Engine" to Unreal!

Free Texture Resources:
Poly Haven (Free PBR Textures)
Textures.com (Free & Paid)

Congratulations!

You've completed the Materials Tutorial! You now have the foundational knowledge to create professional materials in Unreal Engine. Keep practicing, experiment with different values, and don't be afraid to break things - that's how you learn!