Voronoi Popcorn by Jens Kafitz


  • Where to find it:


    • Add Procedural Layer / Procedural / Extension Pack / MultiFractal /


    • NodeGraph / Right Mouse Click / Add Nodes / Procedural / Extension Pack / MultiFractal /





Voronoi Popcorn is a cellular based procedural that runs through a fractalization process, meaning that there

two different stages to the procedural: Generating a Voronoi/Cellular, then using the result as a base value in a regular noise routine.


It is very useful to create cracks and the procedural is optimized for displacement and bump usage.




Performance


Due to the expensive nature of the computations involved in the node, it is recommended to bake or flatten the node after use.


Samples



Node Overview


Due to the expensive nature of the node, the node has been marked in red



Node Properties


MAIN TAB

Color


  • Color A/B

The two colors that make up the final look of the procedural


Voronoi Procedure


  • Voronoi Base

Voronoi Base determines the voronoi cell algorithm used. For user-friendliness descriptive names are used:


    • Popcorn

A soft round shape with long gradients


    • Coffee Bean

Soft Angular shapes with harsh corners


    • Sparse Corn

Sparse round shapes


    • Crumpled Paper

Soft shapes with harsh outlines

Voronoi Base


  • Primary Scale

The scale of the cells generated by the main voronoi cellular.


  • Seed

A random start value for your voronoi

Changing the seed changes the overall look of your fractal while the general feature look stays the same,  allowing for quick variation with a general look theme.


Threshold



Large Slider Ranges & Channel Bit Depth.


To allow for maximum fidelity of Displacements and Bump Maps the slider ranges for Voronoi

Popcorn are over-sized. A visually pure white result in the viewport can still contain value differentiation by having values over 1.0 or below 0.0. You can preview the result by using

the voronoi popcorn in a bump map.


To allow for values outside the 8bit 0.0 - 1.0 range to be written into textures you will need

to use 16bit or 32bit float bitdepths in your channels.




  • Threshold

Defines the Value at which point incoming colors/values go to black (incoming values to the left of the set slider value)

or white (incoming values to the right of the set slider value).


  • Soft Clip Result

Used to visually soften the thresholding, it defines the Upper+Lower Bound of the Threshold

For example with a Threshold Value set to 0.5 and a Edge Value of 0.1, incoming values lower than 0.4

will be black and incoming values higher than 0.6 will be white. Between 0.4 and 0.6 will be a soft gradient.


  • Contrast

The Contrast Slider is the VoronoiPopcorn's equivalent to a Gain however while a Gain influences the result

from octave to octave differently (see Understanding some basic noise terms), the Contrast just gets multiplied with the final result of all octaves.


  • Clamp

Clamping will clip any values to a range of 0.0 - 1.0 before ColorA, Color B are applied.


Relationship Color A/B


  • Density

Density is the number of octaves that get computed during the fractalization of the base voronoi/cellular.

In practice this will increase the size of the gaps between individual features:


Increasing 'Density' on Voronoi Popcorn



  • Density Gain

Density Gain is a multiplier for each Octaves amplitude during the fractalization of the base voronoi/cellular.

The amplitude is hardcoded for this noise to start at 1.0 for the first octave,

then gets multiplied by the Gain 1x time for each octave incrementing the value of the amplitude


In practice this will increase the size of the gaps between individual features but other than the Density it will do

so gradually without jumps.



Lacunarity


  • Lacunarity

Controls the size of the secondary fine details.

By decreasing the value below 1.0 the cells will be split into smaller ones, by going over 1.0 multiple cells

will be separated by large gaps.


Increasing Lacunarity from 0.1 to 4.0


  • Density

Controls the line width of the secondary details:


Increasing Lacunarity Density



  • Density Gain

A value to be added to the Lacunarity Density for each octave ('density offset'), it is in many ways similarly behaving

to changing the Density. It has a tendency to contrast values more than Density does.





EDGE DETAIL TAB


Large / Small Edge Detail


The large and small edge detail groups introduce an offset to the voronoi by generating Vector FBMs,

making features more jagged and less straight. Two separate offsets can be done.



  • Detail Scale

The frequency/size of the noise used to offset the voronoi pattern.




Large always bigger than small


The Size of the LargeEdgeDetail will ALWAYS be bigger than the SmallEdgeDetail even if your

SmallEdgeDetail Scale is set higher than the LargeEdgeDetail equivalent.


This is to easily identify on your model what features to modify with what group.




  • Large/Small Detail Octaves



Disable Offset


By setting the Octaves to 0 you will disable the Offset



The Detail Amount of the Noise generated to offset the voronoi pattern


Increasing octaves of noise used to offset pattern:



  • Detail Amplitude

The Amplitude of the noise used to offset the voronoi Pattern.

Amplitude defines the amount of offset from the original undisturbed position.


Increasing amplitude of noise used to offset pattern:





TRANSFORM TAB


Projection Space


  • UV Space

By default this procedural is generated in 3D World Space. This results in a seamless noise across UV seams.

By turning on UV Space the procedural is generated based on your UVs, resulting in seams between UV tiles/UDIM & uv shells.


Utilizing Transform Controls such as Scale (see below) you can apply a non-uniform transform to the procedural

to make use of specific UV layouts


  • Per UDIM Pivot

Affects the transformation pivot for UV Transforms when in UV Space


With PerUDIMPivot on all transformation will be performed with a pivot at the centre 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).

                                                          

Scale


  • Scale X / Y / Z

Will apply a scale along X,Y or Z to your noise. This is useful for creating patterns like woodgrain, drips etc.

When UV Space is turned on Scale Z is ignored.

Rotate


  • Rotate X / Y / Z

Will apply a rotation in X,Y or Z to your noise. When UV Space is turned on Rotate X & Rotate Y are ignored

and rotation is done around the center of each UV Tile/UDIM using Rotate Z.

Translate


  • Translate X / Y / Z

Will apply an offset in X,Y or Z to your noise. When UV Space is turned on Translate Z is ignored.