Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This page provides information on the Corona UVW Mapping Randomizer Map. 

 

Overview

...

Section
Column
width50%

Textured objects often show obvious repetitions, which instantly give away that the scene is computer-generated. You can use the Corona MappingRandomizerMapping Randomizer to quickly randomize textures on multiple objects or object parts, making the image appear more realistic.

The Corona MappingRandomizerMapping Randomizer allows you to apply random offset, rotation, and scaling to textures and procedural maps assigned to different objects, or even to a single object. The way it works is similar to the Corona Multimap. For example, you can randomize a wood texture applied to a set of planks so that each plank has a different look in your final render. You can also apply a blending effect to the randomized texture tiles, which makes them appear even more natural.

To enable the UVW mapping randomization, plug any texture (be it a bitmap or a procedural map) into the Corona MappingRandomizerMapping Randomizer input slot and then plug its output into any material property. You can then adjust the texture transformations and other options to the desired values. You can use the Corona MappingRandomizerMapping Randomizer with any material property, including grayscale bump maps, RGB normal maps, and displacement.

UI Text Box
typenote

The effect of the Corona MappingRandomizer Mapping Randomizer is not visible in the viewport preview.

UI Text Box
typeinfo

In Corona 9 and older, this map is called Corona UVW Randomizer.

 
Column
width5%

Column
width45%

Image Added

Properties

...

Section
Column
width50%

Randomize by

Primitive – Randomizes by different primitives which are triangles, hair strands, particles, etc.
Sub-primitive – Randomizes by different sub-primitives, which are displacement microtriangles or hair segments.
Polygon – Randomizes by different polygons, which are groups of triangles (e.g. quads).
Mesh Element – Randomizes by different connected mesh elements, which are groups of triangles connected by edges.
Decal – Randomizes by different distinct decal objects. This randomizes only the decal layer, not the object it is projected onto. Note that this tracks decals by their names, so the result changes if a decal is renamed.
Tile ID – Randomizes by different tiles if Corona Tile Map is used.
Instance – Randomizes by different scene objects (or instances in a scatter object). This tracks objects by their names, so the results change if an object is renamed.
Material GBuffer ID – Selects map with index equal to the hit material G-Buffer ID.
Object GBuffer ID – Selects map with index equal to the hit object G-Buffer ID.
Material name – Randomizes by different assigned materials.

UI Text Box
typenote

This tracks objects by their names, so the results change if an object is renamed.

Face Material ID – Selects map with index equal to the hit face material ID.

UI Text Box
typeinfo

You can select more than one randomization option. In such case, both are considered.

Column
width5%

Column
width45%

Image Added

Section
Column
width50%

Input

Input – The input map to perform the

UVW

mapping randomization on.

Seed – The value that makes random permutations of the

UVW randomization

mapping randomization results.

Column
width5%

Column
width45%

Image Added


...


Section
Column
width50%

Offset

U|X

U offset

– Specifies the minimum (From) and maximum (To) allowed texture offset in the U coordinate with a custom increment (Step).

V

offset

|Y Specifies the minimum (From) and maximum (To) allowed texture offset in the V coordinate with a custom increment (Step).

W rotation

Z Specifies the minimum (From) and maximum (To) allowed texture

rotation

offset in the Z coordinate with a custom increment

in degrees

(Step).

Column
width5%

Column
width45%

Image Added


...


Section
Column
width50%

Rotate

X – Specifies the minimum (From)

 

U scale – Specifies the minimum (From)

and maximum (To) allowed texture

scale

rotation in the

U

X coordinate with a custom increment (Step).

V scale

Y Specifies the minimum (From) and maximum (To) allowed texture

scale

rotation in the

V

Y coordinate with a custom increment (Step).

Same as U – When enabled, uses the values specified under "U scale" for both the U and V scaling.

 

Tiling

Randomize each tile – When enabled, each tile has a different transformation based on the offset, rotation, and scaling settings.

High quality blending – Enables high quality blending, which is much better at removing visible seams between the tiles, however it is computationally more expensive (the rendering time can be doubled in the worst case).

