Houdini 20.5 Solaris and Karma

UDIM

You can encode different “tiles” of a texture space into different texture files, each with its own resolution. You can then specify a texture filename such as kaiju<UDIM>.exr, and Houdini will replace the <UDIM> token with the specific tile address at load time.

On this page

Overview

UDIM is a system for dividing texture space into multiple “tiles” in UV space, with each tile represented by a separate texture file on disk. You can specify a texture name like foo<UDIM>.exr and any UDIM-aware renderer or image loading node will know to replace the <UDIM> token with the address of the UV tile it wants to look up.

Separating UV space into different texture files lets you use high-resolution files for large, detailed islands, and low-resolution files for small or simple islands. It can also have benefits for file and memory cache locality.

Nodes that lay out geometry in texture space (such as the UV Layout node) can have controls for spreading UV islands across tiles. However, most support for UDIM doesn’t require any UI. Practically all modern nodes, renderers, asset management systems, and so on, know to look for a <UDIM> token in texture filenames and expand it as necessary, including USD’s path resolver.

Tile addressing

  • The first tile is named 1001, and covers the 0, 0 - 1, 1 square of UV space.

  • The second tile is named 1002, and covers the 1, 0 - 2, 1 square.

  • Numbers increase this way until after the 10th tile (in regular UDIM the tile array is a maximum 10 tiles across in U space).

  • The 11th tile (named 1011) wraps back to the first column (starting at 0 in U space) and up by 1 unit in V space (covers the 0, 1 - 1, 2 square).

  • Subsequent tiles follow the same pattern, increasing in U space until each 11th tile wraps back

  • Note that the digits represent a single number starting at 1001 and increasing for each tile.

Nodes

VEX functions

Tips

  • The Houdini file open dialog automatically looks for runs of increasing numbers in filenames, and can confuse a UDIM sequence with a frame sequence. Use the pop-up menu in the file dialog to explicitly choose what kind of replacement token you want to use for sequences (<UDIM> for UDIM, $F for frames).

Solaris and Karma

USD

Geometry

  • SOP Geometry I/O

    Details of how Houdini converts SOP geometry to USD, and how you can control the process.

  • Component Builder

    The Component Builder tool puts down a network snippet for creating a USD model from SOPs, with support for materials, variants, payloads, and layering.

Layout

  • Stage Manager

    How to work with the Solaris stage effectively.

  • Edit node

    Interactively transforms prims in the viewer. Can use physics collisions to position props realistically.

  • Layout node

    Provides tools for populating a scene with instanced USD assets. You can place individual components, paint/scatter components in different ways using customizable brushes, and edit existing instances.

  • Custom Layout Brushes

    How to create layout brush digital assets you can use to customize the behavior of the Layout LOP.

Look Development

  • MaterialX

    Houdini has VOP node equivalents of the MaterialX shader nodes. You can build a shader network using these nodes, or import an existing MaterialX-based shader, and use them with Karma (Houdini’s USD renderer).

  • UDIM paths

    You can encode different tiles of a texture space into different texture files, each with its own resolution. You can then specify a texture filename such as kaiju.exr, and Houdini will replace the token with the specific tile address at load time.

  • Shader translation framework

    Describes the Solaris shading framework, including shader node translation to USD primitives.

Karma User Guide

Karma basics and workflows