The patch we were discussing earlier in this thread is the desire to combine a
bunch of separate images into a single image with just one "part", with tons of
channels. That was a little trickier and lacked a specific command for it. But
for a long time we have had the ability to combine separate images into a
single file with multiple subimages (what exr calls "parts").
Are you saying that you have rendered separate images for, say, RGB,
Diffuse.{R,G,B}, Specular.{R,G.B}? And you want to turn that into a single
multi-part exr where each of the original images is a separate part?
I think you could have done that all along with
oiiotool rgb.exr diffuse.exr specular.exr --siappendall -o multipart.exr
> On Aug 18, 2019, at 7:08 PM, Alejandro Enriquez <[email protected]> wrote:
>
> Good day everyone,
>
> One quick question, is this merge creating a multipart exr?
> Recently, we've been talking in my studio to move from single channel exrs to
> multichannel, the only reason why we haven't is due that Arnold doesn't
> render multichannel multipart exr. We have been thinking to do it on a
> post-render process however, if oiio tool would merge single channel to
> multichannel multipart exrs we could keep the same workflow and merge on a
> post render process.
>
> Kind regards
>
> Jose Enriquez
>
> On Wed, Aug 14, 2019 at 6:39 PM Lydia Lam <[email protected]
> <mailto:[email protected]>> wrote:
> Works great! Thank you!
>
>
> On Fri, Aug 9, 2019 at 3:30 PM Larry Gritz <[email protected]
> <mailto:[email protected]>> wrote:
> OK, this is merged into master. If you need me to, I can eventually merge it
> to a release branch, but the release wouldn't be for a few weeks and I don't
> even want to backport the commit until it's been in master for several days,
> just in case any problems are discovered.
>
> -- lg
>
>
>> On Aug 8, 2019, at 10:32 AM, Lydia Lam <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>> That sounds great! Thank you so much!
>>
>>
>> Lydia
>>
>> On Wed, Aug 7, 2019 at 11:34 PM Larry Gritz <[email protected]
>> <mailto:[email protected]>> wrote:
>> 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]
>>> <mailto:[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]>
>>>>>>
--
Larry Gritz
[email protected]
_______________________________________________
Oiio-dev mailing list
[email protected]
http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org