Number of tiles – Determines the number of tiles along the U and V texture coordinates. Note that the number of tiles is also influenced by the UV scaling set in the input map (e.g. if the input map is a Corona Bitmap and UV scale is set to 2, there are 2 times more tiles along each dimension).

Blending – Determines the strength of the blending between two neighboring tiles. The value of 0 results in no blending and in possible discontinuities among neighboring tiles. The value of 1 results in maximum blending and possibly leads to excessive blurring of the tiles.

 

Additional Outputs – If set to higher value than 0, the texture will have this many additional inputs and outputs. The inputs marked with number 'X' will be used for 'Additional Output X'.

UI Text Box
typetip

To learn more about using the Additional Outputs, please check Multiple Output Maps at the Chaos Help Centre. 

Column
width5%

 

Column
width45%

Image Removed

 

Example: Randomization Modes

...

W|Z – Specifies the minimum (From) and maximum (To) allowed texture rotation in the Z coordinate with a custom increment (Step).

Column
width5%

Column
width45%

Image Added


...


Section
Column
width50%

Scale

U|X – Specifies the minimum (From) and maximum (To) allowed texture scale in the U coordinate with a custom increment (Step).

V|Y – Specifies the minimum (From) and maximum (To) allowed texture scale in the V coordinate with a custom increment (Step).

Z – When enabled, uses the values specified under "U scale" for both the U and V scaling.

Column
width5%

Column
width45%

Image Added


...


Section
Column
width50%

Tiling

Randomize each tile – When enabled, each tile has a different transformation based on the offset, rotation, and scaling settings.

High quality blending – Enables high-quality blending, which is much better at removing visible seams between the tiles, however it is computationally more expensive (the rendering time can be doubled in the worst case).

Number of tiles – Determines the number of tiles along the U and V texture coordinates. Note that the number of tiles is also influenced by the UV scaling set in the input map (e.g. if the input map is a Corona Bitmap and UV scale is set to 2, there are 2 times more tiles along each dimension).

Blending – Determines the strength of the blending between two neighboring tiles. The value of 0 results in no blending and in possible discontinuities among neighboring tiles. The value of 1 results in maximum blending and possibly leads to excessive blurring of the tiles.

Column
width5%

Column
width45%

Image Added


...


Section
Column
width50%

Additional Outputs

Additional Outputs – If set to higher value than 0, the texture will have this many additional inputs and outputs. The inputs marked with number 'X' will be used for 'Additional Output X'.

UI Text Box
typetip

To learn more about using the Additional Outputs, please check Multiple Output Maps at the Chaos Help Center. 

Column
width5%


Column
width45%

Image Added


...

Example: Randomization Modes


Section
Column
width48%

Primitive

The Mapping Randomizer is randomized per each mesh primitive (triangle)

Column
width4%


Column
width48%

Material

Different mapping randomization is applied to different materials where the Corona Mapping Randomizer is assigned. In this example, different materials are applied to different cube objects.

Section
Column
width48%

Image Added


UI Expand
titleClick here to see the material setup...

Image Added

Column
width4%


Column
width48%

Image Added


UI Expand
titleClick here to see the material setup...

Image Added


...


Section
Column
width48%
Primitive

Instance

The UVW mapping

Mapping Randomizer is randomized per each

mesh primitive

instance (

triangle

object).

 
Column
width4%


Column
width48%

Material ID

Different UVW mapping is applied to different materials where the Uvw Randomizer map is assigned

Mapping Randomizer is randomized based on the object's material ID. In this example,

different materials are applied to different cube objects

every floorboard has a different, randomly assigned material ID.

Section
Image Removed
Column
width48%
 

Image Added


UI Expand
titleClick here to see the material setup...
Image Removed

Image Added

Column
width4%

 


Column
width48%
Image Removed

Image Added

 


UI Expand
titleClick here to see the material setup...

Image Removed

 

...

Image Added


...


Section
Column
width48%

Material GBuffer ID

Mapping Randomizer is randomized based on the material's GBuffer ID. In this example, each cube has a different material assigned, and each of those materials has a different Material GBuffer ID assigned

Instance

UVW mapping is randomized per each instance (object)

