Texture Scatter 2D X4


  • Where to find it:


    • Add Procedural Layer / Procedural / Extension Pack / Generators


    • NodeGraph / Right Mouse Click / Add Nodes / Procedurals / Extension Pack / Generators








Texture Scatter 2D X4 is a complex texture bombing node, working in UV Space.

It is capable of generating seamless textures up to 32k resolution on any regular plane with full UV coverage.

It currently supports 4 Input Textures (X4).




Tips





DO NOT KEEP LIVE UNLESS CACHED OR HIDDEN


Texture Scatter 2D Nodes are meant to be converted to paintable layers.

Due to their impact on viewport performance it is absolutely not recommended to keep them live unless cached or hidden.




  • Increasing the Layer count is linearly reducing your performance - twice the amount of layers, half the performance.

It is recommended to complete your basic settings with a lower layer count, then up the count as a last step.


  • Increasing the Density does not affect performance too much


  • Try to cache,flatten or hide one Texture Scatter Node before creating a second one.


  • 'Clumping' will generally be less pronounced with 'Force Tileable' turned off.

This is due to the much more random distribution of textures when not creating tileable textures.


  • Use the Layer Attenuation feature to get proper value layering for bump, displacement or normal maps.



Videos


A full demo & tutorial for an older version of this node (still fully applicable) is available here:




Updates with Extension Pack 4 are covered here

Node Overview



Node Ports


  • Manifold UV

Allows you to overwrite the UV Settings of the Node with a manifold node


  • Bake Point Image

The Bake Point Image Port allows you to feed data into the Node from upstream nodes that have been baked via a bake point into the Node.

When the node is evaluated, the Bake Point attached to the Port will be sampled and the UDIM 1001 Image will be transferred into

the Image Attribute of the Node.


This allows you to create patterns and textures via a nodegraph and use them directly inside this node with an element of non-destructivness


Example of using a Nodegraph and a Bake Point to dynamically feed a Pattern Generator Node with Node Inputs



  • Edge Falloff

Allows you to overwrite the Edge Falloff Attributes of the Texture Maps in the Scatter with a Node Connection



TIP


Try mapping the edges with values over 1 to get a more pronounced contrast in the falloff






  • Edge Softness

Allows you to overwrite the Edge Softness Attributes of the Texture Maps in the Scatter with a Node Connection


  • Edge Roundness

Allows you to overwrite the Edge  Roundness Attributes of the Texture Maps in the Scatter with a Node Connection




Any value fed in through the Edge Ports on the Node is still multiplied

against the corresponding Edge Slider  in the Texture Groups of the Node.




Node Properties


MAIN TAB

Modifiers


  • UV Repeat

A multiplier on the UV Repeat found under the UV Settings in the Transform Tab


  • Density

A multiplier against the Cell Density Attribute found under the Cell Tab


  • Layers

A multiplier against the Layers Attribute found under the Cell Tab

Base Color


  • Fill Background

If on, the background will be filled with the Background Color


  • Background Color

The Background Color to use for filling the background if Fill Background is checked


Texture Map A / B / C / D


  • Activate Texture A / B / C / D

Activates the Texture Slot. Please note Texture Map A is always on.


  • Importance

A percentage how much the texture should contribute to the final result.

Lowering Importance on Texture Map A will remove textures and replace them with a transparent cell.


  • Clumping

Adjust the Clumping for each texture separately.

Clumping will remove textured cells to create clusters of features.

The per texture Clumping sliders are multiplied with the global multiplier in group 'Density'.

Please note that turning the Force to Tilable Mode off under the 'Density' group will result in a change in clumping behavior.

Due to the more random distribution of this mode, clumping will be a lot less pronounced.


  • Texture Map

The Texture Map to be used for each slot. Transparency is supported.


    • It will help performance to keep texture resolutions used here to a reasonable size like 256,512 or 1k.


  • Invert Map

