I don't, but you could create a proxy image as an example: oiiotool -pattern fill:color=.75,.75,.75,1l 64x64 4 -chnames R,G,B,A -pattern fill:color=.25,.25,.25 64x64 3 -chnames diffuse.R,diffuse.G,diffuse.B -pattern fill:color=.5,.5,.5 64x64 3 -chnames specular.R,specular.G,specular.B -chappend -chappend -d half -o out.exr
> On Sep 17, 2020, at 3:37 AM, Radu Arjocu <[email protected]> wrote: > > Thanks for the comprehensive answer; this makes it a lot clearer! > > So, what I (maybe) need to handle is point 2. in your previous answer in > actual client EXRs. Would you happen to have an EXR sample containing RGBA, > and specular and diffuse light? That would be great �� > > Radu Arjocu <http://www.masstech.com/> > From: Oiio-dev <[email protected]> on behalf of Larry > Gritz <[email protected]> > Sent: Thursday, September 17, 2020 01:55 > To: OpenImageIO developers <[email protected]> > Subject: Re: [Oiio-dev] How to merge layers of multi-layer EXRs? > > Well, you already have R, G, B, A, right? So what is there to merge? Do you > not simply want to *extract* the R,G,B,A that you have? You would do that with > > oiiotool allchannels.exr -ch R,G,B,A -o justrgba.exr > > (or justrgba.tif, if your point is to extract it to a different format) > > Layers (or for that matter, "parts" in multi-part exr, which is the modern > way to do all of this, layers being just a way to try to group channels > before parts were available) are generally used in two ways: > > 1. Things that don't meaningfully combine at all -- for example one > layer/part for RGBA, and another for motion vectors. > > 2. Things that combine by addition -- for example, one layer for RGBA, a > second layer containing just the specular light, and a third containing just > the diffuse light (with RGBA = specular + diffuse). > > Layers or parts are never, to the best of my knowledge, used to store things > that are supposed to composite (in the "over" sense), and there is no way to > represent an ordering. In fact, in what I believe was a grave mis-design, > OpenEXR stores channels in *alphabetical* sorted order, without the option of > specifying any other ordering of the channels within the file. > > Presence of a Z channel does not make the file deep; it's fine to have a flat > file with a Z channel. Although if the file is deep, it is in theory required > to have a Z channel. The thing that makes it deep is the presence of multiple > (and potentially differing numbers of) samples in each pixel. Flat files have > just one sample per pixel. That's the difference. > > If you had Z/Zback channels in each layer, then you could certainly do a > depth merge of them, since these channels would imply a front-to-back order > (per pixel, not of whole layers). But I've never heard of people doing this. > You'd just use a deep file if this is what you were trying to store in the > file. > > >> On Sep 16, 2020, at 12:47 PM, Radu Arjocu <[email protected] >> <mailto:[email protected]>> wrote: >> >> I am talking about "multi-layer" which is a single "part" with many channels >> that are logically grouped togheter in layers. Right now I'm interested in >> the EXR case, with its rules of naming layers -- which I think I understand. >> For simplicity, let's assume a single EXR view and the following channels: >> >> R, G, B, A, shape1.R, shape1.G, shape1.B, shape1.A, shape2.R, shape2.G, >> shape2.B, shape2.A >> >> The layers would be: the (default) nameless layer and respectively the >> "shape1" and "shape2" layers. >> >> So, what I want to know is how to merge these 3 layers into 1 layer >> (containing only RGBA), for viewing the end result!? What layer is in front >> of another, or at the back? That's what I meant with "the order in which to >> merge [the layers]" -- determining which layer is more at the front or at >> the back. >> >> As I understand OpenEXR, the depth channels (Z & ZBack) correspond to the >> deep pixels (for all channels of a pixel), and don't reveal which layer is >> at the front or back. Am I missing something? Can the Z & ZBack channels >> apper on non-deep (/flat) EXRs and are they used to tell the depth of layer >> channels on a per pixel basis -- so my example would need Z, shape1.Z and >> shape2.Z? >> >> Radu Arjocu >> >> From: Oiio-dev <[email protected] >> <mailto:[email protected]>> on behalf of Larry Gritz >> <[email protected] <mailto:[email protected]>> >> Sent: Wednesday, September 16, 2020 20:23 >> To: OpenImageIO developers <[email protected] >> <mailto:[email protected]>> >> Subject: Re: [Oiio-dev] How to merge layers of multi-layer EXRs? >> >> Are you talking about a "multi-part" exr (what OIIO calls multi-subimage), >> or are you talking about "multi-layer" which is a single "part" with many >> channels but that just follows a convention for how to name those channels >> so that they can be grouped easily by an application? >> >> If you just want a single RGBA image in the end, then are you just talking >> about simply extracting the RGBA channels for export to another format? >> >> "flatten" just composites the multiple depth samples within each pixel of a >> deep image to a single per-channel value. But it does not affect which >> channels are in which "part" of a multi-part image. >> >> >>> On Sep 16, 2020, at 7:45 AM, Radu Arjocu <[email protected] >>> <mailto:[email protected]>> wrote: >>> >>> Hello, >>> >>> Being relatively new to the OpenEXR format, I have a couple of questions >>> regarding multi-layer EXR: >>> >>> 1) What is the (optimal) way to go if I want to merge/compose all the >>> layers of an EXR (say flat image for simplicity) into a single layer >>> (RGBA-only channels), so that I can convert it to another format and >>> rescale it as needed for quick viewing ? -- just like viewing thumbnails, >>> but probably at a higher resolution. >>> >>> I understand that I have to manually determine what the layers are and >>> their respective channels, but I don't know (especially) the order in which >>> to merge them. NOTE: I use the terminology "flat image" to refer to >>> non-deep images (since "flattening" is used by OIIO to denote this >>> operation) and "merge"/"compose" for rendering multi-layers into a single >>> layer; but other SW use "flattening" to refer to the merge/compose >>> operation. >>> >>> 2) How do I treat "special" channels like effects, vectors etc. in the >>> scenario at point 1? >>> >>> 3) Does using the `flatten()` function for deep and multi-layer images >>> (EXRs) also merge the layers or not? I assume not, but I cannot verify >>> this, since I don't have an EXR sample. I would greatly appreciate if >>> someone has a sample like this. >>> >>> Thank you, >>> Radu Arjocu >>> <https://protect2.fireeye.com/v1/url?k=c25e4a02-9cd1f486-c2592a0e-86801c117383-76c7f1f405a319a7&q=1&e=975968e2-8694-4935-af42-44e261a41663&u=http%3A%2F%2Fwww.masstech.com%2F> >>> _______________________________________________ >>> Oiio-dev mailing list >>> [email protected] <mailto:[email protected]> >>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org >>> <https://protect2.fireeye.com/v1/url?k=82a4ba62-dc2b04e6-82a3da6e-86801c117383-ba9b89b8c2796bf7&q=1&e=975968e2-8694-4935-af42-44e261a41663&u=http%3A%2F%2Flists.openimageio.org%2Flistinfo.cgi%2Foiio-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 >> <https://protect2.fireeye.com/v1/url?k=81d90246-df4cfd2b-81de624a-868753e36a0a-df8d00a39770c900&q=1&e=cfc8ed92-b4cf-4c13-8842-2ea4c66eb587&u=http%3A%2F%2Flists.openimageio.org%2Flistinfo.cgi%2Foiio-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> -- Larry Gritz [email protected]
_______________________________________________ Oiio-dev mailing list [email protected] http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org