.

 
Column
width4%


Column
width48%
Material

Object GBuffer ID

UVW mapping

Mapping Randomizer is randomized based on the object's

material

GBuffer ID. In this example,

every floorboard

each cube object has a different

, randomly assigned material ID

GBuffer ID assigned (select object > right-click > object properties > GBuffer ID).

Section
Column
width48%
Image Removed

Image Added

 


UI Expand
titleClick here to see the material setup...
Image Removed

Image Added

 
Column
width4%


Column
width48%

Image Removed

 

Image Added


UI Expand
titleClick here to see the material setup...

Image Removed

 

...

Image Added


...


Section
Column
width48%

Mesh Element

Mapping Randomizer is randomized per each mesh element

Material GBuffer ID

UVW mapping is randomized based on the material's GBuffer ID

. In this example, each

cube has a different material assigned, and each of those materials has a different Material GBuffer ID assigned

floorboard is a separate mesh element.

 
Column
width4%


Column
width48%

Polygon

Mapping Randomizer is randomized per mesh face

Object GBuffer ID

UVW mapping is randomized based on the object's GBuffer ID

. In this example,

each cube object has a different GBuffer ID assigned (select object > right-click > object properties > GBuffer ID)

each floorboard is a single mesh element.

Section
Column
width48%
Image Removed

Image Added

 


UI Expand
titleClick here to see the material setup...
Image Removed

Image Added

 
Column
width4%


Column
width48%

Image Removed

 

Image Added


UI Expand
titleClick here to see the material setup...

Image Removed

 

 

Image Added


...


Mesh Element

UVW mapping is randomized per each mesh element. In this example, each floorboard is a separate mesh element.section
Section
Section
Column
width48%
Column
width4%26

 


Column
width48%48

Tile ID

Mapping Randomizer is randomized based on the Tile ID

Polygon

 UVW mapping is randomized per mesh face

. In this example, each

floorboard is a single mesh element.

Tile has the same wood texture.

Image Removed

 

Image Removed
Column
width48%
UI Expand
titleClick here to see the material setup...
26


Section
 
Column
width4%
26


Column
width48%48

Image AddedImage Removed

 


UI Expand
titleClick here to see the material setup...

Image RemovedImage Added

 

 




...


Example:

...

Texturing a Simple Stairs Object


Section
Column
width48%

Without the

Uvw

Corona Mapping Randomizer

map

, the textures are repeated on each of the steps in a very obvious way.

 
Column
width4%

Column
width48%

We can easily fix that: the first step is plugging the diffuse texture into the Corona

Uvw

Mapping Randomizer map and setting its U and V offset values to 0 - 1. This enables the randomization of the texture's maximum offset in both axes by its full width and height.

Section
Column
width48%

Image Modified

 
Column
width4%


Column
width48%

Image Modified

 


UI Expand
titleClick here to see the material setup...

Image Modified

 

...


...


Section
 
Column
width26%


Column
width48%

The remaining issue is that the textures are aligned in the wrong direction. Since the

Uvw

Corona Mapping Randomizer

map

relies on

UVW

mapping randomizing (as the name implies), to fix that, we can use any preferred method of rotating the textures - for example, the UVW Xform modifier or changing the rotation directly in the Bitmap texture's properties. In this case, a UVW Xform modifier was applied to rotate the texture by 90 degrees.

 
Column
width26%


Section
 
Column
width26%


Column
width48%

Image Modified

Column
width26%

 

 

...



...


Example: Randomizing a Brick Wall


Section
Column
width48%

We can start with a few objects using a brick wall texture with no randomization whatsoever.

 
Column
width4%

Column
width48%

In this case, we want to randomize the U and V positions per object, but we also want to have them tiled on every single object in a random way. This can be easily done with the

Uvw

Corona Mapping Randomizer.

Section
Column
width48%

Image Modified

 
Column
width4%


Column
width48%

Image Modified

 


UI Expand
titleClick here to see the material setup...

Image Modified

 

...


...


Section
 
Column
width26%


Column
width48%

