Uniform supports layers and layer masks for all surface tools. You can use layers to organize your work or generate procedural effects.

You can add layers to the Layer Stack in the Layer inspector. Layers are evaluated bottom to top. By default, the Base Layer is active for all objects.

Uniform layers can have different types and can store different kinds of data. For example, you can have a layer that only stores the output of displacement tools, or a layer that just fills a color and discards all displacement and painting operations.

Layers that can store direct output from tools are called “Canvas” layers. Let’s add a Color Canvas layer to this object. As you can see, the color canvas layer stores and blends the painted color output from the Paint Brush, but discards the displacement output from a Clay Brush.

Procedural layers like Fill Color will discard all editing operations. You can configure what a procedural layer does in its properties inspector.

Tap again on an active layer to active Layer Mask painting. The active layer should turn orange. When layer mask painting is active, you can use any painting tool to paint a black and white mask to control the influence of the layer. Tap the layer again to disable Layer Mask painting.

Each type of data (color, displacement, metalness, roughness) that Uniform can use to render a surface is called a Surface Domain. You can see all domains a surface is using in the Domain inspector tab.

When a domain is active (highlighted as blue), the object will use the information from the layer stack to render its surface. You can tap on a domain to disable it. When a domain is disabled, it will output a constant value from the entire surface and ignore all information and procedural effects in the Layer Stack. You can use this to prevent accidental editing of domains that you do not plan to use in your project. You can also disable domains to save memory if you know that your object will not require painting or procedural effects.