Author Topic: Texture Set naming - Modo to Substance Painter Question  (Read 5143 times)

I am looking for some clarification as to how the naming of texture sets in Painter is affected by objects imported from Modo. Even though all of my Material Groups in Modo have unique names, when imported into Painter they would appear as strings of numbers like "100117" or "10013". All of the objects in the FBX I exported from Modo had their own UV set, positioned in the first UDIM tile (1001). Clearly the names are coming from this first tile number with added digits counting up from 1 for as many different objects were in the file. As it concerns Modo, where is Painter specifically pulling the names for the texture sets? Is there some kind of setting in the FBX I/O options that needs to be on for these to be read properly? I also tried naming the material inside of the Material Group (that by default is named "Material") but this didn't work either. I tried opening the Modo generated FBX in Maya and the separate objects and their materials were in the file with their assigned names. Any insight you can give would be most appreciated!

Hi Ben,

I've experimented with probably every way of bringing in meshes to Painter from Modo and will try and help here. Below I've copied part of my reply to another topic as it's equally as relevant and I have limited time today.  I find that combining multiple mesh objects into one (Create selection sets for the polygons of each mesh first, or assign a material so you can right-click on it and select all polygons that it's applied to so it's easier to UV) by copying the polygons into a single mesh item works much better than trying to texture multiple mesh items with unique UV maps.

