Texture tiling

From TrainzOnline
Jump to: navigation, search

Texture tiling is the technique of allowing texture samples from beyond the 0.0 .. 1.0 texture coordinate range to "wrap around" as if the texture is infinitely tiled in each direction. This is a standard technique in 3D rendering, and allows for large areas of geometry to be rendered at a reasonable texels-to-meters ratio without having to break the geometry up into small identical tiles. Tiling may be enabled or disabled along either texture axis. If disabled, the texture coordinates are simply clamped into the 0.0 .. 1.0 range. The technique is configured in the texture file.

This technique has a few obvious limitations:

  • If the texture has any obvious detail, repeating it a large number of times can cause the scene to look artificial. In the real world, it is rare to see identical repeats- there is usually minor variation. This problem may be reduced by using a detail material.
  • If tiled along both axes, it is impossible for the texture to participate in a texture atlas. This can hurt performance, but may be suitable on high-LOD meshes or where the atlas technique was already inappropriate.
  • If tiled on a single axis, it is possible to participate in a texture atlas with untiled (sub)textures and with other (sub)textures that are tiled along the same axis. Since tiling along one axis can be converted to tiling along the other axis by simply rotating the texture, this is typically not a major limitation.

This technique is used heavily for Trainz ground textures.

Certain Parallax Occlusion Mapping artifacts can be avoided by using a texture which is tiled along both axes.

It is recommended that lowest-LOD meshes do not employ texture tiling, as this may prevent certain optimizations.

Personal tools