In version 2.82 Blender got UDIM support. This is exciting because UDIM has become a standard for dealing with texture sets where a single texture is not enough to cover the texturing needs.
How UDIM works in Blender? To enable UDIM, go to the UV Editor and create a new image. Make sure to select "tiled". In the UV Editor properties panel you can find a "UDIM tiles" section where you can add and remove UDIM tiles. Save the UDIM tiles with Alt+S.
Thanks to this support Blender has taken another step closer to becoming more compatible with a whole range of other software, such as Substance Painter, Mari and 3D coat.
Related content: Blender add-on review: UV Packmaster Pro 2
UDIM stands for U-Dimensions and is an extension to the UV tool set. It allows for multiple images in the same UV Map. These images can have different resolution so that we may give more resolution to some parts of our mesh while saving resources in other parts.
If you need to know more about UV mapping you can check out this article.
Related content: The definitive tutorial to UV mapping in Blender
UDIMs work by giving each tile an id or name. Each tile has the same size and is stacked next to each other to the right of the original UV tile.
Tiles are generally square shaped and the images used is normally in sizes with a power of two, such as 128, 256, 512, 1024 etc.
Each tile has an id. The first tile has the id 1001, the second tile is 1002, all the way to 1010. 1011 is then placed above the first tile at 1001.
This creates rows of 10 tiles before beginning on a new row above the previous one.
There is no upper limit to how many tiles we can have vertically but in most cases we will likely not use more than a handful of tiles.
UDIMs generally solve one of two problems but both are related to performance.
The first problem we can solve is when we have models where some areas are less important than others, we can make multiple UDIM tiles. Then have each tile with a different texture size.
We can then put pieces of our UV Map on a lower resolution tile while keeping a higher resolution tile for more important UVs.
The second scenario is similar, but in this case we may have the choice of a 4k or a 8k texture while the best option might be 2x4k textures. Since a 8k texture might be overkill and way too performance intensive UDIMs can help here by allowing 2x4k.
In these cases we can use UDIM to have two 4k images next to each other instead. Utilizing UDIM 1001 and 1002.
UDIM is mostly seen in VFX and animation while used less in games and real time applications.
This is because UDIM is generally too performance consuming compared to a traditional UV map with a single image.
But the larger the textures become, the more performance there is to gain by dividing up the UV map into two images.
With the example above we halved the resolution from a single 8k texture to two 4k textures. While in lower resolutions the performance gain may not be good enough to warrant the increased overhead of using two images instead of one.
The UDIM implementation in Blender is currently still limited, and requires a quite unorthodox workflow. We will begin by looking at the setup and then switch gears and see how we can work somewhat effectively with them in Blender.
To start working with UDIM we first need to generate an image.
After you created the image in Blender, open the properties panel with "N" and find the image tab and image section. We will first look at the "UDIM Tiles" section.
When pressing "Fill tile" you can change the data that lives inside that tile and when pressing the Plus button you can add one or more tiles based on the count number.
Keep in mind that we cannot add an existing image to Blender and use that as the base for the UDIM setup. We must generate an image within Blender.
We will look at a workaround for this later.
When an image in the UV editor is set to tiled, it means that it is not really an image. Instead, it's a UDIM tile set containing one or more images as defined in the "UDIM Tiles" section just below. You can see if an image is really a UDIM tile set by looking in the "Image" section. If "source" is set to "tiled" it is a UDIM tile set instead of a single image.
Here is a warning, don't change any settings in the image section or you will lose your UDIM tiles. My understanding here is that if you change the image type to something else Blender will override the array of UDIM tiles with new image data. Changing back to tiles will give you a single UDIM tile again.
Even clicking in the empty "file name" field and clicking away will clear all images in your UDIM tiles.
The UI also appears a bit buggy at the moment. You will have to press "Fill tile" and fill the first tile with a new image before you can start to add new tiles again if you made any changes in the image section.
Ok, with a few hiccups out of the way we can add UDIM tiles in the "UDIM Tiles" section by hitting the plus. If the plus is grayed out, just select the first UDIM tile and press "Fill tile" to fill it with data. Then you should be able to continue adding tiles.
Now when we know where UDIMs live and some pitfalls we will look at the workflow for using external images.
The best workflow is most often the one that gives us maximum control and flexibility.
With UDIMs we gain much more control if we start by saving at least one image.
Therefore, save as early as possible. Preferably when we have only one image. We save the tile set by going to the image menu in the UV Editor and choose "save" or press Alt+S.
Every time we save a UDIM tile set, Blender saves all tiles as separate images to the same folder. To separate the images Blender adds the tile ID, for example 1001 before the file extension.
Once a tile is saved addional tiles will be saved to the same folder with their tile number added before the extension every time we hit Alt+S.
We are also no loger in danger of loosing our images if we happen to change settings in the "image" section. But if we change "source" from "tiled" we will lose the UDIM tiles. But we can just add them back in and reload the images from disk and Blender will automatically populate the UDIM tiles correctly.
We can reload the images by pressing the double arrow icon next to the file name field in the image section.
This also allow us to swap out any image in the tile set. Just make sure that you keep the same naming convention on disk. For instance if our UDIMs are called image.1001.png through image.1004.png we can swap out any of the images by replacing it with a new image texture.
We just need to make sure that we use the same file name.
We can also add more images to the UDIM set. Just give the next image the name "image.1005.png" and add a 1005 UDIM tile and reload the images.
That concludes how we work with image textures and UDIMs. But what about the UVs themselves?
There is actually no difference from working with UVs without UDIM. We can use all the same tools as before.
What we need to keep in mind is that we can no longer scale UVs larger than a single tile to repeat the texture across a surface. We need to stay within the UV space.
We most likely need a convenient way to move UVs between tiles. The easiest way to do this is to use the move tool. Press G then X to move horizontally or Y to move vertically followed by the number of tiles you want to move the selection. Use negative numbers to move to the left or down and positive numbers to move right or up.
Once the UDIMs, images and UVs are set up we can use them in our shaders and for texture painting in Blender.
Using UDIMs in the Cycles or Eevee is very straight forward. In the node editor we add an image texture node and select the UDIM tile set from the image list.
We can see that the image type is set to "tiled" once we add the image to the image texture node.
Keep in mind that we need to be careful not to change the "tiled" setting in the image texture node as we need to be in the UV Editor. If we change this setting in the node we also lose our UDIM tiles.
If that happens go back to the UV Editor, add the UDIM tiles back in and press the reload button to reload the images from disk.
Once the shader is set up we can texture paint just like we would with any other image texture. Just don't forget to manually save the UDIM tiles once in a while so that you don't lose data.
This is the first implementation of UDIM in Blender, and I am pretty sure that it will be improved upon some time in the future. Currently, there are quite a few unorthodox solutions and the setup is very sensitive to settings changes.
With that said, I think this is a great start. We can now finally start to use UDIM both internally in Blender and with other applications.
Thanks for reading and if you think this is valuable for others please consider sharing this article with your friends.