Skip to content

The Material Graph

Open a Material to edit it in the material graph: a canvas of nodes you wire together. Values flow left to right into the Material Output node, which defines the final surface.

Every material ends at the Material Output. For a standard (PBR) material, connect what you need; anything left unconnected uses a sensible default.

InputTypeControls
Base ColorcolorThe surface color (albedo).
Metallicscalar0 = non-metal, 1 = metal.
Roughnessscalar0 = mirror smooth, 1 = fully rough.
SpecularscalarReflectance for non-metals. Usually left at its default.
EmissivecolorLight the surface gives off. HDR, so it feeds bloom.
Ambient OcclusionscalarDarkens indirect light in crevices.
NormalvectorA tangent-space normal map for surface detail.
OpacityscalarTransparency, used by the Masked and Translucent blend modes.
World Position OffsetvectorMoves vertices in the vertex stage, for wind or water.

Right-click the canvas to add a node, or use the quick-place shortcuts: hold a key and click the canvas.

KeyNode
1 to 4Constant Float / Float2 / Float3 / Float4
5Time
6World Position
7Texture Coordinates
8Vertex Normal
9Multiply
0Add

Drag from one node’s output pin to another node’s input pin to connect them.

The graph has a deep set of nodes, grouped by category:

CategoryWhat’s in it
ConstantsFixed numbers and colors, plus built-ins like Pi.
InputsPer-pixel data: texture coordinates, world position, vertex normal, time, camera position.
TexturesSample a texture, the most common node.
MathAdd, multiply, lerp, clamp, power, sin, and dozens more.
VectorBuild, split, mask, normalize, dot, cross.
ColorDesaturate, tint, contrast, gamma, HSV conversions.
ShadingFresnel, depth fade, normal-from-height, blend normals.
UVRotate, tile, panner, flipbook, polar coordinates.
NoisePerlin, Voronoi, value, gradient, checkerboard.
ConditionalCompare and branch on values.
SceneScreen position, scene color and depth, for post-process materials.
FunctionCall a Material Function, or define its inputs and outputs.

A parameter is a value you can change later from a Material Instance without touching the graph. Right-click a constant or texture node and choose Make Parameter, then give it a name. That name is how instances refer to it.

Expose anything a designer might want to tweak, a color tint, a roughness value, a detail texture, as a parameter.

Beyond the graph, a material has a few settings:

  • Type: usually PBR, a lit surface. Other types target specific passes: Post Process, Decal, and UI.
  • Shading Model: Lit (default) or Unlit (emissive only, ignores lighting).
  • Blend Mode: Opaque (default), Masked (alpha-tested cutouts, with an Opacity Mask Clip Value threshold), Translucent (alpha blended), or Additive.
  • Two Sided: render both faces, for foliage and thin surfaces.
  • Cast Shadows: whether the surface casts shadows.

Press Compile in the toolbar to build the shader from the graph and save the material. Compilation happens in the editor only; the shipped game loads the compiled result.