UDIMs don't behave properly on imported geometry #72734

Closed
opened 2019-12-27 18:25:00 +01:00 by Robert Rioux · 24 comments

System Information
Operating system: 10.12.6
Graphics card: nVidia 980

Blender Version
Version 2.82 (2.82 2019-12-27)

Short description of error

geometry is mapped only with the first UDIM texture instead of all of them in Cycle. In Eevee, only one tile is shaded, the other ones are pink.

Exact steps for others to reproduce the error
I made a cube in Maya where I spread each face on a different UDIM. Imported it in Blender. It looks perfect in Blender in the UV editor. I added a texture file (6 files named texture.1001,png, texture.1002.png etc and on the image are the numbers 1.1, 1,2, 1,3 etc, representing which UDIM they are) and turned on the tile option. It only maps the first texture (UDIM 1001). In Eevee, the other faces are pink and in Cycles all faces have texture 1001 assigned to them. I tried to use texture.0004 but once tile is turned on, it does the same thing. Also, even if texture.0004.png was picked, it shows me texture.0001.png in the texture editor. So Blender recognize that the textures are UDIMs, it just doesn't map them properly. See attached image.

Screen Shot 2019-12-27 at 12.17.45 PM.png

**System Information** Operating system: 10.12.6 Graphics card: nVidia 980 **Blender Version** Version 2.82 (2.82 2019-12-27) **Short description of error** geometry is mapped only with the first UDIM texture instead of all of them in Cycle. In Eevee, only one tile is shaded, the other ones are pink. **Exact steps for others to reproduce the error** I made a cube in Maya where I spread each face on a different UDIM. Imported it in Blender. It looks perfect in Blender in the UV editor. I added a texture file (6 files named texture.1001,png, texture.1002.png etc and on the image are the numbers 1.1, 1,2, 1,3 etc, representing which UDIM they are) and turned on the tile option. It only maps the first texture (UDIM 1001). In Eevee, the other faces are pink and in Cycles all faces have texture 1001 assigned to them. I tried to use texture.0004 but once tile is turned on, it does the same thing. Also, even if texture.0004.png was picked, it shows me texture.0001.png in the texture editor. So Blender recognize that the textures are UDIMs, it just doesn't map them properly. See attached image. ![Screen Shot 2019-12-27 at 12.17.45 PM.png](https://archive.blender.org/developer/F8246271/Screen_Shot_2019-12-27_at_12.17.45_PM.png)
Author

Added subscriber: @Funnybob

Added subscriber: @Funnybob
Member

Added subscriber: @lichtwerk

Added subscriber: @lichtwerk
Member

Changed status from 'Needs Triage' to: 'Needs User Info'

Changed status from 'Needs Triage' to: 'Needs User Info'
Member

Just to make sure we are all on the same page:

  • mind sharing the .blend file? Plus the texture files (I think UDIMs are not packed into the .blend correctly [yet])
Just to make sure we are all on the same page: - mind sharing the .blend file? Plus the texture files (I think UDIMs are not packed into the .blend correctly [yet])
Author

Here you go! :-)

Archive.zip

