OK, so the generalized rule is: <u> --> "%d", int(u) <v> --> "%d", int(v) <U> --> "%d", int(u)+1 <V> --> "%d", int(v)+1 <UDIM> --> "%04d", int(u%10) + 10*int(v)/10 + 1
That should cover all the bases of known apps we're concerned about? > On May 31, 2016, at 11:58 AM, Deke Kincaid <[email protected]> wrote: > > Maya added native optional UDIM/UVTILE and Zbrush methods in the read node > about 3 years ago. > > https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/Maya/files/GUID-132520C0-F1DF-4C74-B8C1-D89154ADFBDB-htm.html > > <https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/Maya/files/GUID-132520C0-F1DF-4C74-B8C1-D89154ADFBDB-htm.html> > > 0-based (Zbrush) - u<u>_v<v> > 1-based (Mudbox) - u<U>_v<V> > UDIM (Mari) - <UDIM> > > On Tue, May 31, 2016 at 11:44 AM, Stephen Parker <[email protected] > <mailto:[email protected]>> wrote: > tl;dr - support both udim and uvtile > > V-Ray supports both <UDIM> and <UVTILE> and those are the exact tags used in > the filename for string replacement. At Digital Domain, they exclusively use > <UVTILE> as it plays nicer with animated texture sequences. At some point, > Maya only allowed you to overload one padded sequence token between two dot's > (.). So the file names for <UVTILE> would look like this: > > "brick_red_u1_v1.exr" > > and if it were an animated texture: > > "sign_neon_u1_v1.0001.exr". > > To be clear, the format string is "_u%d_v%d" and tiles start at 1. > > Mari's convention for animated textures was to prepend the file name with > padded numbers: "####sign_neon.1001.exr" (which didn't play nice with Maya's > texture file node and it's convention for animated sequences) and was also > not easy to look at on disk in a directory structure for obvious sorting > issues. > > I wouldn't impose any constraints from tile to tile unless it's a really big > burden to support. For example, anything that isn't specified on the file > read node representing the virtual texture, should be permitted to vary to > whatever extent you can reasonably support. Ideally, you wouldn't have to ... > but, vfx. :) > > -steve > > > > On Tue, May 31, 2016 at 8:35 AM, Larry Gritz <[email protected] > <mailto:[email protected]>> wrote: > Thanks, that's really helpful! > > Yes, and I should have mentioned in my original email -- if there is an > application that has already added UDIM support that is widely used or that > you like its conventions, please point it out and I'll try to use the same > notation (if there is any consensus among such apps). > > Michel, I'm happy to support the Mudbox tiling as well, can you outline how > it is different? > > > > > On May 31, 2016, at 2:51 AM, Michel Lerenard <[email protected] > > <mailto:[email protected]>> wrote: > > > > Hi, > > > > I add support for UDIM in Clarisse over the TextureSystem a few years ago, > > I should have a few answers: > > > > - I used the <UDIM> tag. "%04d" is too generic and may confuse users in my > > opinion, since it could also be a way to specify a frame. Having an > > explicit tag that stands out is useful. (so we have two tags: <UDIM> for > > Mari and <UVTILE> for Mudbox. ) > > > > - Agree that UDIM is single tile. Tile indice in UDIM is hardcoded in > > Clarisse to 1000 + 10 * V + U + 1. Mari seems to be harcoded as well, so > > unless you have a in house software package that support other sizes, I > > don't think you'll need another line width. We've never had any complaint > > so far. > > Per texture option : useless. > > At texture system level: why not, it shouldn't make the code much more > > complex. > > > > - In my implementation, I do not make any assumption on the data: it may or > > may not exist for a UV range, resolution may change, so does AOV/channels. > > It's not the most efficient way to go, but I'm sure that it will work every > > if you mix mipmapped TX files with loads of AOV with simple Jpegs. > > > > Here are a few thoughts that I'd like to share with you about this feature: > > - The main issue I have today is being able to use filtering over several > > tiles. I compute the name of the file to evaluate, and offset UVs before > > calling the texture() function, which means that OIIO does not know that > > I'm evaluating UDIM tiles => I can't get any filtering on the sides of the > > tiles, or integrate data over several tiles. Making this work would be > > awesome. > > > > - Listing the available tiles for fast access can be easily done. What I do > > is parse the folder, get all files matching the filename and create an > > array to later be able to evaluate a tile without accessing its filename. > > Very efficient especially if you have holes. > > > > - Do you plan to support Mudbox tiling system as well ? It's not that > > different and is able to handle negative ranges, which is very pratical for > > symmetry. > > > > - I'm interested in testing it, i'm curious to see if it's faster than my > > implementation, in which case i'd switch. > > > > > > On 05/30/2016 11:41 PM, Larry Gritz wrote: > >> I've gotten a few requests lately for direct UDIM support in OIIO (and, > >> transitively, in OSL). > >> > >> The way I figure this will work is that you pass in the UDIM u and v > >> texture coordinates (which may extend outside [0,1], with each [i,i+1) > >> block indicating a different texture region tile), and for the filename > >> you will give a generic name such as "myfile.<UDIM>.tx". For the > >> particular texture lookup, the u and v will be assessed and the "<UDIM>" > >> will be replaced with the right tile number (let's say "1013" for u=0.25, > >> v=0.12). > >> > >> Don't worry, I know a way to do this so that there is no actual string > >> searching or construction happening per call. So the expense of this will > >> be very very low. > >> > >> But I want to make sure everybody is happy with the way of signalling > >> this, so I have a few questions. > >> > >> * What text should indicate that it's a UDIM texture and which will be > >> substituted with the tile number? "<UDIM>"? "%04d" or some other explicit > >> format indicator? Something else? > >> > >> * Does everybody agree that UDIM tiles are 1-D (i.e. a single tile number, > >> not a separate u and v tile in the filename), start with 1001, are 4 > >> digits, and always have 10 tiles in the u direction? Can this be > >> hard-coded, or does it need to be an option to the ShadingSystem (that > >> could be overridden on a per-site/per-product basis), or does it need to > >> be something that can be specified separately for every texture? > >> > >> * Because the filename you pass is "virtual" -- that is, "foo.<UDIM>.tif" > >> doesn't actually exist, it's only turned into a proper existing filename > >> in the midst of a lookup for a particular u,v -- this means that > >> TextureSystem::get_texture_info which lacks uv coordinate parameters must > >> necessarily fail for most queries, since you don't know which individual > >> texture region file should be used. Does that sound reasonable for those > >> queries to fail? > >> > >> * Are there any properties that you feel strongly should or should not be > >> constrained to be identical for all of the individual region files for one > >> UDIM texture? I assume we want to allow the region tiles to have differing > >> resolutions, say. But should/can we assume that they must all share the > >> same number of channels? Are there any cases I need to be aware of where > >> differences are nonsensical? Any cases where differences are inevitable > >> and I need to ensure that such flexibility is allowed? > >> > >> Let me know if you have opinions. As well, even if you are fine with the > >> proposal but are keen to try out the UDIM support as soon as it's > >> available, let me know so I can ping you for feedback when it's ready to > >> take for a test drive. > >> > >> -- lg > >> > >> > >> -- > >> Larry Gritz > >> [email protected] <mailto:[email protected]> > >> > >> > >> _______________________________________________ > >> Oiio-dev mailing list > >> [email protected] <mailto:[email protected]> > >> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org > >> <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org> > >> > > > > _______________________________________________ > > Oiio-dev mailing list > > [email protected] <mailto:[email protected]> > > http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org > > <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org> > > -- > Larry Gritz > [email protected] <mailto:[email protected]> > > > _______________________________________________ > Oiio-dev mailing list > [email protected] <mailto:[email protected]> > http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org > <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org> > > > _______________________________________________ > Oiio-dev mailing list > [email protected] <mailto:[email protected]> > http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org > <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org> > > > _______________________________________________ > Oiio-dev mailing list > [email protected] > http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org -- Larry Gritz [email protected]
_______________________________________________ Oiio-dev mailing list [email protected] http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org
