UDIM naming convention: tile numbers, file names and Unreal import

Updated · 8 min read

Short answer: a UDIM tile number is 1001 + u + 10 × v, where u and v are the whole-number column and row of the UV tile, both counted from 0. Tile 1001 covers U 0 to 1 and V 0 to 1, 1002 sits to its right, and after ten tiles the next row starts, so 1011 sits directly above 1001.

For Unreal Engine, name every tile BaseName.####.ext with the same base name, for example T_Rock_BaseColor.1001.png, T_Rock_BaseColor.1002.png, and keep them in one folder. Unreal then imports the set as one virtual texture. The rest of this page shows the tile table, the patterns other apps use, and the mistakes that break an import.

Try it on your own model

Upload a GLB, OBJ, FBX, STL or PLY file (or pick a sample), describe the look, and let AI paint it from every side.

Open the AI 3D Texturing Studio

How UDIM tile numbers work

UDIM stands for U DIMension. Instead of fitting the whole UV map into the single 0 to 1 square, you spread UV islands over several squares (tiles), and each tile gets its own image. That lets the parts that matter get a big texture and the rest a smaller one.

The numbering, as the Blender manual puts it: the main tile is 1001, the next tile 1002 goes to its right, the array is ten tiles wide (1001 to 1010 on the first row), and the next row starts above the main tile, so 1011 is directly above 1001.

  • From UV to tile: UDIM = 1001 + floor(U) + 10 × floor(V). A UV point at (2.3, 1.6) is in tile 1001 + 2 + 10 = 1013.
  • From tile to UV: subtract 1001, then the last digit is the U column and the rest is the V row. Tile 1024: 1024 − 1001 = 23, so U column 3 (U 3 to 4) and V row 2 (V 2 to 3).
  • Why ten columns: U only runs from 0 to 10 in the UDIM scheme. RenderMan’s docs state that UDIM is only defined for U values from 0.0 to 10.0 and positive V values, and warn against negative UVs in any tile workflow.

Autodesk Maya writes the same rule as 1000 + (u + 1 + v × 10), which is the same number.

UDIM tile table: 1001 to 1020

The first two rows of tiles, with the matching names in the two u/v styles (explained in the next section). U and V are the UV ranges each tile covers.

UDIMU rangeV rangeMudbox style (1-based)ZBrush style (0-based)
10010 to 10 to 1u1_v1u0_v0
10021 to 20 to 1u2_v1u1_v0
10032 to 30 to 1u3_v1u2_v0
10043 to 40 to 1u4_v1u3_v0
10054 to 50 to 1u5_v1u4_v0
10065 to 60 to 1u6_v1u5_v0
10076 to 70 to 1u7_v1u6_v0
10087 to 80 to 1u8_v1u7_v0
10098 to 90 to 1u9_v1u8_v0
10109 to 100 to 1u10_v1u9_v0
10110 to 11 to 2u1_v2u0_v1
10121 to 21 to 2u2_v2u1_v1
10132 to 31 to 2u3_v2u2_v1
10143 to 41 to 2u4_v2u3_v1
10154 to 51 to 2u5_v2u4_v1
10165 to 61 to 2u6_v2u5_v1
10176 to 71 to 2u7_v2u6_v1
10187 to 81 to 2u8_v2u7_v1
10198 to 91 to 2u9_v2u8_v1
10209 to 101 to 2u10_v2u9_v1

Quick check: every tile in the first column (1001, 1011, 1021, …) starts at U = 0, and every tile on the bottom row (1001 to 1010) starts at V = 0.

UDIM file name patterns by app

There are two families of tile names. UDIM numbers (1001, 1002, …), labelled the Mari style in Maya and RenderMan, are what Unreal, Blender, Houdini and USD read. u/v names write the column and row into the file name instead, and they come in a 0-based and a 1-based flavour.

