This page provides information on V-Ray Triplanar Texture Mapping.
The VRayTriplanarTex texture allows quick assignment of bitmap and other 2D textures on objects that don't have suitable UV coordinates. The texture works by projecting one or more textures along the object-space axes depending on the surface normals of the shaded object.
The texture works both for colors and bump maps.
||Hypershade|| > Create panel > VRay section > Other Textures > VRay Triplanar
||Create Render Node|| > VRay section > Other Textures > VRay Triplanar
Texture mode – Specifies whether to use one or three textures for the different projection axes. For more information, please see the Texture mode example below.
Same texture on all axes – Projects the same texture along each local axis.
Different texture on each axis – Uses a different texture along each axis.
Texture X – The texture to project along the X axis when the texture mode is set to Different texture on each axis.
Texture Y – The texture to project along the Y axis when the texture mode is set to Different texture on each axis.
Texture Z – The texture to project along the Z axis when the texture mode is set to Different texture on each axis.
Scale – Adjusts the size of the texture. For more information, please see the Scale example below.
Blend – Controls the blend between the different projections. Lower values produce sharper transitions between projections. For more information, please see the BBlend example below.
Frame offset – Moves the point relative to which the textures are projected.
Texture Rotation – Specifies rotation (in degrees) for the projected textures around the respective projection axis. If random texture rotation is enabled, non-zero components of this parameter specify increments for the rotation. For more information, please see the Texture Rotation example below.
Space – Specifies the type of projection space:
Local object – The projection is done in local object space. When the object is moved/rotated/scaled, the texture moves with it.
Reference transform – The projection is done in the local space of another node in the scene. If no node is specified, world space is used. This mode is useful when several objects need to be mapped with the same triplanar texture and to show consistent mapping.
Node Ref transform – If Space is set to Reference transform, this specifies the node from the scene. If no node is specified, world space is used.
Random texture offset – Randomizes the texture offset based on the Random mode.
Random texture rotation – Randomizes the texture rotation based on the Random mode. The rotation can be locked to specific increments (i.e. 45 degrees only, or 90 degrees only) by setting the Texture Rotation components to the desired increments for the different axes.
Random axis – Randomly changes the projection axes based on the Random mode.
Random frame rotation – Randomly rotates the entire projection space based on the Random mode.
Random mode – Specifies how to generate the random seed needed for the various randomizations: For more information, see the Randomizations example below.
By face ID – Computes the seed based on the face material ID of the mesh.
By render ID – Computes the seed based on the render ID of the objects.
Example: Texture mode
Texture mode = Same texture on all axes
Texture mode = Different texture on each axis
and different textures were specified for the X, Y, Z axes
Scale = 0.005
Scale = 0.01
Scale = 0.02
Blend = 0.0
Blend = 0.1
Blend = 0.3
Example: Texture Rotation
Texture Rotation = 0, 0, 0
Texture Rotation = 30, 0, 0
Texture Rotation = 0, 30, 0
Texture Rotation = 0, 0, 30
This example shows the effect of the different randomization options; the Random mode is set to By render ID and the space is Reference transform.
Random texture offset is enabled
Random texture rotation is enabled
Random frame rotation is enabled
Random axis is enabled
Advanced Workflow Tips
The following examples provide some details on how to maximize the capabilities of the Triplanar Texture with workflow tips and tricks.
Using Another Object as a Reference Transform
In this example, we'll use a Locator's World Matrix values with the Triplanar's Reference transform space so when the Locator is rotated, it rotates the texture as well. This helps get around the fact that some of the texture's attributes like Scale and Blend do not include Create Render Node buttons to the right of their value sliders. Keys can still be set directly on these attributes but using the World Matrix attributes connected to the Triplanar's Node Ref Transform helps adjust the textures for us. Using this method with the Locators is much more artist/animator-friendly than setting keys on multiple parameters buried deep inside a shading network. In the examples below, the Locators adjust the textures rotation and scale but this can be applied to other forms of transform adjustments.
The two images below are rendered from the same camera, with no change to the geometry from one rendering to the next. However, the wood planter textures look different in the two renders. In the initial render below, the rotation of the wood planter textures is set based on what is needed for the shot to look its best. In the render at right, the Locator is rotated around and all the textures on the Triplanar Textures (the wood map on the sides and top) have rotated with it.
Locator is rotated which rotates all of the textures
In this second series of images, the scale of the Locator is adjusted when the camera moves closer or further from the planters. This can help the textures to be more readable from a distance. In the node graph, we divide the scale value to keep it in the typical range for this attribute and then drive it from a second Locator.
Based on the original scale from the initial render, the camera is twice as far from the center planters and the Locator's scale is increased to 2
In this render, the camera is half the distance of the initial render, therefore, the Locator's scale is reduced to 0.5 (which also reduces the bump amount)
- Currently VRayTriplanar only supports bitmaps when rendering with IPR GPU.