Here's what I'm thinking as a solution:

https://github.com/OpenImageIO/oiio/pull/2311 
<https://github.com/OpenImageIO/oiio/pull/2311>

So what you'd do with this feature is

    oiiotool --metamerge file1.exr file2.exr --chappend --chname ... -o out.exr

And instead of the output getting the metadata from just file1.exr (current 
behavior makes each op copy metadata from its first argument), this would 
"merge" the metadata from all inputs into the output.



> On Aug 7, 2019, at 8:48 AM, Larry Gritz <[email protected]> wrote:
> 
> Python is the easy fix (where you can copy over the metadata "by hand"), but 
> I'm also working on an oiiotool-based solution to this; stay tuned for a PR 
> hopefully today if I an squeeze out some free time.
> 
> 
>> On Aug 6, 2019, at 4:36 PM, Nathan R <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> Yeah, it looks like what's missing is the Arnold metadata for the other AOVs 
>> besides RGBA.
>> 
>> I'll defer to Larry on the possibilities there (I suspect a Python script 
>> may be the easiest way to go), but based on your channel names and need for 
>> this metadata, I'm guessing you're trying to create a merged EXR to pass to 
>> noice. For what it's worth, I've actually found that it's easier to just 
>> feed in separate files for all the AOVs, since noice will just decide what's 
>> available based on the metadata of all the input files.
>> 
>> -Nathan
>> 
>> On 8/6/2019 4:12 PM, Larry Gritz wrote:
>>> Is it missing the AOVs? (The channels, the pixels?)
>>> 
>>> Or is it just not combining the *metadata* from all the source images into 
>>> the output?
>>> 
>>> 
>>>> On Aug 6, 2019, at 4:06 PM, Lydia Lam <[email protected] 
>>>> <mailto:[email protected]>> wrote:
>>>> 
>>>> They are exr's.  So I have the following aovs:  beauty, 
>>>> diffuse_albedo_noice, variance, N_noice, Z_noice:
>>>> 
>>>> ./oiiotool beauty.0001.exr diffuse_albedo_noice.0001.exr --chappend 
>>>> -chname 
>>>> ,,,,"diffuse_albedo_noice.R","diffuse_albedo_noice.G","diffuse_albedo_noice.B"
>>>>  -o merged_bd.0001.exr
>>>> ./oiiotool merged_bd.0001.exr variance.0001.exr --chappend --chname 
>>>> ,,,,,,,"variance.R","variance.G","variance.B","variance.A" -o 
>>>> merged_bdv.0001.exr
>>>> ...<all the aovs>...
>>>> ./oiiotool ...-o merged_all_aovs.0001.exr
>>>> 
>>>> When I query the final merged image, 
>>>> ./oiiotool --info:verbose=1 merged_all_aovs.0001.exr
>>>> maya_render.0001.exr:  960 x 540, 15 channel, half openexr channel list: 
>>>> R, G, B, A, Z_noice, N_noice.Y, N_noice.Z, N_noice.X, 
>>>> diffuse_albedo_noice.R, diffuse_albedo_noice.G, diffuse_albedo_noice.B,  
>>>> variance.R, variance.G, variance.B, variance.A
>>>> arnold / AA_samples: 2
>>>> arnold / aovs / RGBA / filter: "gaussian_filter"
>>>> arnold / aovs / RGBA / filter_width: 2
>>>> arnold / aovs / RGBA / lpe: 1
>>>> arnold / aovs / RGBA / source: "RGBA"
>>>> arnold / auto_transparency_depth: 10
>>>> arnold / bounds_max_x: 959
>>>> arnold / bounds_max_y: 539
>>>> ...
>>>> It is missing the aovs after beauty.
>>>> 
>>>> 
>>>> Comparing it to the render from Maya
>>>> maya_render.0001.exr:  960 x 540, 15 channel, half openexr channel list: 
>>>> R, G, B, A, Z_noice, N_noice.Y, N_noice.Z, N_noice.X, 
>>>> diffuse_albedo_noice.R, diffuse_albedo_noice.G, diffuse_albedo_noice.B,  
>>>> variance.R, variance.G, variance.B, variance.A
>>>> arnold / AA_samples: 2
>>>> arnold / aovs / diffuse_albedo_noice / filter: "gaussian_filter"
>>>> arnold / aovs / diffuse_albedo_noice / filter_width: 2
>>>> arnold / aovs / diffuse_albedo_noice / lpe: 1
>>>> arnold / aovs / diffuse_albedo_noice / source: "diffuse_albedo"
>>>> arnold / aovs / N_noice / filter: "gaussian_filter"
>>>> arnold / aovs / N_noice / filter_width: 2
>>>> arnold / aovs / N_noice / source: "N"
>>>> arnold / aovs / RGBA / filter: "gaussian_filter"
>>>> arnold / aovs / RGBA / filter_width: 2
>>>> arnold / aovs / RGBA / lpe: 1
>>>> arnold / aovs / RGBA / source: "RGBA"
>>>> arnold / aovs / variance / filter: "variance_filter"
>>>> arnold / aovs / variance / filter_width: 2
>>>> arnold / aovs / variance / lpe: 1
>>>> arnold / aovs / variance / source: "RGBA"
>>>> arnold / aovs / Z_noice / filter: "gaussian_filter"
>>>> arnold / aovs / Z_noice / filter_width: 2
>>>> arnold / aovs / Z_noice / source: "Z"
>>>> arnold / auto_transparency_depth: 10
>>>> arnold / bounds_max_x: 959
>>>> arnold / bounds_max_y: 539
>>>> ...
>>>> 
>>>> 
>>>> 
>>>> On Tue, Aug 6, 2019 at 3:37 PM Larry Gritz <[email protected] 
>>>> <mailto:[email protected]>> wrote:
>>>> Yes, the command you want is --chappend, which takes two images (say, 
>>>> containing N channels and M channels) and combines them into a new image 
>>>> with N+M channels.
>>>> 
>>>> You said you tried this... can you show us a command line that shows 
>>>> exactly what you tried?
>>>> 
>>>> You may need a --chnames afterward to make the channel names make some 
>>>> kind of sense.
>>>> 
>>>> Also, what file format are you using?
>>>> 
>>>> Seeing the exact command you tried will probably answer all of the 
>>>> questions and then we'll know what to suggest.
>>>> 
>>>> 
>>>>> On Aug 6, 2019, at 3:29 PM, Lydia Lam <[email protected] 
>>>>> <mailto:[email protected]>> wrote:
>>>>> 
>>>>> Is there a way to merge AOVs with oiiotool?  I have a sequence rendered 
>>>>> from Maya with a bunch of separate passes.  I would like to merge them 
>>>>> into one sequence without having to render again using 'merge AOVs' 
>>>>> option.  The output should be a sequence of exr's with no subimages 
>>>>> containing all the channels the different aov's.
>>>>> 
>>>>> I've tried using --siappendall but that returns one image with multiple 
>>>>> subimages.  The number of channels is the number of channels at the top 
>>>>> layer, not all the aovs.
>>>>> 
>>>>> I've also tried --chappend and merge the images one at a time while 
>>>>> renaming the channels as I go.  This captured all the channels but did 
>>>>> not preserve the aov information.  
>>>>> 
>>>>> Can oiiotool or OpenImageIO merge multiple images into one while 
>>>>> preserving all the channels?  Thanks!
>>>>> 
>>>>> 
>>>>> Lydia
>>>>> 
>>>> 
>>>> --
>>>> 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
> 
> --
> Larry Gritz
> [email protected] <mailto:[email protected]>
> 
> 
> 
> 
> _______________________________________________
> 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

Reply via email to