App or styleToken or patternFirst tile looks like
Mari (UDIM)4-digit UDIM numberDiffuse1001.tex
Unreal EngineBaseName.####.extMyTexture.1001.png
Blender<UDIM> in the file namemonster-basecolor.1001.png
Blender (u/v)<UVTILE> = u(u-tile + 1)_v(v-tile + 1)monster-basecolor.u1_v1.png
Houdini / USD<UDIM>kaiju1001.exr
Substance 3D Painter export$udim in the output template…1001 in place of $udim
Mudbox (1-based)u<U>_v<V>Diffuse_u1_v1.tex
ZBrush (0-based)u<u>_v<v>Diffuse_u0_v0.tex

Mudbox vs ZBrush: 0-based or 1-based?

Both write the tile’s column and row into the name, but they count from different numbers. In the Mudbox style the first tile (U 0 to 1, V 0 to 1) is u1_v1; in the ZBrush style the same tile is u0_v0. Maya’s UV Tiling Mode list names them exactly that way: “0-based (Zbrush)” and “1-based (Mudbox)”, and RenderMan’s atlas styles use the same examples. Blender’s <UVTILE> token is the 1-based (Mudbox) form.

To convert: Mudbox u = ZBrush u + 1, and UDIM = 1000 + Mudbox u + 10 × (Mudbox v − 1). So u3_v2 in Mudbox style is UDIM 1013.

A name pattern to copy

A clear, engine-friendly pattern is <prefix>_<asset>_<map>.<UDIM>.<ext>. Epic’s recommended asset naming is [AssetTypePrefix]_[AssetName]_[Descriptor]_[Variant] with T_ as the texture prefix, so a rock’s colour tiles become:

  • T_Rock_BaseColor.1001.png
  • T_Rock_BaseColor.1002.png
  • T_Rock_BaseColor.1011.png

Use a dot before the four digits. Blender’s Detect UDIMs looks for a four-digit number after a dot just before the extension, and Unreal’s documented pattern is BaseName.####.

How to import UDIM textures into Unreal Engine

In Unreal, UDIM tiles are imported as a Streaming Virtual Texture (SVT). Epic lists UDIM support under SVT, not under the other method, Runtime Virtual Texturing.

  1. Turn on virtual textures for the project: Project Settings > Engine > Rendering > Virtual Textures > Enable virtual texture support. The editor must be restarted after this change.
  2. Name the tiles BaseName.####.ext with exactly the same BaseName, for example T_Rock_BaseColor.1001.png and T_Rock_BaseColor.1002.png.
  3. Put all tiles in one folder and import one of them. Unreal scans the source folder for other images with the same BaseName and a different tile number, and imports the whole group as one Virtual Texture asset.
  4. Sample it with a virtual sampler in the material. Epic’s docs say virtual textures use a Virtual sampler type in the Texture Sample node, such as Virtual Color instead of Color.

Tiles do not have to be the same size. Epic’s example is a 2 × 2 set with two 2048 px and two 128 px tiles, which the engine samples like one large texture; that is how UDIM lets a hero area get more pixels. Epic also notes that UDIM textures are flipped vertically during import.

Converting an ordinary texture by hand (ticking Virtual Texture Streaming in the Texture Editor) breaks the materials that already use it until you switch their samplers to a Virtual type. Right-click > Convert to Virtual Texture updates them for you.

UDIM in Blender, Houdini and RenderMan

Blender

  • Load a set: Image > Open, pick any one tile and keep Detect UDIMs on. Blender looks in the same folder for files with a four-digit number before the extension and loads them as one tiled image.
  • Make tiles: in the Image or UV Editor, Sidebar > Image > UDIM Tiles, add tiles starting at 1001 and use Fill so each one gets an image. A tile that is not filled is not saved with the image.
  • Save: put <UDIM> in the file name (monster-basecolor.<UDIM>.png) and Blender writes one file per tile.

Houdini and USD

