Material Editor Reference

Choose your OS:

The Material Editor provides the ability to create shaders to be applied to geometry using a node-based graph interface.

This document describes how to use the Unreal Editor's Material Editor. For a description of what the various material expressions do, see the Materials Compendium .

For more information about the Material Editor UI, see Material Editor UI .

Opening the Material Editor

The Material Editor can be opened by double-clicking any Material asset or through the right-click context menu of a Material asset in the Content Browser. Either of these will open up that particular Material in the Material Editor for editing.

The Material Editor is also opened whenever you create a new Material in the Content Browser, which is done either by right-clicking and choosing New Material from the context menu, or clicking the Add New button at the top of the Content Browser and choosing Material from the drop-down list.

Commenting Material Expression Networks

Comments are a great way to document what your Material is doing, making it easier for you and others to understand what is going on within a complicated material graph. There are two ways to add comments to your Materials: by adding text to the Desc property of individual nodes or by placing nodes within a Comment object frame.

Using the Desc Property

Every material expression node contains a Desc property, available in the Details panel. This property exists as a way for artists to add an explicit description of what a specific node is doing. Simply add text into the Desc property field in the Details panel and the text will appear in a text bubble just above the current node.

descpropertycomment.png

Using Comments

Comments are another way to make descriptive notes about what certain parts of your material network are doing. Creating them will allow you to stretch a frame around a group of multiple nodes, making this a perfect way to describe entire sections of a network, rather than using the Desc property to describe a single node at a time.

You can create a Comment at any time by pressing C while hovering the mouse over the Graph. You can also right-click in any blank area of the Graph and choose Add Comment from the context menu.

The comments themselves are displayed as banners of text along the top of the comment box. This text will not scale with the Graph's zoom level, so even when zoomed far away, you will still be able to read the description.

Comments.png

Nodes within a comment frame can be moved by dragging on the group comment text. The frame can be resized by dragging on the edges of the comment box. Any nodes inside a group comment will be moved with the frame, so you can resize an existing frame to include new nodes.

Comments can be renamed by selecting the comment and then modifying the Text property using the property window.

Live Nodes and Live Update

toolbar_live_nodes.pngtoolbar_live_update.png

When making changes to a network, it can be useful to get immediate feedback from each change in realtime. The Material Editor offers two features in the Graph to give you instantaneous feedback for your network: Live Nodes and Live Update.

The difference between these two options may not be apparent at first. Live Nodes allows for any constant changes that the nodes make - due to such expressions as Panners - to playback in real time.

Live Update, on the other hand, allows for each node within the network to have its shader recompiled whenever a change is made. These changes include creation of new nodes, deletion of nodes, node connections and disconnections, and changes in properties. This recompilation is necessary so that the material preview drawn at that node is up to date. However, recompiling these intermediate shaders can be time-consuming, especially if your Material contains many nodes. If you are experiencing long wait times after every change, you may want to deactivate the Live Update option.

As an example, consider the example below, in which we have a panning texture of an awesome rocket hull being multiplied by a vector parameter, which is supplying color.

LiveNodesLiveUpdate.png

  • In this example, activating Live Nodes would cause the rocket texture to pan in realtime in the node's preview thumbnail. If Live Nodes was deactivated, the texture would remain stationary even though the Panner was telling it to move. You may, however, notice small updates as you move your mouse around the Graph area.

  • If you changed the color from cyan to purple, you would only see the change if Live Update was active. With Live Update off, the change in color would not be visible on the nodes, even though the color property was indeed changed.

When Live Update is deactivated, you can force-update all previews manually by hitting the Spacebar. Fast iteration can be achieved by disabling Live Update and then pressing the spacebar whenever you would like to view your changes.

Compiler Errors

Each time a change is made to the material network, the Material must be compiled. If any required inputs of an expression within the network have no connections or are being passed the wrong type of data, a compiler error will occur. These errors are displayed in the Graph Panel .

Compiler errors let you know a problem exists and what that problem is by providing information about the type of expression that they occurred on and a description of the error.

error_highlight.png

Material Expression Search

The search functionality in the Material Editor allows you to quickly find any nodes (including comments) within the material network that contain a specific piece of text in their description or certain other properties specific to individual types of expressions. This makes it easy to add identifying keywords to nodes and jump to them at a later time without hunting through the network of expressions haphazardly.

Typing a full or partial keyword into the search box will perform a search against the properties of the expressions present in the Graph panel. The currently selected result will be brought into view and highlighted.

search_highlight.png

The search is case-insensitive.

Searches are performed against the following property values:

Expression Type

Searched Properties

All

Desc

Texture Sample

Texture

Parameters

ParamName

Comment

Text

FontSample

Font

MaterialFunctionCall

MaterialFunction

Searches can also be performed for specific types of expressions by using the NAME= switch with your search. For example, to find all texture samplers, you could use the following search:

NAME=texture

When a new match is clicked in the Search panel, it will be brought into view in the Graph tab if it is not already visible.

To clear a search, simply press the search_clear_button.png button.

Tags