Note that in addition to U and V offset variation, we also enabled the Randomize each tile option and set Number of tiles to 4. This tiles the texture on each surface it is applied to, and the tiling is then randomized using the offset, rotation, and scale values.

 

 


The remaining issue here is that while the randomization works excellent, the bricks are not aligned in straight horizontal rows anymore because of the full V offset randomization.

 

 


We can fix that by enabling the Step option next to the V Offset. The Step value decides about the interval at which the texture is moved. Leaving it at 0 results in unrestricted, random movement. Setting it to 1 means that we only allow the offset to be 1, 2, 3, and so on, resulting in no visible randomization whatsoever. Setting the value to 0.5 allows offsetting the texture by half its height, and so on. In this case, a single segment of our brick wall texture consists of 7 rows of bricks. To calculate the desired Step value, we need to divide 1 by the number of rows or columns. In case of our brick wall 1 / 7 = 0.143, so let's use this value.

Column
width26%

 


Section
Column
width26%

 


Column
width48%

Image Modified

 


UI Expand
titleClick here to see the material setup...

Image Modified

Column
width26%

 

 

 



...


Section
 
Column
width26%


Column
width48%

As you can see in the above image, the bricks are still randomized, but at the same time they are always arranged in horizontal rows thanks to the 0.143 Step value. 

 


The last thing left to do in our brick material would be adding displacement to it since that is also possible with the

Uvw

Corona Mapping Randomizer

map

. Clone the

Uvw

Corona Mapping Randomizer map, so that the diffuse texture and displacement texture randomization is the same, plug the grayscale displacement map into it, and plug the result into the material's displacement slot.

 
Column
width26%


Section
 
Column
width26%


Column
width48%

Image Modified

 


UI Expand
titleClick here to see the material setup...

Image Modified

 
Column
width26%

 



...


Example: Using the

...

Corona Mapping Randomizer with the Multimap


Section
Column
width26%

...


Column
width48%

The Corona

...

Mapping Randomizer can be combined with a Corona Multimap to create materials that are random in terms of both their coloring (or texturing) and their UVW mapping.

...

 


In this case, we are using the

...

Corona Mapping Randomizer to randomize the wood texture per floorboard, and every floorboard also has a different color thanks to the Corona Multimap which are then mixed together using the Corona Mix map.

Column
width26%

...


Section
Column
width26%

...


Column
width48%

Image Modified

...


UI Expand
titleClick here to see the material setup...

Image Modified

Column
width26%

...

 

 

...



...


Example: Using the

...

Corona Mapping Randomizer with Triplanar Mapping

...


Section
Column
width48%

In the previous examples, we always used the Corona

Uvw

Mapping Randomizer with some sort of defined UVW mapping (e.g. the object was created with its own mapping, or we used the UVW Map modifier). In case of objects with no UVW mapping, or ones which are hard to properly unwrap (such as complex organic forms), an ideal solution is to combine the

UVW

Mapping Randomizer with the Corona Triplanar Map.

 


Here we can see a sculpture painted with a checker patterned bitmap using Corona

Uvw

Mapping Randomizer. Since the

UVW

Mapping Randomizer relies on UVW mapping, in case of incorrect UVW mapping (like in this case), we can see artifacts such as texture stretching and seams.

Column
width4%

 


Column
width48%

To fix that, we can connect the Corona

Uvw

Mapping Randomizer map to a Corona Triplanar map (not the other way around, as Triplanar map overrides all mapping data coming after it!) and connect the result to the desired slot (in this case diffuse color). This lets us take advantage of the superpowers of both the

UVW

Mapping Randomizer and the Triplanar map. Thanks to the

UVW

Mapping Randomizer, the texture is randomized in terms of offset, scaling, and rotation, and it is using random tiling. Thanks to the Corona Triplanar map, there is no stretching or seams, and the texture is uniformly distributed over the object's surface.

Section
Column
width48%

Image Modified

 


UI Expand
titleClick here to see the material setup...

Image Modified

 
Column
width4%


Column
width48%

Image Modified

 


UI Expand
titleClick here to see the material setup...

Image Modified

...


...

Example: Randomizing Procedural Textures

...


Section
 
Column
width26%


