

Many including this author assumed it would sweep the texturing community.
#MAYA 2017 UV MAPPING FREE#
and then at the start of 2010 Ptex released as free open source.
#MAYA 2017 UV MAPPING PRO#
By September of 2009 Ptex was integrated into Pixar’s RenderMan Pro Server 15.0.

It was in June 2008 that Ptex was first presented at the Eurographics Symposium on Rendering by Disney Animation, and later that year that Disney’s Bolt was released the first feature film to use Ptex. The Disney Ptex library became available to the public community of texture artists, lighters and modelers about four years ago. While Ptex may still yet win the texturing heart of pipelines around the world, it has not yet become the dominant force. From UV to UDIM to Ptex, it is easy to think one technology has just displaced another, but the reality is more complex. UDIM UV mapping has enormous popularity for texturing in the face of much newer systems such as Ptex (which works very well in its own right). Yea I would need to reopen a scene in order to clear out the zombie sets.Texturing is central to 3D. If you need to re-order the uv sets, and clean out empty indices, it will involve a lot of closing and re-opening of files so Maya will let go of the previously used index. In our case, if two models share the same material, all the matters is that the names match on the two models - it doesn’t matter if map2 is index 1 on one model and index 2 on the other. in our export pipeline, the index of the uv sets do not matter, the model and material work out which uv set goes to which texture and exporter gets the data. Your exporter should take into consideration the model and material together to determine which uv sets to export. UV Set names are only for display purposes only - the true identity of a uv set is its index. Renaming UV Sets should absolutely not re-order the indices. As I see it, if you want set X to be the -real- primary one (ie: its on slot 0) the only way is to create temporary UV sets and start copying sets around - or is there some easier way of doing it? The 3D Artists exports a mesh thinking that map1 is texCoords0 when in fact Maya thinks that whatever set which is on position 0 in the array is the correct one.Īlso, say that a minor studio without their own export tools would have to deal with this: how would you modify the order of that array? Say that I want a minor tool for simply changing the UV set order (move up, move down, move to top etc). I´ve talked to a 3D artist at DICE about this and he told me they´ve been having some problems with this situation.

But, if the user then exports the mesh (to obj or FBX), does the exporter look at the array or at the names (strings) of the UV set? A tools coder/TA would most likely just go with the names here in order to not confuse the artists (I would) - but what about those small studios who don´t have their own exporters, those who have to rely on the native OBJ/FBX exporter in Maya? Renaming a set to map1 does not make it the primary set (as Maya see it) because the set on slot 0 in the array does not switch place with the set that the user is trying to make primary by renaming. The way Maya is dealing with UV sets are indeed funky. I forgot to thank you Theodox for your awesome functions - they will definetly come in use. Lvi = lambda uv_obj: len(cmds.polyUVSet(uv_obj, q=True, auv=True)) > 1Ĭollapse UV sets and make sure that the surviving UV channel is named 'map1' for finicky programs that care aboutĬmds.polyUVSet(obj, rename=True, newUVSet="map_rename_temp")Ĭmds.polyUVSet(obj, rename=True, newUVSet="map1") Returns a list of all the meshes in the scene with multiple UV sets Returns a string list of the deleted channel namesĬmds.polyUVSet(obj, cp=True, uvs=map, nuv=indices)Ĭur_map = cmds.polyUVSet(obj, q=True, cuv=True)Ĭmds.polyUVSet(obj, cp=True, uvs=cur_map, nuv=indices)Ĭmds.polyUVSet(obj, delete=True, uvs=indices)ĭeletes all empty UV channels on the supplied the first UV channel is not touched, even it if is empty, since it cannot be deleted.Ĭt = cmds.polyEvaluate(obj, uv=True, uvs=indices)

If the optional map parameter is supplied, that map will be copied into Uvnames = cmds.polyUVSet(obj, q=True, auv=True) or ĭeletes all UV channes except the first. Uvindices = cmds.polyUVSet(obj, q=True, uvn=True) or Returns am index:name dictionary of the uvsets on the supplied object Uvnames = cmds.polyUVSet(obj, q=True, auv=True) Uvindices = cmds.polyUVSet(obj, q=True, uvn=True) Returns a name:index dictionary of the uvsets on the supplied object Namespace for uv manipulation and queries
