# Parameter Reference - Graph

## **Global Parameters**

![Global Parameters](https://2959358512-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkbFtFcgzGsjc9kCvZT%2Fuploads%2FYVm0yJ2SwYwYcDKjSl4u%2FGraphParam_Global.jpg?alt=media\&token=5d0b9765-856a-4464-a665-6f9ece2b0aa0)

1. **Reset** Resets the entire Decal Designer graph instance to default values. Useful if you've changed lots of values and you just want a quick blank canvas to start again.&#x20;

{% hint style="warning" %}
There is a bug in the Substance plugin where pressing **Reset** also changes your texture output resolution to 256 but displays 1024 as your currently active resolution. Either close and open the current Decal Designer graph instance window or set another resolution as a workaround to this
{% endhint %}

2\. **Export Preset** Export your current Decal Designer graph instance values as a Substance preset file (.sbsprs) which can be loaded by any other Decal Designer substance graph instance using the **Import Preset** feature. All of the supplied examples of the [Decal Library](https://ronanmahon-art.gitbook.io/decal-designer/library/decal-library) are also available as preset files to be easily loaded into your current session as a starting point. These presets are located in the local Content\DecalDesigner\Presets\ folder of your content directory.

3\. **Import Preset** Import previously exported graph instance values

{% hint style="info" %}
Only parameters which have been changed from the Default values will be exported. This can lead to slightly unexpected results if you current graph is not in the default state when importing, but this behaviour is useful by design. For example a Preset which affects how a surface looks (e.g one with the material properties for Oil) can be applied without affecting all of your other parameter selections of your current session such as **Pattern** choice etc. Preset files can also be edited with a simple text editor to remove unwanted parameters.&#x20;
{% endhint %}

4\. **Label** Shows the current Graph Instance Factory in use. Useful if you want to switch to a different factory to enable different outputs or features e.g one with channel packing or world UV

5\. **Outputs** Control which textures are being output e.g BaseColor, Normal etc.&#x20;

{% hint style="info" %}
Disable any **Outputs** you don't need to increase performance of Decal Designer whilst editing
{% endhint %}

6\. **Output Size** Control the texture output resolution. Higher values decrease performance of Decal Designer whilst editing. Recommend default of 2048 with a **Quality** setting of **Medium** whilst editing for best results.

7\. **Random Seed** Click **Randomize Seed** to get a new procedural variant of your current graph. Enter or save an existing seed number you wish to use

8\. **Quality** Control used to help performance whilst editing. Affects resolution and quality of textures.&#x20;

* **Draft** Quickest to render but uses lower quality processes and reduces resolution of some channels
* **Medium** Recommended Default whilst editing. Uses *some* lower quality but quicker processes
* **High** Slowest to render but best quality. Uses max quality as well as resolution set by **Output Size.**&#x20;

{% hint style="info" %}
For the best experience it is recommended to set **Quality** to **Medium** by default whilst editing in Decal Designer. Once you are happy with the result of your parameter selection, be sure to enable **High** on the **Quality** setting to get the best final results &#x20;
{% endhint %}

9\. **Invert All Masks** Inverts all masks being used, with the exception of **Edge Feather**

10\. **Opacity** Control opacity of your current Decal. Useful for quick testing but it is generally better to use the provided opacity controls of the Material Instance. Using this **Opacity** parameter in Decal Designer will limit the utility of the generated textures as it will be output into the Opacity mask texture.

11\. **(A-B) Balance** Adjust the appearance by weighting opacity toward either Layer A or B. Useful for example if you want just a *little* bit of cracking with your dirt

12\. **(A-B) BlendMode** Control how Layer B is combined with Layer A

1. **Additive** Layer B is additively combined with Layer A
2. **Subtractive** Layer B is subtracted or removed from Layer A

13\. **(A-B) Height Masking** Blend Layer B with Layer A by using A as a height mask. E.g. Paint brushed only onto the top edges of a concrete surface, ignoring any recesses&#x20;

14\. **Mask Debug View** Temporarily disable material response and show coded A and B Layers

## A Layer Parameters

![A Layer Parameters](https://2959358512-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkbFtFcgzGsjc9kCvZT%2Fuploads%2Ftbgs0eH2xQ5nL5PhPn84%2FGraphParam_ALayer.jpg?alt=media\&token=fcd5ea4d-1ed0-4d5e-8411-139ebea63c78)

{% hint style="warning" %}
All controls of the Layer A ***also*** affect any **Custom Input** texture being used, including UV controls&#x20;
{% endhint %}

**Amount** Control how much of Layer A is visible

**Pattern** Choose from 50 core procedural patterns with pattern 0 being none and pattern 50 being fully covered

**Tweak** Adjust the current active **Pattern** of Layer A with it's own unique fine tuning. Contextual based on which **Pattern** you have selected

**Style** Choose from 13 different curves to stylize the look of Layer A, for example **Style** 01 is cell shaded

**Blur** Blurs the Layer A mask, useful for reducing detail or changing **Normal** shape profile

**Contrast** Increase or decrease the contrast of the Layer A mask

**Color** Choose the color used for Layer A

**Value Variation** Adjust how much value (black or white) variation there is in the **Color** of Layer A

**Hue Variation** Adjust how much hue variation there is in the chosen **Color.** Requires chosen color to have some saturation present

**Variation Type** Adjust the shape of mask used for both **Value Variation** and **Hue Variation**

**Roughness** Set the roughness value

**Rough Variation** Adjust how much variation there is to the chosen **Roughness** value

**Rough Variation Type** Adjust the shape of mask used for **Roughness Variation**

**Normal** Control the influence of Layer A on the normal output. Positive values extrudes the shape while negative values recess it

**Normal Softness** Softens the normal output by blurring the Layer A mask being used. Positive values soften the normal while negative values sharpen it.&#x20;

**Normal Style** Choose from 13 different curves to stylize the look of Layer A Normal,  e.g  **Style** 01 is a cell shaded look. Also useful for creating looks such as peeled paint or affecting the bevel profile and extrusion of the brick patterns.

**Normal Trim** Trim histogram values of Layer A mask being used when generating normal output. An input closer to 1 will trim the high values, closer to 0 will trim the lower values. Useful for effects like cast concrete or a surface which been flattened in either the high or low sections such as puddles, cast or scraped surfaces.

**NormalMask Contrast** Adjust the contrast of the Layer A mask used to create the normal output

**Metallic Value** Set the metallic value for Layer A

**Invert Mask** Invert the Layer A mask

## B Layer Parameters

![B Layer Parameters with unique parameters highlighted](https://2959358512-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkbFtFcgzGsjc9kCvZT%2Fuploads%2FlulGBvvKtSgSV2y2OBjg%2FGraphParam_BLayer.jpg?alt=media\&token=321d45df-6bd5-47c0-89f2-5bc610bd71a1)

{% hint style="warning" %}
All controls of the Layer B ***also*** affect any **Custom Input** texture being used, including UV controls&#x20;
{% endhint %}

{% hint style="info" %}
The parameters for controlling Layer B are the same as Layer A with the following notable exceptions
{% endhint %}

**Pattern** The patterns 02-06 for Layer B are special as they are contextual based on the active pattern in Layer A. For example, **Pattern** 02 will create little pebble like shapes, distributed based on your Layer A Pattern input. For example, you could use this to create a stone walkway with little pebbles only located in the cracks. The **Tweak** value is quite important for Patterns 02-06 as it will, among other things, adjust how the Layer A pattern is interpreted for distribution. This can be used to instead move the little pebbles in our example from being located in just the cracks to being located in just the areas on top of the pavement, and not in any cracks &#x20;

**Color Opacity** Adjust the **Color** opacity of Layer B, revealing the underlying color of Layer A. Useful for semi-transparent surfaces like stains or water ver the top of another surface.&#x20;

**Color Below Blur** Allows you to blur the underlying BaseColor of Layer A in any place which Layer B is visible. Useful when used in conjunction with **Color Opacity** (above) if you want to simulate a blurry depth in the material of Layer B for semi-transparent surfaces such as ice, plastic or puddles

**Normal Thickness** Controls how the Normal of Layer B is applied over the top of Layer A. Using a value of 0 will result in a combined normal, where the Normals of both A and B are visible. As you increase thickness the Layer A normal will gradually be replaced by that of Layer B. The underlying normal of Layer A is also gradually blurred to simulate the thickness of the Layer B material covering it&#x20;

## Edge Control

![](https://2959358512-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkbFtFcgzGsjc9kCvZT%2Fuploads%2FAnyZcbzUN816Dqpilysl%2FGraphParam_Edge.jpg?alt=media\&token=0069d893-8528-4f5d-9526-b6a884a769bb)

**Edge Pattern** Select from 8 edge patterns, from circular in shape to those useful for piling debris in corners. Pattern 01 (default) is no edge pattern. &#x20;

**Edge Balance** Control the edge opacity falloff balance&#x20;

**Edge Contras**t How soft or sharp the edge opacity falloff is

**Edge Variation** Add variation and disorder to the current edge pattern

**Edge Variation Type** Adjust the shape of **Edge Variation** currently in use

**Edge Normal** Whether the edge pattern affects the normal output. Positive values extrude the edge shape, negative values recess it

**Edge Feather** Creates a small opacity feather around the extents of the Decal mask. Useful for removing any sharp edges or obvious clipping to the outer edge mask which can be caused by extreme **Edge Variation** values

**Edge Invert** Inverts the edge mask. Does not affect **Edge Feather**

**Edge Export Separate Mask** Separates the Edge Mask into a new Texture "\_AE" . This parameter is only visible and toggleable in children of the "\_AllOutputs" Substance Instance Factory

{% hint style="info" %}
For "\_WorldUV" graphs the Edge Mask is exported as a separate texture "*\_*&#x41;E". This is necessary when using world aligned or triplanar UV Decal Materials, where the edge mask requires different UV's to the main World Aligned opacity mask.
{% endhint %}

## **Roughness Advanced**

![Roughness Advanced Parameters](https://2959358512-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkbFtFcgzGsjc9kCvZT%2Fuploads%2FYRClcL5fTAwd5RVqo6q1%2FGraphParam_RoughAdv.jpg?alt=media\&token=d4753fc8-ac38-4a6a-bb22-4460e7326da8)

**RoughMask Spread** Shift the boundary for where the **Roughness** value for Layer B spreads into Layer A. Values closer to 0 allow Layer A roughness to erode into Layer B, while values closer to 1 allow Layer B to spread roughness values into Layer A. For example with a wet patch (Layer B) on rough ground (Layer A) you could have a value close to 0. This would make the center of the patch look shiny and wet but quickly drying out toward where the rough ground is more visible.

**RoughMask Contrast** Control how soft or sharp the falloff boundary between the **Roughness** of Layer A and Layer B is

## Metallic Advanced&#x20;

![](https://2959358512-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkbFtFcgzGsjc9kCvZT%2Fuploads%2FiOflHiVdJysnWZhmszWx%2FGraphParam_MetallicAdv.jpg?alt=media\&token=398b496f-9fe9-49f3-9e34-c2b6e06f9ff7)

**MetalMask Spread** Shift the boundary for where the **Metallic** V**alue** for Layer B spreads into Layer A. Values closer to 0 allow Layer A metallic value to erode into Layer B, while values closer to 1 allow Layer B to spread metallic values into Layer A. For example with a rust spot (Layer B) on a bare metal surface (Layer A) shifting this boundary can help hide the white metallic outline/halo which is sometimes visible in the PBR Metalness workflow when a metallic surface transitions into a non-metallic one

**MetalMask Contrast** Control how soft or sharp the falloff boundary between the **Metallic Value** of Layer A and Layer B is

## Height

![](https://2959358512-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkbFtFcgzGsjc9kCvZT%2Fuploads%2FDhxLsbQxbNJjBFdjfFgh%2FGraphParam_Height.jpg?alt=media\&token=77d3f25c-b1c7-49b6-8468-a6ac9c696fa5)

The **Height** output Texture (\_H) has a number of uses, including effects such as Parallax Occlusion Mapping or even Tessellated Displacement (when used in a Material on a Mesh) to deform a surface.

{% hint style="warning" %}
Height is created based off the **Normal** data you enter for Layer A or B by changing the various normal parameters. Because of this you need to have adjusted the **Normal** for Layer A or B in order to see any Height output in the "\_H" Texture
{% endhint %}

**Enable Height Output** Enables Height texture output

**Height Relief Balance** Filter the shape balance of your Height output. Lower values result in smaller detailed shapes while larger values result in larger and softer shapes.&#x20;

**Height Range** Adjust Height histogram value range. Useful for controlling the difference in distance between your highest and lowest points of the Height output. Note that a smaller range will result in less information in the Height output, possibly lowering the quality of displacement

**Height Position** Set the position in the value histogram for the mid point of your Height output. Useful for shifting the position of the height map up or down

{% hint style="info" %}
Height parameters and output Texture are only available in Decal Designer Substance Graph Instance which are children of the "\_Height" Substance Instance Factory
{% endhint %}

## UV Controls General

![UV Controls General](https://2959358512-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkbFtFcgzGsjc9kCvZT%2Fuploads%2F6Baw3PKY4qHabpeoicne%2FGraphParam_UVGeneral.jpg?alt=media\&token=8e00408b-cb01-4d54-82f6-63ee419b4249)

**A) Tile** Adjust the tiling for Layer A. Higher values increase tiling. Also affects any **Custom Input** texture

**B)Tile** Adjust the tiling for Layer B. Higher values increase tiling

**Tiling General** Adjust the tiling for both Layer A and B. Higher values increase tiling. Does not affect Edge masking or **Edge Feather**

**Offset General** Offset the U or V position for Layer A and B. Does not affect edge masking or edge feather

**Rotation General** Rotate Layer A and B. When **Tile Safe Rotation General** (see below) is disabled allows for free rotation, otherwise the rotation is tile safe. Does not affect edge masking or edge feather

**Tile Safe Rotation General** Enable or disable tile safe rotation for **Rotation General** (see above)

## UV Controls Layer A

![UV Controls Layer A](https://2959358512-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkbFtFcgzGsjc9kCvZT%2Fuploads%2FGUn5IarvrFcgmiHfJAYZ%2FGraphParam_UVLayerA.jpg?alt=media\&token=2b39ca41-23d4-433a-b67b-68914c9ed270)

**A) Scale** Adjust the U and V scale of Layer A. When **A) Tile Safe Scale** (see below) is disabled this allows for free scaling, otherwise by default scaling is tile safe.

**A) Tile Safe Scale** Enable or disable tile safe scaling for **A) Scale** (see above)

**A) Offset** Offset the U or V position for Layer A&#x20;

**A) Rotation** Rotate Layer A. When **A) Tile Safe Rotation** (see below) is disabled this allows for free rotation, otherwise by default the rotation is tile safe.

**A) Tile Safe Rotation** Enable or disable tile safe rotation for **A) Rotation** (see above)

