UNREAL ADVANCED BRDF


  • Where to find it:


    • Shader Palette / Add New Shader / Lighting / Standalone


    • NodeGraph / Right Mouse Click / Nodes / Shader Network / Standalone




Unreal Advanced is a BRDF Shader resembling Unreal Engine's BRDF in look and handling.

This allows for material development for Unreal Engine inside of Mari with a close result

to what you will see in-engine.


The Unreal Advanced Shader is a progression from the Unreal Shader included in Mari with additional

features such as 


    • Sliders for Values (will be overwritten when corresponding slot is mapped)
    • Emissive Color
    • Clear Coat
    • Flat+Basic Lighting Modes will return BaseColor instead of black when metallic is 1




Node Overview



Node Ports


  • Output

Outputs the final calculation of the Shader



  • Base Color

Determines the Diffuse Color of the Shader


  • Roughness

Determines the Specular Roughness of the Shader.
When mapped with a Node, the Port overwrites the "Roughness" Slider within the Node Properties


  • Metallic

Determines the Metalness of the Shader.
When mapped with a Node, the Port overwrites the "Metallic" Slider within the Node Properties.

At a value of 1.0 the Base Color of the Shader is used to drive Specular Color and Specular Reflectivity,

while the Diffuse Contribution is set to 0.


  • Specular

Determines the specularity and reflectivness of the Shader, when Metallic is set to 0.0.
When mapped with a Node, the Port overwrites the "Specular" Slider within the Node Properties.

Specular, also sometimes referred to as "Specular Level" is an abtraction of IOR, and only has an effect

of Dielectric (non metallic) materials. 
Dialectric Materials commonly have a specular reflectivity between 0.0 and 0.08.

The Specular Level remaps these values to a range of 0 to 1, meaning its default 0.5 value corresponds to a specular reflectivity of 0.04.


  • Occlusion

The occlusion port can be used to supply a prebaked occlusion map to the shader.
The influence of the port can be controlled with the "Occlusion" Slider within the Node Properties.

Occlusion suppresses difuse and specularity in recessed areas.


  • Emissive Color

Emissive Color adds a self-illuminating attribute to the shader. 
Its intensity can be controlled via the "Emissive" Slider within the Node Properties.


  • Coat Amount

Dertmines the amount of (clear) coating to apply.
When mapped with a node, the port overwrites the "Coat  Amount" Slider within the Node Properties


  • Coat Roughness

Determines the Specular Roughness of the Coat Layer
When mapped with a Node, the Port overwrites the "Coat Roughness" Slider within the Node Properties


  • Coat Color

Determines the Color or the Clear Coat Layer
When mapped with a Node, the Port overwrites the "Coat Color" Field within the Node Properties


  • Coat Specular

Determines the specularity and reflectivness of the Specular Coat.
When mapped with a Node, the Port overwrites the "Coat Specular" Slider within the Node Properties.

Specular, also sometimes referred to as "Specular Level" is an abtraction of IOR

Dialectric Materials commonly have a specular reflectivity between 0.0 and 0.08.

The Specular Level remaps these values to a range of 0 to 1, meaning its default 0.5 value corresponds to a specular reflectivity of 0.04.

Please note, a Clear Coat is always dielectric. It cannot be metallic.


  • Bump

Applies a bump to the shader


  • Normal

Applies a normal map to the shader


  • Displacement

Applies a Displacement to the shader


  • Vector

Applies a Vector Map to the shader



Node Properties





Input Slot vs Slider


Most inputs of the 'Unreal Advanced' Shader have a corresponding slider.

If the Input Slot is not mapped with a channel, this slider will be used.

As soon as you map a channel to the input the value of the slider will be ignored.


This does not apply to the 'Emissive' Slider. The Emissive Slider will control the

glow intensity of the mapped 'Emissive' Color.



  • Base Color

Maps the diffuse color, i.e. the main color of the material.


  • Roughness

The Roughness input controls how rough the Material is. 

A rough Material will scatter reflected light in more directions than a smooth Material. 

This can be seen in how blurry or sharp the reflection is or in how broad or tight the specular highlight is. 

Roughness of 0 (smooth) is a mirror reflection and roughness of 1 (rough) is completely matte or diffuse


The Roughness Progression (samples taken from Unreal Engine Documentation)


  • Metallic

The Metallic input  controls how "metal-like" your surface will be. 

Nonmetals have Metallic values of 0, metals have Metallic values of 1. 

For pure surfaces, such as pure metal, pure stone, pure plastic, etc. this value will be 0 or 1, not anything in between.

When creating hybrid surfaces like corroded, dusty, or rusty metals, you may find that you need some value between 0 and 1.


The Metalness Progression (samples taken from Unreal Engine Documentation)


  • Specular

Specular is a value between 0 and 1 and is used to scale the current amount of specularity for non-metallic surfaces.

It has no effect on metals. Its 0 to 1 range corresponds to a surface reflectivity of 0.00 to 0.08.


  • Occlusion

Allows you to map a cavity map to your shader.

Small scale geometry, especially details only present in the high poly and baked into the normal map, will not be picked 

up by the renderer's real-time shadows. To capture this shadowing, we generate a cavity map, which is typically an AO map

with very short trace distance. This is multiplied by the final BaseColor before output and multiplied with 0.5 (Specular default)

as the Specular output. To be clear this is BaseColor = Cavity*OldBaseColor, Specular = Cavity*0.5.


  • Emissive

Determines which parts of your material are emissive ('glowing' in simple words).

Emissive Color will remove specular and shading from the affected areas and make it less

affected by light changes




  • Amount

Determines the Amount of Clear Coat to add


  • Roughness

Determines the surface roughness of the Clear coat.

A rough Clear Coat will scatter reflected light in more directions than a smooth Material. 


  • Color

Determines the Tint color of the Clear coat.


  • Specular

Specular is a value between 0 and 1 and is used to scale the current amount of specularity for the clear coat..

Its 0 to 1 range corresponds to a surface reflectivity of 0.00 to 0.08.




  • Displacement Bias

Midpoint (0 disp) of your dispacement


  • Displacement Scale

Intensity of your displacement


  • Displacement Range

Intensity multiplier of your displacement


  • Max Tesselation

Quality and detail of the screen space tesselation


  • Perturb Normals

When on, new normals will be calculated after displacement.



  • Bump Weight

Scale of your bumpmapping


  • Bump Mode

• Accurate gives you the smoothest calculation method but takes longer to calculate which can slow down your scene and shader.

• Fastest is the quickest to calculate but you can get odd results and anomalies on a per pixel basis giving you an inaccurate result.


  • Bump Space

Changes the Bump space between UV and World Space