You are here: Shading and Lighting > Shader Tree Item Layers > Texture Locator

Texture Locator

When any texture layer is created in the Shader Tree, image-based or procedural, an associated Texture Locator item is automatically generated and added to the Items list and linked by the texture layer's Locator property. By default, texture locators are generally added to a folder (really a group locator item) called a Texture Group. This makes it easy to toggle the visibility of the locators in the 3D Viewports, as you might find them distracting. You may select the Texture Locator directly in the Items list, or by selecting the locator icon in any 3D Viewport. Most often though, you select them in the Shader Tree. When any texture layer is selected in the tree, the Locator is available in the named sub-tab on the right side of the item's associated Properties panel. Additionally, the locator may be toggled by the small + sign preceding the texture layer's name in the Shader Tree; clicking the + icon reveals the layer.

Texture Locators provide a very important function, as they control the application of the texture layer over the rendered surface. A Texture Locator is like a regular Locator Item, in that it has Position, Rotation, and Scale information. Additionally, there are settings specific to controlling the image's projection method, meaning how it is mapped or applied to the surface. For certain projection modes, such as Planar, you can interactively position textures in the 3D Viewport by transforming the Texture Locator item itself. Other modes, UV in particular, completely ignore the positional and scale attributes, as the mapping is defined by the UV map itself.

Texture Locator Panel

The following Transform options are available for the Texture Locator:

Position - an item transform that allows you to numerically position the texture locator item in XYZ space, thus defining the position of the projected texture. This position defines the center of the texture's overall volume as defined by the Size setting. Useful in the positioning of textures when using standard projections such as Planar, Cylindrical, and Cubic, among others. You can automatically define a texture's Position and Size using the Auto Size function.

Rotation - an Item transform that allows you to numerically set the rotation of the texture volume. The Rotation transform originates from the locator item's position value.

Order - allows you to set the order that rotations are applied to the Locator Item. Changing the order that rotations are applied can sometimes help to reduce or eliminate gimbal lock when animating.

Size - sets the textures projection size (or boundary, as the case may be), defining the texture's overall volume. You can automatically define a texture's Position and Size using the Auto Size function.

Auto Size - automatically sets the Position and Size values, and is determined by the overall bounding box volume of the tagged surface(s).

World Transforms - typically, if you move a texture locator around, the texture moves over a surface that is sitting still. This allows for animated textures. If you parent the texture locator to the item and move the item around, both are moving in sync, so the texture stays still. With World Transforms enabled, the parented texture animates over the surface, as if the surface was sitting still and the locator was moving by itself. It's a subtle difference to World Coordinates.

World Coordinates - typically, if you move an item, the texture moves with it, as if painted on. When World Coordinates is enabled, textures act as if frozen in place, with surfaces swimming through the texture. This option is extremely useful for texturing cloned or replicated items with procedural textures (that are NOT animated) as it provides the look of randomizing the texturing, without the need to modify any other surface attributes.

The following Parametrization options are available for the Texture Locator:

Projection Type - a projection defines how a texture, be it image-based or procedural, is applied to a dimensional 3D surface. The various projection types can greatly affect the final rendered outcome. Modo offers a variety of projection types (illustrated in Projection Type Samples).

Projection Camera - when selecting the Front Projection type, you may use this setting to specify the camera from which to project. Lights can be projected from as well.

Projection Axis - defines an axial direction for any of the primitive projection types: Planar, Cylindrical, Spherical, Cubic, Box, and Light Probe.

Front Culling - when the Front Culling option is enabled, only the first polygonal surface encountered has the image projected onto it. Any subsequent surfaces behind it and not acting like a shadow, in a way, as any polygons facing away from the projection item, show underlying surfacing. When disabled the projection image projects completely through onto all surfaces.

Overscan - provides a simple means to scale the projected image, where negative values increase its size in the frame and positive values decrease the size.

UV Map - when selecting the UV Map projection type, you can use this setting to specify the defined UV map that determines how the texture applies to the target surface. For more information, refer to the UV Mapping topic.

Use Clip UDIM - when working with tiled UVs, the UDIM workflow allows you to automatically assign textures to specific tiles using a specialized naming scheme. When this option is enabled, the associated texture is assigned to the target UV tile, based on the UDIM identifier in the file name. For more information, refer to the UDIM Workflow topic.

U/V Tile Offset - by default, Modo uses only the 0-1 UV texture space, where 0,0 is the origin. You can define an alternate UV area to use by offsetting the origin, the amount determined by the Tile Offset value. This is essentially used to manually assign UV tiles when not using the UDIM naming scheme.

Horizontal/Vertical Wrap - controls wrapping amounts for UV image maps, effectively scaling the UV across the specified texture. A Wrap value of 2.0 would repeat an image twice over the same UV space, while a wrap of 0.5 would stretch the image by half.

Horizontal/Vertical Repeat - sets how bitmap images repeat beyond the defined image size/UV space boundary. Several methods can be chosen: Reset disables image tiling, Repeat tiles repeatedly, Mirror tiles the image, flipping each subsequent image to produce a backward and forwards type tiling, and Edge simply repeats the edge row of pixels. You should note that these options are not visible in the GL Viewports.




Reset

Repeat

Mirror

Edge