Once you have combined all the polygons into a single mesh item (they don't actually have to be joined together at all and can remain separate within the single mesh item) then use UDIM tiles to give each separate part of the mesh it's own texture set in Painter. Just note that currently it's not possible to paint across multiple UDIM's in Painter, so think carefully about how you UV. Combining all your mesh items and UV's is pretty straight forward in Modo and doesn't take long at all. This is how I would go about it.

1. Select one mesh and UV Map to be used for everything. The UV's for this mesh will already be occupying tile 1001 by default.

2. Select another mesh and it's corresponding UV map. Go to UV Layout and select the UDIM indicator option and then the 'Select all UV's in the Region' option. Now select the 'Move all UV's in the Region' option and input 1002, which will simply move all UV's to the next tile.

3. Deselect all UVs and cut the polys from this mesh and paste into the main mesh item chosen in step 1. You will see that the UV map from the item you have just pasted into this mesh now appears in the UV Map list underneath the UV map for the main mesh. In UV Layout, reselect the UV's from this item (tile 1002) and then select 'Edit UV's> Cut UV's' option.

4. Select the UV map for the main mesh item and use the UDIM indicator to select tile 1002. Now just paste in the UV's and repeat for all the other items, remembering to make sure the UV's from each mesh item occupy their own unique UDIM tile. I would also apply a material to every mesh (I select all the polys in each UDIM and apply to that) to ensure the best results too, just name them after the UDIM tiles and add a label to describe the content at the end.

5. Finally, delete all UV maps from the UV List palette except for the main uv map that should now contain UV's for all the different meshes on separate UDIM tiles.

Now, when you bring everything into Painter all tiles should be named as expected and perfectly match up with the UDIM tile number. I just wish there was a way to add a label to these in Painter for reference.

One last note, make sure you check your Painter log file as overly long numbers such as 100117 usually refer to a mesh that is not included on the UV map, so check for stray polys in your Modo file.

You may find more relevant info on the process in this post:
https://forum.allegorithmic.com/index.php/topic,14965.msg64103.html#msg64103

Hope that helps,

Jay
Last Edit: February 23, 2017, 12:53:13 pm
WS: Win10 / Intel i7 6950X 10 core / 20 threads 3.0GHz, OC @ 4.2GHz / Titan X 12GB GFX / Intel 750 Series 1.2TB NVMe (Primary HDD) / Intel 750 Series 800GB NVMe (Cache) / 64GB DDR4 Ram

Hi Jay-

Thank you so much for taking the time to respond to my post- I appreciate it! I'm not sure if it's because of the new SP 2.5 update or not (might this be a bug?), but I'm still not understanding my original question as it concerns Texture Set naming within Substance Painter. As a test I made a sphere and a cube, assigning a unique texture to each, and placing the UVS in the 1001 and 1002 tiles respectively as you outlined in your response. This was composed in a single UV map, and a single layer for the geometry. I exported in two different formats for the test- OBJ and FBX 2013. In both cases the imports were successful, but the texture sets came in as "1001" and "1002", despite uniquely naming the two material groups AND the actual materials inside them. I should add that I am using Modo 10.2v1.

It is important for me to understand how this works, because I created a character and fully textured it, while absentmindedly forgetting to add two critical elements in the FBX file. As fate would have it, I noticed said two elements were missing only after finishing the textures for all of the other elements. I read a number of threads about adding elements to your Mesh file subsequently via "Edit>Project Configuration". Mentioned in these posts was that it was critical to retain the names of the materials for existing elements so Painter knew where to distribute them on the new mesh being imported. Even though I just simply added the missing elements, being sure to properly UV them and add new materials to each, I did not alter anything with the other existing elements. When I brought in the new FBX, the textures were jacked on easily over half of the elements I'd already fully textured. Clearly there was a reordering of the material names. Ultimately I wanted to render this out with Iray, but I do not want to have to re-texture everything again in order to do so.  Another downside to this texture set naming problem is that with 20+ different elements it becomes an excrutiating process of turning on and off layers when i want to target any element to focus on, as the numerically named texture sets make differentiation impossible.

Has anyone else experienced this problem with texture set naming? I've spent many hours trying many different ways to affect the naming within Painter and nothing seems to work. I'm not sure if I'm battling a bug or if I'm just ignorant of some critical factor in this process. A simple "name this in Modo and the Texture Set name in Painter will correspond" is essentially what I'm looking for. Again, thanks for taking the time to respond to my post.

Hi Ben,

I'm just in the middle of an important render right now, so will have to be quick.

As far as I am aware, you can't rename texture sets in Painter as they reflect the UV Tile / UDIM number and this is appended to the naming of each texture. Therefore, you can't name the texture sets in Painter to match the material names you have in Modo. This is why I recommend naming materials to match UDIM tile numbers in Modo followed by a descriptive label (1001 robot arm etc) for your own sanity, so it sounds like you might have done everything right! When you import into Modo you can then use the 'Set UDIM from filename' option found in the 'Image Still' tab to make assigning textures quick and easy.

You can quickly select the corresponding texture set of any part of your mesh in Painter by holding Ctrl + Alt + right mouse clicking on it.

Hope this helps.
Last Edit: February 23, 2017, 06:01:22 pm
WS: Win10 / Intel i7 6950X 10 core / 20 threads 3.0GHz, OC @ 4.2GHz / Titan X 12GB GFX / Intel 750 Series 1.2TB NVMe (Primary HDD) / Intel 750 Series 800GB NVMe (Cache) / 64GB DDR4 Ram

So close! First off "Ctrl + Alt + right mouse clicking on it" is *GOLD*. Not sure why I never found that but this will help me moving forward tremendously- thanks so much for including that! The only remaining thing is best described by this image from the documentation:

 

I realize that the naming for the Texture Sets cannot be changed inside of Substance Painter, as it is derived from the mesh that is imported. In that screenshot you see SP Texture Sets that are not named "1001, 1002..." and so on but instead are named "gun" or "legs"- they are described in the text beneath as being named according to their Material IDs "created during mesh creation". When I imported the new mesh with the two missing objects, it appeared as though whatever mechanism inside of Modo determines Material IDS is reordering the names as they appear in Painter, and as a result they are blowing up the existing texture assignments. My thought was that if I explicitly was able to name these materials in Modo to what they were in the original Painter file (the 10017, 100113, etc) this would override what is currently happening, and as a result the existing textures I'd painted would be assigned properly despite adding these new elements into my mesh file. Does that make sense? I can see from the documentation that there is a way to add custom names, but what I'm not seeing is a Modo-specific way of going about this. So are you saying that this cannot be done with Modo? In other words- say I was creating a completely new project and wanted to have my texture sets named "arm" and "head". Is there a way to accomplish this using a mesh exported from Modo? It appears as though you can accomplish this with at least one program, otherwise the above picture is very confusing. Again, thank you for taking the time to provide these responses- I'm stuggling to get to the bottom of this and am afraid I have not arrived at the answers on my own despite my efforts.

Hi Ben,

No problem at all and glad I could help. I've only been using Painter for a short time myself after switching over from using Mari, so there's still a lot left for me to figure out too! I'm sure there's a way to achieve this, so I'll have to take a look as soon as I get some time. If you figure it out beforehand though, be sure to post the solution here for everyone else though please. All the best and no doubt speak again soon,

Jay
WS: Win10 / Intel i7 6950X 10 core / 20 threads 3.0GHz, OC @ 4.2GHz / Titan X 12GB GFX / Intel 750 Series 1.2TB NVMe (Primary HDD) / Intel 750 Series 800GB NVMe (Cache) / 64GB DDR4 Ram

Again, thanks for responding Jay. I just wanted to add to this thread to bump it back up to the top of the forum listings, as I have not found a solution yet to this problem. If anyone reading this has been able to successfully get names from their Modo FBX meshes to actually carry over in the naming of their texture sets... well, I would love to hear a confirmation that it is even possible. I would assume it is, but the most obvious methods I've outlined in my previous posts do not appear to work and this apparent limitation is a little hard to accept. Thanks in advance for anyone who might have the answer!

No problem Ben, I'm a bit pushed for time at the moment, but have been trying to look into this a little further for you.

Upon creating a standard cube and then applying a texture called 'Test', the name of the texture was in fact brought through to Painter. Now, just leave it with me whilst I attempt to test other set ups with multi-UV maps and UDIM tiles.
WS: Win10 / Intel i7 6950X 10 core / 20 threads 3.0GHz, OC @ 4.2GHz / Titan X 12GB GFX / Intel 750 Series 1.2TB NVMe (Primary HDD) / Intel 750 Series 800GB NVMe (Cache) / 64GB DDR4 Ram

Ok, so I think I've figured it out. I was going to test all the different ways you could export from Modo before importing into Painter, but there doesn't seem any need to now.

It looks like the culprit is the 'Create a texture set per UDIM tile' option you are presented with upon creating a new Painter project. If you deselect this (obviously, only do this if you aren't using UDIMs) then the texture set names will be exactly as named in Modo and match the names of the materials applied to your geometry. If you're using UDIM tiles though, the naming appears to simply revert to the UDIM tile number only.

So, I think there are really three options:

If you want the name of the materials you have applied to your mesh items inside of Modo to be respected in Painter, do this:

1. Unwrap all mesh items into a single UV tile. You can still apply individual materials to each separate mesh and name as required using this method as they will be respected inside of Painter. However, this method should really be avoided as you won't be able to allocate a decent amount of texture space to all the polys and there could very well be problems with texture overlap etc.

2. Create a unique UV map and texture for every mesh using only a single UDIM tile - default 1001 UV space. This works as expected for me during testing when not using UDIMs and the 'Create a texture set per UDIM' option. Just make sure that you have given each mesh it's own unique UV map inside of Modo and delete any duplicates though. Also, (you might already know this) you can check that each mesh definitely has it's own unique ID by adding a 'Surface ID' output to the top of the shader tree and previewing that pass in the preview window. If correct, each mesh should show as a unique colour.

The most effective method that will ensure all your polys have the maximum amount of texture space possible is to use UDIMs and at the moment it looks like this method won't allow custom naming or labels to be appended to the UDIM tile name though.

Hope that helps, if not drop me a PM and perhaps we can chat further on Skype.

Jay
Last Edit: February 27, 2017, 11:47:00 pm
WS: Win10 / Intel i7 6950X 10 core / 20 threads 3.0GHz, OC @ 4.2GHz / Titan X 12GB GFX / Intel 750 Series 1.2TB NVMe (Primary HDD) / Intel 750 Series 800GB NVMe (Cache) / 64GB DDR4 Ram

That was it Jay- "Create a texture set per UDIM tile"! It makes sense why Painter would work this way, although I didn't make the connection that it would override the naming I'd set up in Modo. Thank you so much for your help with this- really very cool of you to take the time you have with this thread. Hopefully I can return the favor for someone else as my experience continues to build.

Hi Ben,

No problem at all. Glad I could help and we figured it out in the end. Take it easy and bye for now.

Jay
WS: Win10 / Intel i7 6950X 10 core / 20 threads 3.0GHz, OC @ 4.2GHz / Titan X 12GB GFX / Intel 750 Series 1.2TB NVMe (Primary HDD) / Intel 750 Series 800GB NVMe (Cache) / 64GB DDR4 Ram