## UV Controls Layer B

![UV Controls Layer B](https://2959358512-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkbFtFcgzGsjc9kCvZT%2Fuploads%2FdWbL5mwc5d62pE77XKWp%2FGraphParam_UVLayerB.jpg?alt=media\&token=6766dfa7-48a2-4bf7-8cc3-ce565be55d51)

{% hint style="info" %}
See the description of UV Controls Layer A&#x20;
{% endhint %}

## Misc

![](https://2959358512-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkbFtFcgzGsjc9kCvZT%2Fuploads%2FTsPX9evyE6H1m3B7iAkV%2FGraphParam_Misc.jpg?alt=media\&token=81571683-5f7b-4360-a597-c573e01ae043)

{% hint style="info" %}
This section contains controls for channel packing textures. Masks are packed into the RGB channels of a single texture rather than individual textures per mask in order to save memory.&#x20;

If memory is not a consideration and quality is absolutely paramount, use the non packed versions of the Decal Designer graph.&#x20;
{% endhint %}

**Enable ARM Packed Texture** Enable output of ARM (Alpha Roughness Metallic) packed texture. Only visible and toggleable in "\_Pack" or "\_AllOutput" graphs&#x20;

## Custom Masks and Inputs

![Custom Input Controls](https://2959358512-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkbFtFcgzGsjc9kCvZT%2Fuploads%2F5boiSeE3X2M2zZlgQX7d%2FGraphParam_CustomInput.jpg?alt=media\&token=0387c8f7-a8e5-4b3b-a33a-608f2a343a6e)

**(A-B) Custom Mask Amount** Control the opacity of your input **Custom Mask** texture, e.g slide left to include it in Layer A, or right to include it in Layer B. All of the controls of the Layer Parameters affect this input custom mask.

**Invert Custom Mask** Invert your **Custom Mask**

**Custom Mask** Input your custom mask texture here. A black and white mask texture works best, but any texture is allowed. Color textures will be converted to greyscale within Decal Designer. Color can then be reapplied using the Layer Color Parameters&#x20;

{% hint style="info" %}
All controls of the Layer throughout Decal Designer, such as Blur, Amount etc. including UV controls also affect any **Custom Input** texture being used. E.g if your custom input is affecting Layer A, then the Layer A parameters also affect it.&#x20;
{% endhint %}

{% hint style="warning" %}
Smart Decals override the Custom Mask input texture with a capture of the scene. If you want to prevent accidental overwrite of the custom mask then set "SmartDecalPreventUpdate" to 1 in the decal material instance.
{% endhint %}