Column
width48%

In all previous examples, we were using bitmap textures. Corona

Uvw

Mapping Randomizer can, however, randomize procedural textures as well, allowing for further creativity.

In this example, a procedural noise map is stretched in one direction ("U Tiling" set to 0) and then randomly distributed on the object's surface using the

UVW

Corona Mapping Randomizer and the Triplanar map. Note that to get more predictable results, it is best to set the procedural map's mapping ("Source") to Explicit Map Channel. This applies the texture in a similar way as when using regular UVW mapping, which makes it easier to control (however, in this case, we do not have to worry about it that much because we are using the Corona Triplanar map anyway).

 
Column
width26%


Section
 
Column
width26%


Column
width48%

Image Modified

 


UI Expand
titleClick here to see the material setup...

Image Modified

Column
width26%

 

 

...



...


Example: Working with Real-World Scale

...


The

...

Mapping Randomizer can be used with the Real-World Scale option without any problems. Plug a texture using the Real-World Scale option into it, and also make sure that the object has the Real-World Scale checkbox enabled in its settings or in the UVW mapping modifier applied to it, just as you would normally do without the

...

mapping randomization.

...


Section
Column
width48%

Randomized texture, Real-World Scale set to 1 cm.

 
Column
width4%


Column
width48%

Randomized texture, Real-World Scale set to 5 cm.

Section
Column
width48%

Image Modified

 


UI Expand
titleClick here to see the material setup...

Image Modified

 
Column
width4%


Column
width48%

Image Modified

 


UI Expand
titleClick here to see the material setup...

Image Removed

...

...

Image Added



Section
Column
width26%

 


Column
width48%

Randomized texture, Real-World Scale set to 10 cm.

Column
width26%

 


Section
 
Column
width26%


Column
width48%

Image Modified

 


UI Expand
titleClick here to see the material setup...

Image Modified

Column
width26%

 

 

...



...


Example: Blending

 


The Blending parameter found in the Corona

...

Mapping Randomizer controls how the individual tiles of the randomized texture are blended with each other. Higher blending further blends the tiles together and makes the texture appear slightly more blurry and uniform. Lower blending reduces the areas where the tiles are blended together and makes the texture sharper. Usually, the best value has to be determined by trial and error.

...

 


Section
 
Column
width26%


Column
width48%
Image slider
startIndex1
Panel
titleBlending = 0

Image Modified

Panel
titleBlending = 0.25 (default value)

Image Modified

Panel
titleBlending = 1

Image Modified

UI Expand
titleClick here to see where to find the Blending option...

Image Modified

 

 



Column
width26%

 

...

 




...


Example: High Quality Blending

...


High quality blending - this option is enabled by default and results in a better quality of the random tile blending at some performance cost. The specific performance impact depends on the material's complexity. In case of visible rendering slowdown, it is advised to disable this option.

...

 


Section
 
Column
width26%


Column
width48%
Before after
afterLabelHQ Blending on
beforeLabelHQ Blending off
Panel

Image Modified

Panel

Image Modified

UI Expand
titleClick here to see where to find the High quality blending option...

Image Modified

 

 



Column
width26%

 

...



...

Example: W Rotation and Step

...


The Step value can be used to decide about the allowed interval for the random texture offset. The same can be done with rotation and scaling. This example visualizes how the W Rotation Step affects texture randomization.

...


Section
 
Column
width26%


Column
width48%
Image slider
startIndex1
Panel
titleW Rotation Step = 0

Step 0 - no interval, full, unrestricted rotation randomization allowed:

Image Modified

Panel
titleW Rotation Step = 45

Step 45 - rotation randomization is restricted to 0, 45, 90, 135, 180, 225, 270, 315, 360 degrees resulting in the pattern following only horizontal, vertical, or diagonal directions:

Image Modified

Panel
titleW Rotation Step = 90

Step 90 - rotation randomization is restricted to 0, 90, 180, 270, 360 degrees resulting in the pattern following only vertical and horizontal directions:

Image Modified

UI Expand
titleClick here to see where to find the Step options...

Image Modified

 

 



Column
width26%

 

 

...