Write <UDIM> where the number goes, as in kaiju<UDIM>.exr. SideFX notes that most modern tools, including USD’s path resolver, expand it. Houdini’s file dialog can mistake a UDIM set for a frame sequence; choose <UDIM> rather than $F from its menu.

RenderMan

PxrTexture reads Mari UDIM, Mudbox and ZBrush tile sets. With an Atlas Style set, the file name carries a placeholder (_MAPID_ in RenderMan 25) that is replaced by the tile number or u/v name.

Why a UDIM import fails, and the fix

What you seeLikely causeFix
Unreal imports one plain texture, not a setOften: virtual texture support is off, or the name is not BaseName.####Enable virtual texture support (restart), rename to Name.1001.png
Some tiles are missing after importBase names differ (BaseColor vs Basecolor) or tiles are in other foldersSame base name, one folder
Material errors after the importTexture Sample still uses a non-virtual sampler typeSwitch it to Virtual Color (or the matching virtual type)
Tiles land in the wrong placeMudbox or ZBrush u/v names fed to a UDIM reader, or 0- and 1-based mixed upRename to UDIM numbers with the table above
Tile set starts at the wrong spotThe set does not start at 1001UDIM sets start at 1001
Black or missing area on the modelUV islands with negative U/V or beyond U = 10Move islands into U 0 to 10, V 0 and up
A Blender tile never shows up on diskThe tile was added but not filledFill Tile, then save

UDIM and the AI 3D Texturing Studio

Our AI 3D Texturing Studio paints one texture in the 0 to 1 UV square; it does not write UDIM tile sets. If a model’s UVs are spread over several tiles (more than 2% of the UV points outside 0 to 1), the studio treats them as not usable for painting and makes a fresh single-tile UV atlas, then exports one texture inside the GLB.

That suits quick props, prints and previews. For a hero asset you plan to finish in Unreal with UDIMs, keep the UDIM layout in your DCC app and use the studio for look development on a 0 to 1 copy.

Texture a model with AI

Upload a GLB, OBJ, FBX, STL or PLY, describe the look, and download a textured GLB plus the texture PNG.

Open the studio

Questions

What is the UDIM formula?

UDIM = 1001 + u + 10 × v, where u is the whole-number U column (0 to 9) and v is the whole-number V row, both counted from 0. Tile 1001 covers U 0 to 1 and V 0 to 1.

How should UDIM textures be named for Unreal Engine?

BaseName.####.ext with the same base name on every tile and all tiles in one folder, for example T_Rock_BaseColor.1001.png and T_Rock_BaseColor.1002.png. Import one tile with virtual texture support enabled and Unreal brings in the whole set as one virtual texture.

What tile is above 1001?

1011. Each row has ten tiles (1001 to 1010), and the next row starts directly above the first tile.

Is Mudbox UV tile naming 0-based or 1-based?

Mudbox style is 1-based: the first tile is u1_v1. ZBrush style is 0-based: the same tile is u0_v0. Maya and RenderMan both label them this way.

Do all UDIM tiles need the same resolution?

No. Unreal’s documentation says each UDIM image can have a different resolution, and Blender’s manual suggests mixing 4K, 2K and 1K tiles by importance.

Does Unreal need virtual texturing for UDIM?

Yes. Unreal reads UDIM sets through Streaming Virtual Texturing, so turn on Enable virtual texture support in Project Settings > Engine > Rendering and restart the editor first.

What does the <UDIM> token do?

It is a placeholder in a file path that the app replaces with each tile’s four-digit number when loading or saving. Blender, Houdini and USD use <UDIM>; Blender also has <UVTILE> for u1_v1-style names.

Ready to texture something?

Upload a GLB, OBJ, FBX, STL or PLY file (or pick a sample), describe the look, and let AI paint it from every side.

Start texturing

Step-by-step tutorials

Keep reading

Sources

Checked 2026-10-18. Other tools change their features and prices often, so check their own pages too.