You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

This page provides information on the Corona UVW Randomizer Map. 

 

Overview


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

The Corona MappingRandomizer 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 randomization, plug any texture (be it a bitmap or a procedural map) into the Corona MappingRandomizer 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 MappingRandomizer with any material property, including grayscale bump maps, RGB normal maps, and displacement.

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

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

Properties


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.
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.

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.

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

Input – The input map to perform the UVW randomization on.

Seed – The value that makes random permutations of the UVW randomization results.

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

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

W rotationSpecifies the minimum (From) and maximum (To) allowed texture rotation with a custom increment in degrees (Step).

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

V scaleSpecifies the minimum (From) and maximum (To) allowed texture scale in the V 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 mnumber 'X' will be used for 'Additional Output X'.

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

 

 


Example: Randomization Modes

 

Primitive

The UVW mapping is randomized per each mesh primitive (triangle)

 

Material

Different UVW mapping is applied to different materials where the Uvw Randomizer map is assigned. In this example, different materials are applied to different cube objects.

 


 

Instance

UVW mapping is randomized per each instance (object).

 

Material ID

UVW mapping is randomized based on the object's material ID. In this example, every floorboard has a different, randomly assigned material ID.

 


 

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.

 

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).

 


 

Mesh Element

UVW mapping is randomized per each mesh element. In this example, each floorboard is a separate mesh element.

 

Polygon

 UVW mapping is randomized per mesh face. In this example, each floorboard is a single mesh element.

 

 



Example: Texturing a Simple Stairs Object


Without the Uvw Randomizer map, the textures are repeated on each of the steps in a very obvious way.

 

We can easily fix that: the first step is plugging the diffuse texture into the Corona Uvw 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.

 


 

 

The remaining issue is that the textures are aligned in the wrong direction. Since the Uvw Randomizer map relies on UVW mapping (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.

 

 

 

 


 

Example: Randomizing a Brick Wall


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

 

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 Randomizer.

 


 

 

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.

 

 


 

 

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 Randomizer map. Clone the Uvw 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.

 

 



Example: Using the UVW Randomizer with the Multimap


 

The Corona Uvw 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 UVW 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.

 

 


 

Example: Using the UVW Randomizer with Triplanar Mapping

 

In the previous examples, we always used the Corona Uvw 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 Randomizer with the Corona Triplanar Map.

 

Here we can see a sculpture painted with a checker patterned bitmap using Corona Uvw Randomizer. Since the UVW 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.

 

To fix that, we can connect the Corona Uvw 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 Randomizer and the Triplanar map. Thanks to the UVW 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.

 


Example: Randomizing Procedural Textures

 

 

In all previous examples, we were using bitmap textures. Corona Uvw 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 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).

 

 


 

Example: Working with Real-World Scale

 

The UVW 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 UVW randomization.

 

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

 

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

 

 

 

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

 

 


 

Example: Blending

 

The Blending parameter found in the Corona Uvw 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. 

 

 

Blending = 0

Blending = 0.25 (default value)

Blending = 1

 

 

 

 



 

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. 

 

 

HQ Blending off
HQ Blending on

 

 

 

 


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.

 

 

W Rotation Step = 0

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

W 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:

W 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:

 

 

 

 

 

Was this helpful?