UV Rotation - the UV Rotation option allows you to rotate the image plane relative to the UV space, eliminating the need to rotate the UV mapping values manually. Rotation revolves around the 0,0 UV origin.

Random Texture Offsets - can be used to control the relative positions of bitmapped textures on a surface based on the designated criteria. Working best with tiling textures, where there would be no distinct seam across edges, this option helps to hide or eliminate repetition by moving the texture a random direction across the surface. The amount of offset is determined by the Texture Offset Amplitude option. The different offset criteria can be based on:

(none) - disables the Random Texture Offset feature when selected.

Particle and Replicas - offsets are generated per particle and/or per Replicator item.

Mesh Parts - offsets are generated based on individual mesh parts: multiple, individual geometric objects within a single item layer.

Surfaces - offsets are based off discreet sections of a single, named surface across continuous geometry.

Texture Offset Amplitude - determines the global strength of both the Random Texture Offsets option, when one is defined, and for the layer effect Texture Offset. A value of '0.0' produces no offset, a value of '10.0' is offset up to 100% of the original location. When using both the Random Texture Offsets and a Texture Offset effect, the offset effect can be controlled independently by changing the texture layers opacity.

Tangent Vector Type - determines the tangent vector basis for an associated image map set as the surface normal, affecting both the baking and the display of normal maps. Normal maps are generally baked from high resolution geometry onto low resolution geometry to give the impression of higher resolution.

There are two options available: dPdu dPdv defines a tangent space normal, the dPdu Cross Product option defines a bi-tangent space normal that is compatible with many game engines. When baking image-based normal maps, you need to define the proper vector basis prior to actually baking the image out for the proper results.

The following Falloff options are available for the Texture Locator:

Falloff Type - falloff, when defined, fades the texture layers opacity over the specified distance. There is cubic (3D), spherical (3D), and planar X, Y, or Z.

Falloff - a setting of '0' disables falloff, when set to any value above '0'. The falloff amount act like a multiplier of the size. So a setting of 0.5 on a 1 meter texture scale fade the texture to fully transparent over 2 meters from the locators position, a setting of 0.1 would scale it to fully transparent at 10 meters.

The following Texture Replicator options are available for the Texture Locator:

The Texture Replicator function works on basically the same principle as the geometry Replicator in Modo, but provides you with a means to procedurally clone an image map texture onto a surface while adding some randomization to the resulting clones. Consider the example below: on the left, a seamless repeating texture has been applied to the surface, but with the uniformity of the placement across the surface, the fact that it's a small repeating texture is painfully obvious. Utilizing the exact same texture in the image on the right, a particle source has been defined and some falloff, Random Size, and Rotation has been applied. While there is still an amount of regularity to the surface, the texture no longer exhibits the obvious tiling of the original.


Texture tiled across the surface looks repetitive.

Replicator randomizes tiles eliminating repetition.

To apply a texture Replicator to a surface, you must first assign an image map to the target surface, and in the texture layers Texture Locator attributes, define a Particle Source, typically the target surfaces Mesh Item layer. Once specified, the texture is cloned to each vertex position across the surface. You can then make adjustments to the Size, Falloff, and Rotation options, and then add some Random Scaling and Rotation as well.

Particle Source - you can specify a Mesh Item layer as a point source for the cloned textures, when doing so, the Texture Replicator option is effectively enabled and its settings supersede all others of the Texture Locator. Once a mesh layer is defined, a single copy of the texture is positioned and aligned to the vertices normal at each vertex point.

Typically, you would specify the mesh layer of the actual target surface with this option. However, interesting affects can also be obtained when specifying alternate mesh layers. Keep in mind that the clones are aligned to the surface normal of the source mesh, so surfaces would need to be in somewhat close proximity and need to have similarly facing normals.

Particle Size - determines the size of the individual cloned images on the target surface. Larger numbers increase the clone sizes while smaller numbers decrease the resulting size.

Falloff Bias - you can adjust this option to fade the texture out from its center toward the edge. Lower values keep the transparent edge toward the outer corner where higher values up to 100% push the transition toward the center.

Falloff Gain - determines the hardness of the falloff transition. Low values produce a very soft fade over the falloff, while higher values increase the edge hardness up to 100% producing a crisp hard edge.

Random Size - you can use this option to define a range of random scaling applied to the individual clones.

Rotation - each clone is initially aligned to the vertex normal position (including its rotation) of the source, but you can use this option as an offset from the initial rotation of the clones.

Random Rotation - you can use this option to define a range of random rotation applied to the individual clones.

Local Projection - when enabled, this option warps the replicated images to the contours of the Particle Source geometry producing a unique effect that can be more appropriate in some texturing situations.

Local Normal Attenuation - when enabled, this option fades the opacity of the applied texture based on its slope. The upward facing surfaces receive the full amount of texturing, attenuating toward completely transparent at 90° angles (kind of like the accumulation of snow would look). This effect is dynamic, so as objects deform and move, the surfacing remain only on the upward facing areas.

TIP:  Texture Replicators aren't limited to using a single image map. Once defined, you can specify a group, containing any number of images as the Image source in the Texture Layer (under the Image Map options header). The Texture Replicator randomly grabs a member of the group for each vertex location, providing additional means to randomize the look of the surface.

 

Projection Type Samples