> For the complete documentation index, see [llms.txt](https://docs.overthereality.ai/over-sdk-manual/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.overthereality.ai/over-sdk-manual/over-visual-scripting-legacy/nodes/components/engine/material.md).

# Material

### Description

A Material [OverNode](/over-sdk-manual/over-visual-scripting-legacy/visual-scripting-essentials/overnode.md) is used to handle [Materials](https://docs.unity3d.com/ScriptReference/Material.html) runtime.

#### Material Exposer

This [OverNode](/over-sdk-manual/over-visual-scripting-legacy/visual-scripting-essentials/overnode.md) is used to expose certain parameters and attributes of a given input Unity 3D [Material](https://docs.unity3d.com/ScriptReference/Material.html) asset, which are:

<table><thead><tr><th width="205.7659040188865">Name</th><th width="201.3279424240331">Type</th><th width="340.1572968009442">Description</th></tr></thead><tbody><tr><td>Ref</td><td><a href="https://docs.unity3d.com/ScriptReference/Material.html">Material</a></td><td>A reference of the input Unity3D Material Asset</td></tr><tr><td>Color</td><td>Color</td><td>The main color of the Material</td></tr><tr><td>Albedo</td><td><a href="https://docs.unity3d.com/ScriptReference/Texture2D.html">Texture2D</a></td><td>The main texture of the Material</td></tr><tr><td>Metallic</td><td>Float</td><td>In range 0 to 1, determines how “metal-like” the surface is</td></tr><tr><td>Metallic Map</td><td><a href="https://docs.unity3d.com/ScriptReference/Texture2D.html">Texture2D</a></td><td>The metallic gloss map of the Material</td></tr><tr><td>Metallic Smoothness</td><td>Float</td><td>In range 0 to 1, determines how smooth the surface is, influencing the light refraction of the material</td></tr><tr><td>Normal Map</td><td><a href="https://docs.unity3d.com/ScriptReference/Texture2D.html">Texture2D</a></td><td>Special kind of texture that allow you to add surface detail such as bumps, grooves, and scratches to a model which catch the light as if they are represented by real geometry</td></tr><tr><td>Height Map</td><td><a href="https://docs.unity3d.com/ScriptReference/Texture2D.html">Texture2D</a></td><td>Similar concept to normal mapping, however this technique is more complex - and therefore also more performance-intensive.</td></tr><tr><td>Height Value</td><td>Float</td><td>Value to edit the behaviour of the Height Map</td></tr><tr><td>Occlusion</td><td><a href="https://docs.unity3d.com/ScriptReference/Texture2D.html">Texture2D</a></td><td>Texture providing information about which areas of the model should receive high or low indirect lighting</td></tr><tr><td>Detail Mask</td><td><a href="https://docs.unity3d.com/ScriptReference/Texture2D.html">Texture2D</a></td><td>Texture allowing the mask off of certain areas of the model to have the detail texture applied</td></tr><tr><td>Emission</td><td><a href="https://docs.unity3d.com/ScriptReference/Texture2D.html">Texture2D</a></td><td>Texture allowing the Material to emit light, like a visible light source.</td></tr><tr><td>Emission Color</td><td>Color</td><td>Specifies the color and intensity of the emission</td></tr></tbody></table>

{% hint style="info" %}
**Note**: `Emission` and `Emission Color` are only available if the Emission Flag of the Material is set to True.
{% endhint %}

<figure><img src="https://content.gitbook.com/content/6xdubHTzJACGqFIM7yJy/blobs/7t20RTJ4NlYkcEBoDVJ3/mat_expo.png" alt=""><figcaption></figcaption></figure>

### Handlers

#### Set Albedo

This [OverNode](/over-sdk-manual/over-visual-scripting-legacy/visual-scripting-essentials/overnode.md) is used to modify an existing Material, by changing the main texture and colour associated to it.

This Flow [OverNode](/over-sdk-manual/over-visual-scripting-legacy/visual-scripting-essentials/overnode.md) accepts the following input data:

<table><thead><tr><th width="186.7659040188865">Name</th><th width="244.3279424240331">Type</th><th width="340.1572968009442">Description</th></tr></thead><tbody><tr><td>Material</td><td><a href="https://docs.unity3d.com/ScriptReference/Material.html">Material</a></td><td>A reference of the input Unity3D Material</td></tr><tr><td>Color</td><td>Color</td><td>Color to be set</td></tr><tr><td>Albedo</td><td><a href="https://docs.unity3d.com/ScriptReference/Texture2D.html">Texture2D</a></td><td>Texture to be set as the new main texture</td></tr></tbody></table>

and produces the following output data:

<table><thead><tr><th width="186.7659040188865">Name</th><th width="207.3279424240331">Type</th><th width="340.1572968009442">Description</th></tr></thead><tbody><tr><td>Output</td><td><a href="https://docs.unity3d.com/ScriptReference/Material.html">Material</a></td><td>A reference of the modified Unity3D Material</td></tr></tbody></table>

<figure><img src="https://content.gitbook.com/content/6xdubHTzJACGqFIM7yJy/blobs/xFckOiTvKcrwExyooWQZ/mat_set_alb.png" alt=""><figcaption></figcaption></figure>

#### Set Metallic

This [OverNode](/over-sdk-manual/over-visual-scripting-legacy/visual-scripting-essentials/overnode.md) is used to modify an existing Material, by editing its parameters associated with the Metallic Mode.

This Flow [OverNode](/over-sdk-manual/over-visual-scripting-legacy/visual-scripting-essentials/overnode.md) accepts the following input data:

<table><thead><tr><th width="186.7659040188865">Name</th><th width="209.3279424240331">Type</th><th width="340.1572968009442">Description</th></tr></thead><tbody><tr><td>Material</td><td><a href="https://docs.unity3d.com/ScriptReference/Material.html">Material</a></td><td>A reference of the input Unity3D Material</td></tr><tr><td>Metallic</td><td>Float</td><td>Sets how "metal like" the surface of the material will be</td></tr><tr><td>Metallic Map</td><td><a href="https://docs.unity3d.com/ScriptReference/Texture2D.html">Texture2D</a></td><td>The new metallic map of the Material</td></tr><tr><td>Metallic Smoothness</td><td>Float</td><td>Sets how smooth the surface of the material will be</td></tr></tbody></table>

and produces the following output data:

<table><thead><tr><th width="186.7659040188865">Name</th><th width="207.3279424240331">Type</th><th width="340.1572968009442">Description</th></tr></thead><tbody><tr><td>Output</td><td><a href="https://docs.unity3d.com/ScriptReference/Material.html">Material</a></td><td>A reference of the modified Unity3D Material</td></tr></tbody></table>

<figure><img src="https://content.gitbook.com/content/6xdubHTzJACGqFIM7yJy/blobs/0sK579YgNyupomNdNACY/mat_set_metal.png" alt=""><figcaption></figcaption></figure>

#### Set Normal Map

This [OverNode](/over-sdk-manual/over-visual-scripting-legacy/visual-scripting-essentials/overnode.md) is used to modify an existing Material, by setting a new Normal Map for the material.

This Flow [OverNode](/over-sdk-manual/over-visual-scripting-legacy/visual-scripting-essentials/overnode.md) accepts the following input data:

<table><thead><tr><th width="186.7659040188865">Name</th><th width="216.3279424240331">Type</th><th width="340.1572968009442">Description</th></tr></thead><tbody><tr><td>Material</td><td><a href="https://docs.unity3d.com/ScriptReference/Material.html">Material</a></td><td>A reference of the input Unity3D Material</td></tr><tr><td>Normal Map</td><td><a href="https://docs.unity3d.com/ScriptReference/Texture2D.html">Texture2D</a></td><td>The new Normal map of the Material</td></tr></tbody></table>

and produces the following output data:

<table><thead><tr><th width="186.7659040188865">Name</th><th width="207.3279424240331">Type</th><th width="340.1572968009442">Description</th></tr></thead><tbody><tr><td>Output</td><td><a href="https://docs.unity3d.com/ScriptReference/Material.html">Material</a></td><td>A reference of the modified Unity3D Material</td></tr></tbody></table>

<figure><img src="https://content.gitbook.com/content/6xdubHTzJACGqFIM7yJy/blobs/bL0ns7uIG4tAfcVT1xeI/mat_set_bump.png" alt=""><figcaption></figcaption></figure>

#### Set Height Map

This [OverNode](/over-sdk-manual/over-visual-scripting-legacy/visual-scripting-essentials/overnode.md) is used to modify an existing Material, by setting a new Height Map for the material.

This Flow [OverNode](/over-sdk-manual/over-visual-scripting-legacy/visual-scripting-essentials/overnode.md) accepts the following input data:

<table><thead><tr><th width="186.7659040188865">Name</th><th width="216.3279424240331">Type</th><th width="340.1572968009442">Description</th></tr></thead><tbody><tr><td>Material</td><td><a href="https://docs.unity3d.com/ScriptReference/Material.html">Material</a></td><td>A reference of the input Unity3D Material</td></tr><tr><td>Height Map</td><td><a href="https://docs.unity3d.com/ScriptReference/Texture2D.html">Texture2D</a></td><td>The new Height map of the Material</td></tr><tr><td>Height Value</td><td>Float</td><td>New height value of the map (range 0 to 1)</td></tr></tbody></table>

and produces the following output data:

<table><thead><tr><th width="186.7659040188865">Name</th><th width="207.3279424240331">Type</th><th width="340.1572968009442">Description</th></tr></thead><tbody><tr><td>Output</td><td><a href="https://docs.unity3d.com/ScriptReference/Material.html">Material</a></td><td>A reference of the modified Unity3D Material</td></tr></tbody></table>

<figure><img src="https://content.gitbook.com/content/6xdubHTzJACGqFIM7yJy/blobs/9GLIpM3PtfNDzNcI07zv/mat_set_height.png" alt=""><figcaption></figcaption></figure>

#### Set Occlusion Map

This [OverNode](/over-sdk-manual/over-visual-scripting-legacy/visual-scripting-essentials/overnode.md) is used to modify an existing Material, by setting a new Occlusion Map for the material.

This Flow [OverNode](/over-sdk-manual/over-visual-scripting-legacy/visual-scripting-essentials/overnode.md) accepts the following input data:

<table><thead><tr><th width="186.7659040188865">Name</th><th width="216.3279424240331">Type</th><th width="340.1572968009442">Description</th></tr></thead><tbody><tr><td>Material</td><td><a href="https://docs.unity3d.com/ScriptReference/Material.html">Material</a></td><td>A reference of the input Unity3D Material</td></tr><tr><td>Occlusion Map</td><td><a href="https://docs.unity3d.com/ScriptReference/Texture2D.html">Texture2D</a></td><td>The new Occlusion map of the Material</td></tr></tbody></table>

and produces the following output data:

<table><thead><tr><th width="186.7659040188865">Name</th><th width="207.3279424240331">Type</th><th width="340.1572968009442">Description</th></tr></thead><tbody><tr><td>Output</td><td><a href="https://docs.unity3d.com/ScriptReference/Material.html">Material</a></td><td>A reference of the modified Unity3D Material</td></tr></tbody></table>

<figure><img src="https://content.gitbook.com/content/6xdubHTzJACGqFIM7yJy/blobs/D2z3RXjuI9rGByUQm3WP/mat_set_occ.png" alt=""><figcaption></figcaption></figure>

#### Set Detail Mask

This [OverNode](/over-sdk-manual/over-visual-scripting-legacy/visual-scripting-essentials/overnode.md) is used to modify an existing Material, by setting a new Detail Mask for the material.

This Flow [OverNode](/over-sdk-manual/over-visual-scripting-legacy/visual-scripting-essentials/overnode.md) accepts the following input data:

<table><thead><tr><th width="186.7659040188865">Name</th><th width="216.3279424240331">Type</th><th width="340.1572968009442">Description</th></tr></thead><tbody><tr><td>Material</td><td><a href="https://docs.unity3d.com/ScriptReference/Material.html">Material</a></td><td>A reference of the input Unity3D Material</td></tr><tr><td>Detail Mask</td><td><a href="https://docs.unity3d.com/ScriptReference/Texture2D.html">Texture2D</a></td><td>The new Detail mask of the Material</td></tr></tbody></table>

and produces the following output data:

<table><thead><tr><th width="186.7659040188865">Name</th><th width="207.3279424240331">Type</th><th width="340.1572968009442">Description</th></tr></thead><tbody><tr><td>Output</td><td><a href="https://docs.unity3d.com/ScriptReference/Material.html">Material</a></td><td>A reference of the modified Unity3D Material</td></tr></tbody></table>

<figure><img src="https://content.gitbook.com/content/6xdubHTzJACGqFIM7yJy/blobs/CaNLEOHkE131ktx3xCih/mat_set_det.png" alt=""><figcaption></figcaption></figure>

#### Set Emission Map

This [OverNode](/over-sdk-manual/over-visual-scripting-legacy/visual-scripting-essentials/overnode.md) is used to modify an existing Material, by setting a new Emission Map for the material.&#x20;

This Flow [OverNode](/over-sdk-manual/over-visual-scripting-legacy/visual-scripting-essentials/overnode.md) accepts the following input data:

<table><thead><tr><th width="186.7659040188865">Name</th><th width="216.3279424240331">Type</th><th width="340.1572968009442">Description</th></tr></thead><tbody><tr><td>Material</td><td><a href="https://docs.unity3d.com/ScriptReference/Material.html">Material</a></td><td>A reference of the input Unity3D Material</td></tr><tr><td>Emission Map</td><td><a href="https://docs.unity3d.com/ScriptReference/Texture2D.html">Texture2D</a></td><td>The new Emission map of the Material</td></tr><tr><td>Emission Color</td><td>Color</td><td>The color of the new Emission map</td></tr><tr><td>Intensity</td><td>Float</td><td>Intensity of the light emitted</td></tr></tbody></table>

and produces the following output data:

<table><thead><tr><th width="186.7659040188865">Name</th><th width="207.3279424240331">Type</th><th width="340.1572968009442">Description</th></tr></thead><tbody><tr><td>Output</td><td><a href="https://docs.unity3d.com/ScriptReference/Material.html">Material</a></td><td>A reference of the modified Unity3D Material</td></tr></tbody></table>

<figure><img src="https://content.gitbook.com/content/6xdubHTzJACGqFIM7yJy/blobs/QRDqLpxuitCS8pTaT4eT/mat_set_em_map.png" alt=""><figcaption></figcaption></figure>

#### Set Emission Flag

This [OverNode](/over-sdk-manual/over-visual-scripting-legacy/visual-scripting-essentials/overnode.md) is used to modify an existing Material, by editing the value of the Emission Flag of the Material.&#x20;

This Flow [OverNode](/over-sdk-manual/over-visual-scripting-legacy/visual-scripting-essentials/overnode.md) accepts the following input data:

<table><thead><tr><th width="186.7659040188865">Name</th><th width="216.3279424240331">Type</th><th width="340.1572968009442">Description</th></tr></thead><tbody><tr><td>Material</td><td><a href="https://docs.unity3d.com/ScriptReference/Material.html">Material</a></td><td>A reference of the input Unity3D Material</td></tr><tr><td>Emission</td><td>Boolean</td><td>The new Emission Flag value</td></tr></tbody></table>

and produces the following output data:

<table><thead><tr><th width="186.7659040188865">Name</th><th width="207.3279424240331">Type</th><th width="340.1572968009442">Description</th></tr></thead><tbody><tr><td>Output</td><td><a href="https://docs.unity3d.com/ScriptReference/Material.html">Material</a></td><td>A reference of the modified Unity3D Material</td></tr></tbody></table>

<figure><img src="https://content.gitbook.com/content/6xdubHTzJACGqFIM7yJy/blobs/EOEPtz5Vzd8SgNQ2Lbu0/mat_set_em_flag.png" alt=""><figcaption></figcaption></figure>
