> For the complete documentation index, see [llms.txt](https://sylvl.gitbook.io/panoramake-release/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sylvl.gitbook.io/panoramake-release/interface-overview/builder-interface/building-materials.md).

# Building Materials

The material settings is where the maps making the Sub-Layers's Material are set.&#x20;

Each option will be shown separately below, featuring the Scalability and Mobile toggles/features if present but won't be discussed in this page. &#x20;

Please see [Scalability Options](/panoramake-release/scalability-and-cross-platform-development/scalability-options.md) to learn more about the Scalability toggles, and [Unified Cross-Platform Development](/panoramake-release/scalability-and-cross-platform-development/unified-cross-platform-development.md) for the Mobile|VR switches.

{% hint style="info" %}
Some of these parameters work in the same way as on the [Master Surfaces Shaders](https://www.unrealengine.com/marketplace/en-US/product/p-n-p-master-surfaces-shaders-ue5-compatible). \
**As such, some links to the MSS Documentation will be present instead of a detailed description.**
{% endhint %}

For most options, a  ![](/files/Y7OCfWlDitEFkd8JCSCg) button is available next to the option's name. \
**Clicking it will allow you to restore the default values for it.**

**Right-clicking a value also allows to restore it to default.**

### Sub-Layer Material Settings

<details>

<summary>Exclude Sub-layer from Caching </summary>

*Enabled only if the Sub-Layer is uncached.*

<img src="/files/lYexgIDugF6W7TnLqfEk" alt="" data-size="original">

* Excludes this layer from caching. \
  See [Landscape Caching](/panoramake-release/setting-up-instance/landscape-caching.md) for more information.

</details>

<details>

<summary>Use Texture Atlasses</summary>

*Visible only on MULTI Instance mode.*

![](/files/4QMIsrfU71ERYrcZUTJd)\
\
Enables the use of Atlasses textures to reduce the number of texture samplers used if many Sub-Layers are used across multiple BIOMES.

Should be toggled only **if absolutely necessary**, as it has a big performance impact that is not justified unless the Instance crashes due to the number of Texture Samplers !

* Clicking on "Refresh Biome Atlasses" will fully refresh the Texture Arrays with all textures set in the Biome. It may be necessary if a texture shown using atlasses isn't the same as shown without.

</details>

<details>

<summary>[ES3.1] Use Sub-Layer on Mobile</summary>

*Visible only with* [*Unified Cross-Platform*](/panoramake-release/scalability-and-cross-platform-development/unified-cross-platform-development.md) *enabled.*

![](/files/RvdDT3Q86v5WFePc2cqw)

* See [Sub-Layer on Mobile](/panoramake-release/scalability-and-cross-platform-development/unified-cross-platform-development/all-switches-and-features-for-es3.1.md#use-sub-layer-on-mobile) in [All Switches & Features for ES3.1](/panoramake-release/scalability-and-cross-platform-development/unified-cross-platform-development/all-switches-and-features-for-es3.1.md).

</details>

### Sub-Layer Texture Settings

<details>

<summary>UV Tiling</summary>

![](/files/abmwRzvLyEKrcRPa33BN)

* [Scales the texture map tiling on the terrain.](https://sylvl.gitbook.io/untitled/guide/global-settings#uv-scale)

</details>

<details>

<summary>Distance-Based UV Scaling</summary>

![](/files/u9GUgrzXJKUJpm2R1iDd)

* When enabled, samples the texturing at a different UV Scaling and shows it when the player is at a certain distance of the surface. Useful for keeping "crisp" materials far away like rock surfaces.

In the example below, a version of the current Material with a UV Scale of 2.5 will be shown starting from the distance of 6000 units on top of the normal Material.

![](/files/XSSWmdpObbuHkwEPKiqK)

</details>

<details>

<summary>Break UV Tiling</summary>

![](/files/V6VTjxdH7pgRZyoSsXgo)

* [Samples the texture differentely to break texture repetition. Settings are the same as on the Master Surfaces Shaders.](https://sylvl.gitbook.io/untitled/guide/global-settings#uv-breaking)

</details>

<details>

<summary>Triplanar Mapping</summary>

![](/files/0IAiT4Uq85ts2Ea3c901)

* [Reduces texture deformation on stretched surfaces like high terrain spikes.](https://sylvl.gitbook.io/untitled/guide/global-settings#triplanar-mapping) \
  [Smoothness changes the transition's smoothness.](https://sylvl.gitbook.io/untitled/guide/global-settings#triplanar-mapping)

</details>

<details>

<summary>Parallax Occlusion Mapping</summary>

*Unavailable if Break UV Tiling is enabled, or if the Layer is cached.*

<div align="left"><figure><img src="/files/59fAFpruv83MPChXxbVY" alt=""><figcaption></figcaption></figure></div>

* Uses a heightmap to simulate depth, based on the selected texture channel and set Height ratio.

The effect is visible until the set draw distance + fallos off progressively with the falloff distance.

The **Enable Shadows** setting is heavier in computations as it requires **PixelDepthOffset**.

</details>

<details>

<summary>Specular Settings</summary>

![](/files/41pegc8axoR7VxBStenK)

* Uses a channel of the Base Color as the specular output. \
  The value is a cap as natural landscape aren't surfaces with a lot of specularity.

</details>

### Texture Maps Input

<details>

<summary>Base Color</summary>

![](/files/zLYdQ1jlC7X71xmoyB1q)

* Base Color slot of the Material
* If "Use Uniform Color" is checked, a uniform color will be used instead of a texture map. The color can be changed by clicking the Uniform Color thumbnail.
* **Texture Adjustements are available below :**&#x20;
  * Hue Shift (from 0 to 360)
  * Saturation (Values under 0 to desaturate, over 0 to saturate)
  * Contrast
  * Luminosity (0 for black, 1 by default, more than 1 to increase lightness)
  * Tint (Color)

</details>

<details>

<summary>Normal Map</summary>

<img src="/files/C8rp9ynzG3q4dDofbe2G" alt="" data-size="original">

* Normal Map slot of the Material
* **Texture Adjustements are available below :**&#x20;
  * Regular Flatness (1 for full flat, values under 0 to increase normal strength)
  * Distance-Based Flatness available when Distance-Based UV Scaling is enabled
  * Reverse Normal can be checked for inverting the Map

</details>

<details>

<summary>ORM Values</summary>

![](/files/4fR0C8Q5py7kY6NprPmM)

* Occlusion/Roughness/Metallic slot of the Material
* Packed "ORM" Texture can be enabled/disabled, but should **always be used for optimization purposes if more than 1 map is used** for any of the ORM channels.
* If Uniform Roughness/Metalness is checked, the texture won't be used and an uniform value will be used.&#x20;
* If "Use Occlusion Map" is checked, the Occlusion map will be multiplied with the Color and Specular values following the Occlusion map adjustement options.
* **Texture Map & Settings are available if a Texture Map is used for any of the channels instead of uniform values :**

&#x20;![](/files/xw8sSEK5LQdBhvvD9PmA)&#x20;

* Each map can be selected (if "Use Packed "ORM" Texture" is disabled.)
* Contrast & Luminosity adjustement are available for each, except Metalness as a Texture map should be avoided as much as possible for performance reasons.
* Metalness is present if need be but affects the shader complexity and is not cacheable !

  Using a metalness map will need the processing of the affected sub-layer to be done **even if it's cached, so it should be always set to Uniform Value except for special cases** !

</details>

<details>

<summary>Use Displacement</summary>

[*Visible only with a Studio license.*](/panoramake-release/introduction/licenses-differences.md)

![](/files/Xneo6obnrGh7wHduvcwt)

* Displacement slot of the Material
* If enabled, displaces a Virtual Heightfield Mesh or the Landscape if Nanite Tessellation (5.4+) is enabled. \
  If it is, a Nanite Strength option will be visible ranging from 1 to 0.\
  See [Adding Displacement](/panoramake-release/setting-up-instance/adding-displacement.md) for more informations.
* The Texture is contrasted **before** the Force setting.
* The texture used for the Displacement can be a Texture, the last channel of the ORM Map ("Use ORD Texture Format" as featured on some Megascans maps) or the Alpha channel of the Base color.

</details>