Inverts the Texture Map used in the respective Texture Slot.


  • Alpha

Determines the way the alpha of the texture slot should be evaluate:


    • From Map

The Transparency in your loaded texture map is used


    • Alpha is Luminance

The Luminance of your loaded texture map is used as Alpha.

Black is transparent.


    • Alpha is Inverted Luminance

The inverted Luminance of your loaded texture map is used as Alpha.

White is transparent.



  • Hue/Sat Shift Mix

Allows you to set per texture how much of the random Hue & Saturation Shift should be mixed in.

This is helpful to keep one of your maps closer to their original color without loosing variation on the other maps.


  • Value Shift Mix

Allows you to set per texture how much of the random Value Shift should be mixed in.


  • Edge Falloff

Will contract the edges of your loaded textures. This attribute can also be mapped via the Nodegraph.

Please note that in this case this slider will act as a multiplier.


  • Edge Softness

Will feather the edges of your loaded textures from the start of the Edge Falloff to the center of your texture.

This attribute can also be mapped via the Nodegraph. Please note that in this case this slider will act as a multiplier.


  • Edge Roundness

Switches the Falloff from Square (0.0) to Radial (1.0).

This attribute can also be mapped via the Nodegraph. Please note that in this case this slider will act as a multiplier.








CELL TAB

Cell Density


Other than modifying the UV Settings, changing the density will create more 'unique' cells.


  • Density

Determines how many cells will be filled with a texture. Overlap between cells is minimal.

Cells are generated regardless so increasing this value does have a large negative impact on your performance.


  • Layers

The amount of times the texture bombing runs. Increasing layer count will cause cells to overlap each other so it is 

great for creating chaotic distribution such as fallen leaves.


    • Increasing the Layer count is linearly reducing your performance - twice the amount of layers, half the performance.

It is recommended to complete your basic settings with a lower layer count, then up the count as a last step.



Values outside the slider range


If you have to, you can enter numbers outside the slider range to get even more layers


  • Clumping

Clumping will remove textured cells to create clusters of features.

This Clumping slider is a global multiplier on the Clumping Sliders under groups 'Texture Map A' , 'Texture Map B' etc.

Please note that turning the Force to Tilable Mode off will result in a change in clumping behavior.

Due to the more random distribution of this mode, clumping will be a lot less pronounced.


Effects of Clumping with 'Force to Tilable' on (left) and off (right):


  • Noise

Determines the size of the Noise to be used to generate the cells and acts a little like a 'Seed' value.

Depending on your settings, density of textures might change a little.


  • Force to Tileable

With Force to Tileable turned on you will create a perfectly tileable texture when using it on a plane with full uv coverage 

(such as a plane created in Maya).


Turning it off will change the internal algorithm that is used to place textures, applying an offset for each added layer.

This will create more random distribution but will no longer be tileable.


Please note, depending on your entries in the UV Settings Group it is still possible that the result may no longer tile.


Cell Scale


  • Scene Size

Scene Size is a multiplier for the Scale Values below allowing you to compensate for large or small scene sizes

by effectively changing the slider ranges.


  • Cell Scale

The Scale of each texture within its gridcell


  • Map A / B / C / D Cell Coverage

Scale of each texture within the cell generated.

This allows you to set relationships between textures (sticks larger than leaves etc.).

The per Map Scale will not rescale the original grid cell but will just change the size of the texture within in the cell.

This can lead to gaps in your coverage.


Cell Scale Randomization


  • Randomize Scale

Introduces random scaling of textures.

This will not rescale the original grid cell but will just change the size of the texture within in the cell.

This can lead to gaps in your coverage.


  • % Original Scale

A percentage of all generated textures that should be kept at original size, set under 'Global Scale' Group.


  • Map A / B / C / D  Rnd. Mix

A mixer for each texture how much it should be affected by the overall Randomize Scale


Cell Rotation Randomization


  • Min Rotation