Here you go! :-) [Archive.zip](https://archive.blender.org/developer/F8250019/Archive.zip)
Member

Changed status from 'Needs User Info' to: 'Needs Developer To Reproduce'

Changed status from 'Needs User Info' to: 'Needs Developer To Reproduce'
Member

Added subscriber: @LukasStockner

Added subscriber: @LukasStockner
Member

OK, looks like you just have to create the tiles in the Image Editor > Sidebar > UDIM Tiles panel (+ button next to the list)?

UDIMtest_created_tiles.blend

Issue notes though:

  • column count seems to hardcoded to 10 in blender? (second row starts with 1011 automatically, no way to create a 2001 tile manually it seems... (this might conform to the specs, will have to read up on this...)
  • maybe we could automatically create as many tiles as we find on disk when browsing for a file?

#72390 (Improve UDIM functionality) is related here...

@LukasStockner : what do you think?

OK, looks like you just have to create the tiles in the `Image Editor` > `Sidebar` > `UDIM Tiles` panel (`+` button next to the list)? [UDIMtest_created_tiles.blend](https://archive.blender.org/developer/F8250159/UDIMtest_created_tiles.blend) Issue notes though: - column count seems to hardcoded to 10 in blender? (second row starts with 1011 automatically, no way to create a 2001 tile manually it seems... (this might conform to the specs, will have to read up on this...) - maybe we could automatically create as many tiles as we find on disk when browsing for a file? #72390 (Improve UDIM functionality) is related here... @LukasStockner : what do you think?
Author

You have to support tiles being in any order possible (but never go beyond 10 on a row, that's the standard). If you get a model, let say, from Turbosquid that has UDIMs, they may not be in the perfect order. Or if you delete part of your geometry and it creates gaps in the UDIMs, it needs to be supported. So generating the tiles dynamically according to the image name is the way to go. Otherwise it's pointless. Last model I worked on had aver 100 UDIMs. I don't see myself moving UVs around and renaming all textures. That would be insane. :-)

You have to support tiles being in any order possible (but never go beyond 10 on a row, that's the standard). If you get a model, let say, from Turbosquid that has UDIMs, they may not be in the perfect order. Or if you delete part of your geometry and it creates gaps in the UDIMs, it needs to be supported. So generating the tiles dynamically according to the image name is the way to go. Otherwise it's pointless. Last model I worked on had aver 100 UDIMs. I don't see myself moving UVs around and renaming all textures. That would be insane. :-)
Member

OK, quick read shows that we are more or less in line with what most everyone does?

So you can do a grid like this (as long as it is based on 10s)
image.png

random article:
https://www.fxguide.com/fxfeatured/udim-uv-mapping/

So naming of tile tile.2001.png is rather exotic it seems? (at least for the first pic in a 2nd row?) Does Maya do this by default?

OK, quick read shows that we are more or less in line with what most everyone does? So you can do a grid like this (as long as it is based on 10s) ![image.png](https://archive.blender.org/developer/F8250289/image.png) random article: https://www.fxguide.com/fxfeatured/udim-uv-mapping/ So naming of tile `tile.2001.png` is rather exotic it seems? (at least for the first pic in a 2nd row?) Does Maya do this by default?
Author

Exactly. Can even have holes in the middle. They don't need to all touch each other.

Exactly. Can even have holes in the middle. They don't need to all touch each other.
Member

This is behaving as expected.

UDIM tiles are automatically detected and loaded when you open any of them. However, this may conflict with sequence loading since they both detect numbers in the filename. Therefore, Blender uses a few rules to determine if something is a UDIM texture or a sequence. These rules are:

  • There must be a file with number 1001
  • There must not be a file with a number below 1001

There must not be a file with a number above 1999

The third point is relevant here, because the 2001 file is preventing Blender from loading the texture as UDIM. According to the UDIM "spec", that file would correspond to the 101st row and 1st column, which I guess is not what you want. If you remove that file or rename it to 1011 (which it should be based on the UVs as far as I can see), it will work.

This is behaving as expected. UDIM tiles *are* automatically detected and loaded when you open any of them. However, this may conflict with sequence loading since they both detect numbers in the filename. Therefore, Blender uses a few rules to determine if something is a UDIM texture or a sequence. These rules are: - There must be a file with number 1001 - There must not be a file with a number below 1001 # There must not be a file with a number above 1999 The third point is relevant here, because the 2001 file is preventing Blender from loading the texture as UDIM. According to the UDIM "spec", that file would correspond to the 101st row and 1st column, which I guess is not what you want. If you remove that file or rename it to 1011 (which it should be based on the UVs as far as I can see), it will work.
Author

Maybe this can help. Different software use different ways of dealing with UDIM names. Maybe it would be important to support all 3 systems as you never know where stuff may come from. This is from Maya.

0-based (Zbrush) - select this option if your UV co-ordinates start at 0
Some applications, for example, Zbrush, number the UV tiles with the lower left UV co-ordinate. That is, a UV tile [0,0]x(1,1) would use u0_v0 in its file name.

1-based (Mudbox) - select this option if your UV co-ordinates start at 1
Some applications, for example Mudbox, number the UV tiles with the upper right UV co-ordinate. That is, a UV tile [0,0]x(1,1) would use u1_v1 in its file name.

2-UDIM (Mari) - select this option if your UV co-ordinates are represented as a four-digit number using the formula 1000+(u+1+v*10)

3-Explicit Tiles - select this option to load each tile separately and enter the U and V values explicitly. For each tile, enter the values of the lower-left UV co-ordinate that the texture corresponds to.

I believe Substance Painter used the Mari naming convention.

Maybe this can help. Different software use different ways of dealing with UDIM names. Maybe it would be important to support all 3 systems as you never know where stuff may come from. This is from Maya. 0-based (Zbrush) - select this option if your UV co-ordinates start at 0 Some applications, for example, Zbrush, number the UV tiles with the lower left UV co-ordinate. That is, a UV tile [0,0]x(1,1) would use u0_v0 in its file name. 1-based (Mudbox) - select this option if your UV co-ordinates start at 1 Some applications, for example Mudbox, number the UV tiles with the upper right UV co-ordinate. That is, a UV tile [0,0]x(1,1) would use u1_v1 in its file name. 2-UDIM (Mari) - select this option if your UV co-ordinates are represented as a four-digit number using the formula 1000+(u+1+v*10) 3-Explicit Tiles - select this option to load each tile separately and enter the U and V values explicitly. For each tile, enter the values of the lower-left UV co-ordinate that the texture corresponds to. I believe Substance Painter used the Mari naming convention.
Member

In #72734#839547, @LukasStockner wrote:
UDIM tiles are automatically detected and loaded when you open any of them.

@LukasStockner : What I meant is that if you have a default tiled image with only one tile (1001) and then browse for a file like tile.1001.png [where also tile.1002.png, tile.1003.png, tile.1004.png, tile.1005.png are present], create the remaining 4 tiles automatically?

> In #72734#839547, @LukasStockner wrote: > UDIM tiles *are* automatically detected and loaded when you open any of them. @LukasStockner : What I meant is that if you have a default tiled image with only one tile (1001) and then browse for a file like `tile.1001.png` [where also `tile.1002.png`, `tile.1003.png`, `tile.1004.png`, `tile.1005.png` are present], create the remaining 4 tiles automatically?
Member

Anyways, I think we can all accept that this report does not really confront us with a real bug, right?

All of the above are improvements to the existing (working) functionality, so while we could discuss this further here, there are better channels for this:
https://wiki.blender.org/wiki/Communication/Contact#User_Feedback_and_Requests
For more information on why this isn't considered a bug, visit: https://wiki.blender.org/wiki/Reference/Not_a_bug

Anyways, I think we can all accept that this report does not really confront us with a real bug, right? All of the above are improvements to the existing (working) functionality, so while we could discuss this further here, there are better channels for this: https://wiki.blender.org/wiki/Communication/Contact#User_Feedback_and_Requests For more information on why this isn't considered a bug, visit: https://wiki.blender.org/wiki/Reference/Not_a_bug
Member

In #72734#839564, @lichtwerk wrote:

In #72734#839547, @LukasStockner wrote:
UDIM tiles are automatically detected and loaded when you open any of them.

@LukasStockner : What I meant is that if you have a default tiled image with only one tile (1001) and then browse for a file like tile.1001.png [where also tile.1002.png, tile.1003.png, tile.1004.png, tile.1005.png are present], create the remaining 4 tiles automatically?

If you opened the 1001 file for the first time, it will scan for additional tiles. If you already opened 1001 before, it won't re-scan.
Actually, having a "re-scan" operator is a good idea, I'll add it to the list.

Generally, yeah, this report can be closed.

@Funnybob Interesting, I wasn't aware that the other formats are in use. It is possible to add support for that, I'll add it to the list as well.

> In #72734#839564, @lichtwerk wrote: >> In #72734#839547, @LukasStockner wrote: >> UDIM tiles *are* automatically detected and loaded when you open any of them. > > @LukasStockner : What I meant is that if you have a default tiled image with only one tile (1001) and then browse for a file like `tile.1001.png` [where also `tile.1002.png`, `tile.1003.png`, `tile.1004.png`, `tile.1005.png` are present], create the remaining 4 tiles automatically? If you opened the 1001 file for the first time, it will scan for additional tiles. If you already opened 1001 before, it won't re-scan. Actually, having a "re-scan" operator is a good idea, I'll add it to the list. Generally, yeah, this report can be closed. @Funnybob Interesting, I wasn't aware that the other formats are in use. It is possible to add support for that, I'll add it to the list as well.
Author

Actually, the way it works is the following. You open or import a file with UV spread on different UDIMs. Textures are irrelevant at this point as the UVs are part of the geometry. When you assign a textures (I use Maya as an example), when you select one of first tree options as mentioned in my previous message, the texture name will change from foo.0001.jpg (or foo.u1v1.jpg) to foo..jpg. Then Maya will seek textures according to the UVs. If it finds a texture in UDIM 4,5 (or 4005), it will assign the corresponding texture to the geometry. UDIMs are not created according to textures, unless you manually create them.

Actually, the way it works is the following. You open or import a file with UV spread on different UDIMs. Textures are irrelevant at this point as the UVs are part of the geometry. When you assign a textures (I use Maya as an example), when you select one of first tree options as mentioned in my previous message, the texture name will change from foo.0001.jpg (or foo.u1v1.jpg) to foo.<UDIM>.jpg. Then Maya will seek textures according to the UVs. If it finds a texture in UDIM 4,5 (or 4005), it will assign the corresponding texture to the geometry. UDIMs are not created according to textures, unless you manually create them.
Author

You (the user) don't want to rescan for textures. When you call the rendering engine, the engine will find the textures as it knows it's looking for UDIM textures (by choosing the tile option).

You (the user) don't want to rescan for textures. When you call the rendering engine, the engine will find the textures as it knows it's looking for UDIM textures (by choosing the tile option).
Member

@Funnybob : at this point it seems a bit more manual in blender, but that could be considered as well?

In #72734#839574, @LukasStockner wrote:
If you opened the 1001 file for the first time, it will scan for additional tiles.

It might find the tiles on disk, but it does not add them / create them for the list in the UDIM tiles panel:
image.png

@Funnybob : at this point it seems a bit more manual in blender, but that could be considered as well? > In #72734#839574, @LukasStockner wrote: > If you opened the 1001 file for the first time, it will scan for additional tiles. It might find the tiles on disk, but it does not add them / create them for the list in the UDIM tiles panel: ![image.png](https://archive.blender.org/developer/F8250363/image.png)
Author

In this case, you would not turn on the tile option. This is just regular UV mapping.

In this case, you would not turn on the tile option. This is just regular UV mapping.
Author

I actually don't understand why you need to make a tile list. I don't know of any 3D package the requires the user to create UDIMs. If you move the geometry outside 1,1, then it's on another UDIM and that's it. You just need to make sure that there's no overlap from one tile to another (a checking tool for that is a must). You can see on this image some geo where the UVs are on different UDIMs. But I didn't create them. I just moved the UVs where I wanted them. Screen Shot 2019-12-29 at 10.40.40 AM.png

I actually don't understand why you need to make a tile list. I don't know of any 3D package the requires the user to create UDIMs. If you move the geometry outside 1,1, then it's on another UDIM and that's it. You just need to make sure that there's no overlap from one tile to another (a checking tool for that is a must). You can see on this image some geo where the UVs are on different UDIMs. But I didn't create them. I just moved the UVs where I wanted them. ![Screen Shot 2019-12-29 at 10.40.40 AM.png](https://archive.blender.org/developer/F8250373/Screen_Shot_2019-12-29_at_10.40.40_AM.png)
Member

Added subscriber: @Jeroen-Bakker

Added subscriber: @Jeroen-Bakker
Member

Changed status from 'Needs Developer To Reproduce' to: 'Archived'

Changed status from 'Needs Developer To Reproduce' to: 'Archived'
Jeroen Bakker self-assigned this 2020-01-20 14:35:07 +01:00
Member

Lukas mentioned he adds it to his list for improvements, will close this report for now. As the last few comments are user/support related.

Lukas mentioned he adds it to his list for improvements, will close this report for now. As the last few comments are user/support related.
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
4 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#72734
No description provided.