Thanks for the response. ...I too mix up the nomenclature of these all the time so no reason to excuse. ...I think we're all talking about the same thing here, so we should be good ...hopefully haha.
Anyways, yes I agree ... this would be an excellent feature to have. In my case I simply do not care about the number or names of the subimages (parts) - I really just need OIIO, or any other tool, to do a 'passthru' of subimage names and convert the whole thing into a more "optimized" multipart image. Exactly as you described, really. The other reason is because our output renders do not always have the same layout of subimage names, one render could have 8 parts when another only 3, so setting up a "standard" command line is not really an option - would simply not work for any arbitrary input image. When I say parts ... I mean, within a single EXR are multiple RGBA parts. These could be "beauty.RGB", "Specular.RGB", "Albedo.RGB" etc. (what Nuke refers to as channels/layers). Not just a single channel R,G,B or A for a single EXR. Also when I say "optimized" I'm simply referring to the results I'm seeing after doing this through Nuke. But what Nuke does exactly (when I re-write the images) I do not fully understand. The docs say (as I mentioned before): "Sets the interleave strategy for channels, layers ... file is created as described by the following options, with layers and parts sorted alphabetically" blahblah Is it just the fact that subimages are sorted alphabetically before written out again as a multipart image or is there some other magic to this? ... it doesn't really make sense. If that was the case ... I suppose one could write a small python script that scans the file, list everything and write out again after sorting all subimages alphabetically. Or does the fact that things are somehow sorted alphabetically make no difference here, there are other things happening 'under the hood' that dictate whether the files are "more optimized for reading"? In any case, it kind of defeats the purpose though as I would prefer not to rely on writing custom tools or other third party solutions. I would just like our render farm to run a simple "post operation" command for each image - in and out. Similar to what we do when converting Tiled EXRs to Scanline EXRs (which works fantastic). I've not tried the ‘exrmultipart’ tool Jonathan mentioned but at a quick glance it seems to require the same kind of input - knowing/a list of all channels/subimages prior to repackaging so it doesn't appear as if OIIO is any worse. I might be wrong though. Thanks for your help - much appreciated. cheers, Matthias. *--Matthías Bjarnason* *VFX Supervisor* RVX Hólmaslóð 8 101 Reykjavík, Iceland www.rvx.is On Fri, May 7, 2021 at 5:29 PM Matthías Bjarnason <matthias.bjarna...@rvx.is> wrote: > Can someone please help explain how one goes about converting EXR (pre > 2.0) that includes multiple channels (render engine output AOVs) to a > "multi part" EXR, more optimized for reading, using OIIO? > > So far I have been using Foundry's Nuke for this purpose but that is > obviously an overkill solution and extremely expensive use of licenses > ...which I'd like to be not dependent on if possible. > > By reading the OIIO help, it seems like this is all possible but I can't > for the life of me figure out how ...using a simple command. Am I missing > something? > > *For reference Nuke's output(write) node documentation states:* > > >> >> >> >> >> >> *Sets the interleave strategy for channels, layers, and views with a >> rendered .exr file. A single- or multi-part .exr file is created as >> described by the following options, with layers and parts sorted >> alphabetically:• channels, layers and views - creates a single-part .exr >> file ensuring backward compatibility with applications that use OpenEXR >> 1.x.• channels and layers - creates a multi-part .exr file with one part >> per view. This can improve Read performance as Nuke only reads the part >> associated with the specified view.• channels - creates a multi-part .exr >> with one part per layer.* >> > > > It would be both the second and third option scenarios I'm most interested > in recreating using OIIO but from what I can gather in the OIIO help, there > is no simple flag/command to do this - a simple file IN file OUT. > > > Is this at all possible using OIIO's basic tool commands? > > Any help appreciated - thanks. > > - M >
_______________________________________________ Oiio-dev mailing list Oiio-dev@lists.openimageio.org http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org