Minimum Rotation of each texture within its cell. 


  • Max Rotation

Maximum Rotation of each texture within its cell.





HSV TAB


HSV Shift


  • Cell Blend Mode

Different from the Layer Blend Mode, this determines how the cells are blended together between each other.


  • Min / Max Hue

The minimum and maximum hue shift variation in degrees on a color wheel.


  • Min / Max Sat

The minimum and maximum saturation variation.


  • Min / Max Val

The minimum and maximum value variation.


  • Clamp

Some Cell Blend Modes such as Add can cause combined values of cells to go over 1.0. Clamp will clip the

resulting values below 0.0 and above 1.0


  • Value Offset

A global value shift on all textures. This is very useful together with Layer Attenuation to control Value buildup for bump or

displacement maps.

Note that Value Shift Mix on each each texture slot needs to be at 1.0 for it to have full effect.


  • Layer Attenuation

The Value to be incrementally added or subtracted to the previous value for each Layer added on top.

This is great introduce changes on a per layer level so that features that are buried deeper have a darker value than the ones

on top. Use Value Offset to globally add or remove value.

Note that Value Shift Mix on each each texture slot needs to be at 1.0 for it to have full effect.


Effect of Layer Attenuation - Lower layers remain constant in value, upper layers get lifted


  • HSV Seed

A randomization value for Hue / Saturation + Value Shift.





TRANSFORM TAB

UV Settings


Modifying UV Settings does not negatively impact performance since it is run on the finished 'scattered' result.


  • UV Repeat

Will repeat the result of the scattering x-amount of times.

If you are using the node to create tileable textures, keep this at full values (no decimals)


  • U Scale

Will scale the result of the scattering along U.

If you are using the node to create tileable textures, keep this at full values (no decimals).


  • V Scale

Will scale the result of the scattering along V.

If you are using the node to create tileable textures, keep this at full values (no decimals).


  • UV Rotation

Will rotate the result of the scattering.

If you are using the node to create tileable textures modify this value in 90 Degree increments


  • U Offset

Will offset the result of the scattering along U.

If you are using the node to create tileable textures, keep this at full values (no decimals).


  • V Offset

Will offset the result of the scattering along V.

If you are using the node to create tileable textures, keep this at full values (no decimals).


  • Per UDIM Pivot

Affects the transformation pivot for UV Transforms.

With PerUDIMPivot on all transformation will be performed with a pivot at the center of each UDIM.

With PerUDIMPivot off, transformations for all UDIMs share one common pivot at the base of UDIM 1001


This will ensure seamless textures across UDIMs when your UV Shell is scaled up and covering multiple UDIMs.

without a cut inbetween.


UV Transformations applied to multiple UDIMs with perUDIM Pivot On (left) and off (right)





Windows Users - avoiding Display Driver time outs


Unfortunately on Windows the Texture Scatter can let your display drivers time out during baking / flattening

when high Layer counts in the Node are set. This can happen even on the most high-end video cards

due to the hugely expensive texture bombing operations being run.


The 'crash' is the result of an automated 'timeout' setting in your windows registry after which Windows determines

your display driver is unresponsive -- even if it is in fact just busy with a complex operation.





Increasing TDR Delay


  • First try increasing your Windows Display Driver Timeout Delay. A Step-by-Step Guide can be found here




Working around the display driver timeout:


  • Mari has an option in the preferences to split baking into smaller chunks, therefore giving the display driver

a continuous signal so it doesn't time out. 


    • In Mari go to EDIT / PREFERENCES



    • Go to the GPU Tab and set your 'Max Render Size for Baking' to 256.

You can turn it back to default (1024)  after you are done with the bombing procedure or leave it as is.



    • Your baking and flattening process should now run smoothly.


  • Another alternative is raising the setting 'Deferred Quad Split Count' in your GPU Settings


  • Alternatively reduce the complexity in the Texture Scatter 2D Node by reducing the Layer Slider.