What a Material Is (and What a Texture Is)
In Unreal Engine 5, a material is the set of rules that tells the engine how a surface should look when light hits it. It can make something look like painted concrete, shiny metal, wet asphalt, or matte plastic. A material can use many inputs (color, roughness, metallic, normals, opacity, emissive, and more) to describe that surface.
A texture is usually just an image (2D data) that a material can read. Textures are ingredients; the material is the recipe.
- Texture: a bitmap (like PNG/TGA) that stores information such as color or surface detail.
- Material: a shader graph that combines values and textures to produce the final surface appearance.
Example: A “brick wall” look is typically a material that uses a base color texture (brick colors), a normal texture (fake bumps), and roughness values (how glossy it is). Without the material, the textures alone don’t know how to react to light.
Key Material Inputs You’ll Use First
- Base Color: the visible color of the surface (albedo).
- Roughness: how blurry or sharp reflections are. 0 = very glossy, 1 = very matte.
- Metallic: whether the surface behaves like metal. 0 = non-metal (wood, stone), 1 = metal.
- Normal: adds surface detail (bumps) without changing the mesh shape.
Applying Existing Materials to Blockout Geometry
Even during blockout, basic materials make your level readable: players can quickly understand what is floor, wall, and “important path.”
Step-by-Step: Apply a Material by Drag-and-Drop
- In the Content Browser, find an existing material (often named with
M_prefix, e.g.,M_Concrete). - Drag the material onto a mesh in the viewport (your floor or wall blockout piece).
- If the mesh has multiple material slots, drop it onto the specific surface or set the slot in the Details panel under Materials.
Step-by-Step: Apply via the Details Panel (Precise)
- Select the mesh actor in the level.
- In Details > Materials, expand the element list (Element 0, Element 1, etc.).
- Click the material slot and choose a material asset from the picker (or drag the material into the slot).
Tip: If you’re using simple shapes, keep it consistent: one material for all floors, one for all walls, and one for highlights. Consistency beats variety at this stage.
Continue in our app.
You can listen to the audiobook with the screen off, receive a free certificate for this course, and also have access to 5,000 other free online courses.
Or continue reading below...Download the app
Adjusting Basic Parameters Without Rebuilding a Material
Many materials are built to be adjustable through Material Instances. A material instance lets you change exposed parameters (like color and roughness) without editing the original node graph.
Create a Material Instance and Edit Parameters
- In the Content Browser, right-click an existing material (for example
M_Masteror any material that supports parameters). - Choose Create Material Instance.
- Name it clearly, e.g.,
MI_Floor,MI_Wall,MI_Highlight. - Double-click the instance to open it.
- In the instance editor, enable checkboxes next to parameters you want to override (commonly Base Color, Roughness, Metallic), then adjust values.
Practical Guidance for Values
| Surface Type | Roughness | Metallic | Notes |
|---|---|---|---|
| Painted wall | 0.6–0.9 | 0 | Matte walls reduce glare and keep focus on gameplay. |
| Concrete floor | 0.5–0.8 | 0 | Moderately rough reads well under most lighting. |
| Metal trim | 0.1–0.4 | 1 | Use sparingly; shiny metal can distract. |
| Highlight path paint | 0.3–0.7 | 0 | Make it distinct in color more than shininess. |
If your chosen material has no parameters to edit, you can still create your own simple material (next section) or use a different base material designed for instancing.
Creating a Simple Custom Material in the Material Editor
You’ll build a basic material that supports the most common inputs. This is ideal for blockout: fast, readable, and easy to tweak.
Step-by-Step: Create a New Material
- In the Content Browser, click Add (or right-click in an empty area).
- Choose Material.
- Name it
M_SimpleSurface. - Double-click it to open the Material Editor.
Build the Core Inputs (Base Color, Roughness, Metallic)
Inside the Material Editor, you’ll see a main node (the material output) with inputs like Base Color and Roughness.
- Base Color: Press
3and left-click to create aConstant3Vector(a color). Connect it to Base Color. - Roughness: Press
1and left-click to create aConstant. Set a value like0.7. Connect it to Roughness. - Metallic: Press
1and left-click to create anotherConstant. Set it to0for non-metal. Connect it to Metallic.
Click Apply (and Save) to compile the material. Now you can assign M_SimpleSurface to your meshes.
Make It Reusable with Parameters (Recommended)
Instead of hard-coded constants, convert them to parameters so you can create multiple looks using instances.
- Right-click the color node and choose Convert to Parameter. Name it
BaseColor. - Right-click the roughness constant and convert to parameter. Name it
Roughness. - Right-click the metallic constant and convert to parameter. Name it
Metallic.
Apply and save again. Now you can create material instances from M_SimpleSurface and adjust these values per surface type.
Normal Input Overview (What It Does and How to Hook It Up)
The Normal input fakes small surface bumps so light reacts as if the surface has detail. It does not change the mesh silhouette, but it can dramatically improve readability.
To use a normal map texture:
- Import or locate a normal texture (often named with
_Nsuffix). - Drag the texture into the Material Editor (creates a
Texture Samplenode). - In the texture asset settings (double-click the texture), ensure it is marked as a Normal Map (compression/settings are usually auto-detected, but verify if it looks wrong).
- Connect the texture sample’s output to the material’s Normal input.
If you don’t have a normal map yet, leave Normal unconnected; your material will still work.
Adding Simple Variations for Readability (Path Marking)
Once floor and wall materials are in place, add a clear navigation cue. The goal is not realism; it’s clarity: “go this way.” Two beginner-friendly options are decals and material variation.
Option A: Use a Decal to Mark the Path
A decal projects an image/material onto surfaces (like painted arrows, hazard stripes, or scuff marks). It’s great for path guidance because you can place it exactly where needed without changing the floor mesh.
- Create or find a decal material (material domain must be Deferred Decal).
- In the Content Browser, add a Decal Actor to the level (Place Actors panel) or drag a decal material into the viewport (depending on your setup).
- Select the decal actor and assign the decal material in Details.
- Scale the decal box to fit the floor area and rotate it so it projects downward onto the floor.
Practical decal idea: a subtle colored stripe along the intended route, or repeated arrow marks at intersections.
Option B: Use a Highlight Material on Specific Floor Pieces
If decals feel like extra setup, you can mark the path by applying a distinct “highlight” material to certain floor segments (or thin meshes placed on top of the floor).
- Create
MI_Highlightfrom your simple master material. - Pick a color that contrasts with the floor (for example, desaturated dark floor + warm bright highlight).
- Apply it only to the path pieces, thresholds, or key turns.
Tip: Keep highlight areas consistent in width and placement so players learn the visual language quickly.
Structured Task: Build a 3-Material Set for Navigation
Goal
Create three materials (or three material instances) and apply them consistently across your blockout so the level is easy to read at a glance.
Deliverables
- Floor material: neutral, non-metal, moderately rough.
- Wall material: different value/color from the floor (usually slightly lighter or darker), matte.
- Highlight material: high-contrast accent used only for navigation cues (path, key door, objective zone).
Step-by-Step Checklist
- Create a master material
M_SimpleSurfacewith parameters forBaseColor,Roughness,Metallic(and optionally Normal support). - Create three instances:
MI_Floor,MI_Walls,MI_Highlight. - Set suggested starting values:
MI_Floor: BaseColor medium-dark neutral, Roughness ~0.7, Metallic 0.MI_Walls: BaseColor slightly different (lighter or cooler), Roughness ~0.8, Metallic 0.MI_Highlight: BaseColor saturated accent, Roughness ~0.5–0.8, Metallic 0.
- Apply
MI_Floorto all floor blockout meshes. - Apply
MI_Wallsto all wall blockout meshes. - Apply
MI_Highlightonly to path markers (either specific floor pieces, thin overlay meshes, or a few key surfaces). - Do a quick readability pass: stand at the player start and check if the intended route is obvious without moving the camera much.