Since the
introduction of Mari to the texture world, There has been some confusion
when it comes to UDIM, the UV offset system that Mari uses. To explain
what UDIM is, some basic understanding of UV space is needed.

**UV TILE: (U,V)**

The
standard coordinate system that 3d packages uses to define a tile is a
simple two number notation. A UV coordinate using this notation would
look like

**(0,1)**, this is simply**(u,v)**. The first number is the starting point of U (horizontal) and the second is the starting point of V (vertical). We are only concerned about whole numbers in this format, as all we are dealing with in Mari are offsets. Below is a standard Maya UV editor tile showing the default "0 to 1" tile, which is defined as**(0,0)****UV TILE: _U1_V1**

Before UDIM was introduced to us, in CG we often used the UV tile notation

**"_u1_v1"**.
This
is a simple and easy to understand, although a bit verbose, way of
indicating tile offsets. This notation really only uses one rule, and
that is to

__add a value of one__to the traditional**(u,v)**coordinate, and then it adds the U and V descriptors. So, a UV coordinate of**(0,1)**would be translated into**_u1_v2**.**UV TILE : UDIM**

This
brings us to UDIM, the newest notation for UV tiles. This notation is
harder to breakdown in a grid style progression like the all of the
above because UDIM has a limitation of 10 UV tiles in the U dimension.
The notation starts at

**1001**(which is**(0,0)**) and continues on U for 10 offsets, at that point it resumes its progression on the next row of V, meaning for every 10 in U it moves 1 in V. This is a little confusing, and is helpful to see it, so check out the following sequence:
10

**21**10**22**10**23**10**24**10**25**10**26**10**27**10**28**10**29**10**30**
10

**11**10**12**10**13**10**14**10**15**10**16**10**17**10**18**10**19**10**20**
10

**01**10**02**10**03**10**04**10**05**10**06**10**07**10**08**10**09**10**10**
Notice
how at 10, it returns upward and continues another 10. This is how you
would see the UV tiles organized in Mari. This would then repeat into
very high numbers, so even though there is 10 on U limitation, you will
never run out of tile spaces.

Furthermore, you can get to this number from a traditional

**(u,v)**coordinate by using the following maths:**1000+(u+1)+(v*10)**
Further examples of conversions:

**UV Tile: (u,v) = (0,0) = (0+1,0+1) = _u1_v1**

**UDIM: (u,v) = (0,1) = 1000+(0+1)+(1*10) = 1011**

Below
I have prepared a UV offset grid and legend to better visualize and
understand the relationship of all the information above. Keep in mind
UDIM does go to 10 on U, and this example only shows a range of 5 on
both dimensions.

## 13 comments:

Hai Ben Neall,

I tried using mari and im kind of stuck with udim workflow. after seperating the uvs in seperate tiles in maya uv editor and exporing the obj to mari all the UVs patches are in the same udim... im kind of stuck at the starting itself... hope you help me :) thanks...

Got it i just need to change my grid setting haha :) i never used Zbrush or any other 3d app except maya... so it kind of took some time to figure it out ... thanks...

Thanks Ben! Just the info we were looking for!

Thanks man, this is awesome.

I was wondering how you'd put several files into one file node in for example Maya. I've been told you can easily be able to make file nodes read several texture files just with 1 shader and 1 file node. Is that something you could write? I haven't been able to find anything about it so far.

Great post, Ben

hey Krossing you can just create a file node with a filepath of type $filepath/$filename..$ext and it should work.

So what exactly is the function to go backwards from UDIM to UV values? It's pretty tough to go backwards with two unknown variables once either number goes above 9...

For UV, you simply do (0+1,0+2) = u1_v2, correct ? Always add by zero either going in U or V ?

And for UDIM you have to take the UV tile, if it's (0,2) = 1000+(0+1)+(???) = ????

Hi Ben, I am wondering if skipping tiles will cause any problems. For instances that I have textures in 1001 and 1003 but not in 1002. Is this ok?

Numpang Promo ya Bos

Welcome

POKERVITA

Agen Poker Terpercaya

Thanks a lot Ben pretty usefull.

For those who wondered to revert from Udim to Uvyou can use

v=((UDIM - 1000 - U)/10) + 1

U happens to be the very last number of the Udim if the last number is 0 then u should be 1.

For instance 1010 being the last number 0, then U=1.

Probably everyone already figured this out.

Hope this helps.

Cheers

Post a Comment