Discussion:
[Oiio-dev] Deep merge
Ben Andersen
2016-12-06 04:23:35 UTC
Permalink
Hi!

I'm looking at wrapping up a deep merge operation using the python bindings
of oiio 1.7.

I see in the docs that there is support for reading and merge deep pixels.
Is the expected workflow for all deep images to loop over every pixel? Is
there a function I've overlooked that might do a deep merge for all samples
in the image?

Wouldn't this mean that it's essentially single threaded to do a deep merge
in python without setting up the threads myself?

Thanks!
Ben
Ben Andersen
2016-12-06 07:17:12 UTC
Permalink
Also! Are there methods of resampling a deep image? If my B image is a
different resolution than my A image/the pixel count is different, it would
be nice to still be able to merge them together.

Thanks!
Ben

On Tue, Dec 6, 2016 at 4:23 AM Ben Andersen <***@gmail.com> wrote:

> Hi!
>
> I'm looking at wrapping up a deep merge operation using the python
> bindings of oiio 1.7.
>
> I see in the docs that there is support for reading and merge deep
> pixels. Is the expected workflow for all deep images to loop over every
> pixel? Is there a function I've overlooked that might do a deep merge for
> all samples in the image?
>
> Wouldn't this mean that it's essentially single threaded to do a deep
> merge in python without setting up the threads myself?
>
> Thanks!
> Ben
>
Larry Gritz
2016-12-06 17:34:41 UTC
Permalink
There's not currently a function in OIIO that does this. Does Nuke have deep resize? I guess it's theoretically possible, though you'd need to do a little math to figure out the right way to combine partial/filtered pixels, where each "pixel" is a list of depth+alpha samples.


> On Dec 5, 2016, at 11:17 PM, Ben Andersen <***@gmail.com> wrote:
>
> Also! Are there methods of resampling a deep image? If my B image is a different resolution than my A image/the pixel count is different, it would be nice to still be able to merge them together.
>
> Thanks!
> Ben
>
> On Tue, Dec 6, 2016 at 4:23 AM Ben Andersen <***@gmail.com <mailto:***@gmail.com>> wrote:
> Hi!
>
> I'm looking at wrapping up a deep merge operation using the python bindings of oiio 1.7.
>
> I see in the docs that there is support for reading and merge deep pixels. Is the expected workflow for all deep images to loop over every pixel? Is there a function I've overlooked that might do a deep merge for all samples in the image?
>
> Wouldn't this mean that it's essentially single threaded to do a deep merge in python without setting up the threads myself?
>
> Thanks!
> Ben
> _______________________________________________
> Oiio-dev mailing list
> Oiio-***@lists.openimageio.org
> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org

--
Larry Gritz
***@larrygritz.com
Thorsten Kaufmann
2016-12-06 22:11:23 UTC
Permalink
?This is far from trivial. There is deep transform in Nuke, but it does not do any filtering and i am not sure there is a meaningful way to do that.


Cheers,

Thorsten


---
Thorsten Kaufmann
Production Pipeline Architect

Mackevision Medien Design GmbH
Forststraße 7
70174 Stuttgart

T +49 711 93 30 48 661
F +49 711 93 30 48 90
M +49 151 19 55 55 02

***@mackevision.com
www.mackevision.com<http://www.mackevision.com/?utm_source=E-Mail-Signatur&utm_medium=E-Mail&utm_campaign=Mackevision-Link>

Geschäftsführer: Armin Pohl, Joachim Lincke, Jens Pohl
HRB 243735 Amtsgericht Stuttgart

---
PORTFOLIO: The Next Level of User Experience - Real-time Solutions<http://www.mackevision.com/portfolio/real-time-solutions/?utm_source=E-Mail-Signatur&utm_medium=E-Mail&utm_campaign=real-time-signatur>
VFX: Game of Thrones, Season 6 - VFX breakdown<http://www.mackevision.com/references/game-of-thrones-season-6-vfx-breakdown/?utm_source=E-Mail-Signatur&utm_medium=E-Mail&utm_campaign=GoT-S6-vfx-breakdown-Signatur>
SOCIAL: Follow us on Facebook<https://www.facebook.com/mackevision/>, Twitter<https://twitter.com/Mackevision>, Behance<https://www.behance.net/mackevision> and Vimeo<https://vimeo.com/mackevision>

________________________________
Von: Oiio-dev <oiio-dev-***@lists.openimageio.org> im Auftrag von Larry Gritz <***@larrygritz.com>
Gesendet: Dienstag, 6. Dezember 2016 18:34
An: OpenImageIO developers
Betreff: Re: [Oiio-dev] Deep merge

There's not currently a function in OIIO that does this. Does Nuke have deep resize? I guess it's theoretically possible, though you'd need to do a little math to figure out the right way to combine partial/filtered pixels, where each "pixel" is a list of depth+alpha samples.


On Dec 5, 2016, at 11:17 PM, Ben Andersen <***@gmail.com<mailto:***@gmail.com>> wrote:

Also! Are there methods of resampling a deep image? If my B image is a different resolution than my A image/the pixel count is different, it would be nice to still be able to merge them together.

Thanks!
Ben

On Tue, Dec 6, 2016 at 4:23 AM Ben Andersen <***@gmail.com<mailto:***@gmail.com>> wrote:
Hi!

I'm looking at wrapping up a deep merge operation using the python bindings of oiio 1.7.

I see in the docs that there is support for reading and merge deep pixels. Is the expected workflow for all deep images to loop over every pixel? Is there a function I've overlooked that might do a deep merge for all samples in the image?

Wouldn't this mean that it's essentially single threaded to do a deep merge in python without setting up the threads myself?

Thanks!
Ben
_______________________________________________
Oiio-dev mailing list
Oiio-***@lists.openimageio.org<mailto:Oiio-***@lists.openimageio.org>
http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org

--
Larry Gritz
***@larrygritz.com<mailto:***@larrygritz.com>
Larry Gritz
2016-12-06 22:17:37 UTC
Permalink
So how does it work in Nuke? Does it just resample using the "closest" pixel?

It's well known how to combine multiple non-overlapping pixels into a single depth list -- that's what renderers do to turn subsample depth lists into pixel depth lists for deep output. I would assume that a filtered resampling boils down to roughly the same thing (with adjustment for the specific pixel weights). Though I don't pretend to understand what artifacts would result from filtered resampling of a depth image in this way.


> On Dec 6, 2016, at 2:11 PM, Thorsten Kaufmann <***@mackevision.com> wrote:
>
> ​This is far from trivial. There is deep transform in Nuke, but it does not do any filtering and i am not sure there is a meaningful way to do that.
>
> Cheers,
> Thorsten
>
> ---
> Thorsten Kaufmann
> Production Pipeline Architect
> Mackevision Medien Design GmbH
> Forststraße 7
> 70174 Stuttgart
> T +49 711 93 30 48 661
> F +49 711 93 30 48 90
> M +49 151 19 55 55 02
> ***@mackevision.com <mailto:***@mackevision.com>
> www.mackevision.com <http://www.mackevision.com/?utm_source=E-Mail-Signatur&utm_medium=E-Mail&utm_campaign=Mackevision-Link>
> GeschÀftsfÌhrer: Armin Pohl, Joachim Lincke, Jens Pohl
> HRB 243735 Amtsgericht Stuttgart
> ---
> PORTFOLIO: The Next Level of User Experience - Real-time Solutions <http://www.mackevision.com/portfolio/real-time-solutions/?utm_source=E-Mail-Signatur&utm_medium=E-Mail&utm_campaign=real-time-signatur>
> VFX: Game of Thrones, Season 6 – VFX breakdown <http://www.mackevision.com/references/game-of-thrones-season-6-vfx-breakdown/?utm_source=E-Mail-Signatur&utm_medium=E-Mail&utm_campaign=GoT-S6-vfx-breakdown-Signatur>
> SOCIAL: Follow us on Facebook <https://www.facebook.com/mackevision/>, Twitter <https://twitter.com/Mackevision>, Behance <https://www.behance.net/mackevision> and Vimeo <https://vimeo.com/mackevision>
> Von: Oiio-dev <oiio-dev-***@lists.openimageio.org <mailto:oiio-dev-***@lists.openimageio.org>> im Auftrag von Larry Gritz <***@larrygritz.com <mailto:***@larrygritz.com>>
> Gesendet: Dienstag, 6. Dezember 2016 18:34
> An: OpenImageIO developers
> Betreff: Re: [Oiio-dev] Deep merge
>
> There's not currently a function in OIIO that does this. Does Nuke have deep resize? I guess it's theoretically possible, though you'd need to do a little math to figure out the right way to combine partial/filtered pixels, where each "pixel" is a list of depth+alpha samples.
>
>
>> On Dec 5, 2016, at 11:17 PM, Ben Andersen <***@gmail.com <mailto:***@gmail.com>> wrote:
>>
>> Also! Are there methods of resampling a deep image? If my B image is a different resolution than my A image/the pixel count is different, it would be nice to still be able to merge them together.
>>
>> Thanks!
>> Ben
>>
>> On Tue, Dec 6, 2016 at 4:23 AM Ben Andersen <***@gmail.com <mailto:***@gmail.com>> wrote:
>> Hi!
>>
>> I'm looking at wrapping up a deep merge operation using the python bindings of oiio 1.7.
>>
>> I see in the docs that there is support for reading and merge deep pixels. Is the expected workflow for all deep images to loop over every pixel? Is there a function I've overlooked that might do a deep merge for all samples in the image?
>>
>> Wouldn't this mean that it's essentially single threaded to do a deep merge in python without setting up the threads myself?
>>
>> Thanks!
>> Ben
>> _______________________________________________
>> Oiio-dev mailing list
>> Oiio-***@lists.openimageio.org <mailto:Oiio-***@lists.openimageio.org>
>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org>
>
> --
> Larry Gritz
> ***@larrygritz.com <mailto:***@larrygritz.com>
>
>
> _______________________________________________
> Oiio-dev mailing list
> Oiio-***@lists.openimageio.org <mailto:Oiio-***@lists.openimageio.org>
> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org>

--
Larry Gritz
***@larrygritz.com
Jonathan Egstad
2016-12-06 22:24:02 UTC
Permalink
Try out OpenDCX! :)
www.opendcx.org


On Dec 6, 2016, at 2:17 PM, Larry Gritz <***@larrygritz.com> wrote:

So how does it work in Nuke? Does it just resample using the "closest" pixel?

It's well known how to combine multiple non-overlapping pixels into a single depth list -- that's what renderers do to turn subsample depth lists into pixel depth lists for deep output. I would assume that a filtered resampling boils down to roughly the same thing (with adjustment for the specific pixel weights). Though I don't pretend to understand what artifacts would result from filtered resampling of a depth image in this way.


> On Dec 6, 2016, at 2:11 PM, Thorsten Kaufmann <***@mackevision.com> wrote:
>
> ​This is far from trivial. There is deep transform in Nuke, but it does not do any filtering and i am not sure there is a meaningful way to do that.
>
> Cheers,
> Thorsten
>
> ---
> Thorsten Kaufmann
> Production Pipeline Architect
> Mackevision Medien Design GmbH
> Forststraße 7
> 70174 Stuttgart
> T +49 711 93 30 48 661
> F +49 711 93 30 48 90
> M +49 151 19 55 55 02
> ***@mackevision.com
> www.mackevision.com
> GeschÀftsfÌhrer: Armin Pohl, Joachim Lincke, Jens Pohl
> HRB 243735 Amtsgericht Stuttgart
> ---
> PORTFOLIO: The Next Level of User Experience - Real-time Solutions
> VFX: Game of Thrones, Season 6 – VFX breakdown
> SOCIAL: Follow us on Facebook, Twitter, Behance and Vimeo
> Von: Oiio-dev <oiio-dev-***@lists.openimageio.org> im Auftrag von Larry Gritz <***@larrygritz.com>
> Gesendet: Dienstag, 6. Dezember 2016 18:34
> An: OpenImageIO developers
> Betreff: Re: [Oiio-dev] Deep merge
>
> There's not currently a function in OIIO that does this. Does Nuke have deep resize? I guess it's theoretically possible, though you'd need to do a little math to figure out the right way to combine partial/filtered pixels, where each "pixel" is a list of depth+alpha samples.
>
>
>> On Dec 5, 2016, at 11:17 PM, Ben Andersen <***@gmail.com> wrote:
>>
>> Also! Are there methods of resampling a deep image? If my B image is a different resolution than my A image/the pixel count is different, it would be nice to still be able to merge them together.
>>
>> Thanks!
>> Ben
>>
>>> On Tue, Dec 6, 2016 at 4:23 AM Ben Andersen <***@gmail.com> wrote:
>>> Hi!
>>>
>>> I'm looking at wrapping up a deep merge operation using the python bindings of oiio 1.7.
>>>
>>> I see in the docs that there is support for reading and merge deep pixels. Is the expected workflow for all deep images to loop over every pixel? Is there a function I've overlooked that might do a deep merge for all samples in the image?
>>>
>>> Wouldn't this mean that it's essentially single threaded to do a deep merge in python without setting up the threads myself?
>>>
>>> Thanks!
>>> Ben
>> _______________________________________________
>> Oiio-dev mailing list
>> Oiio-***@lists.openimageio.org
>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org
>
> --
> Larry Gritz
> ***@larrygritz.com
>
>
> _______________________________________________
> Oiio-dev mailing list
> Oiio-***@lists.openimageio.org
> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org

--
Larry Gritz
***@larrygritz.com
Thorsten Kaufmann
2016-12-07 08:58:37 UTC
Permalink
The main problem seems to be renderer support and the lack of information on how to generate the needed subpixel mask from a raytracer. Do you know if there
was any advances in that area?

Cheers,
Thorsten


---
Thorsten Kaufmann
Production Pipeline Architect

Mackevision Medien Design GmbH
Forststraße 7
70174 Stuttgart

T +49 711 93 30 48 661
F +49 711 93 30 48 90
M +49 151 19 55 55 02

***@mackevision.com
www.mackevision.com<http://www.mackevision.com/?utm_source=E-Mail-Signatur&utm_medium=E-Mail&utm_campaign=Mackevision-Link>

GeschÀftsfÌhrer: Armin Pohl, Joachim Lincke, Jens Pohl
HRB 243735 Amtsgericht Stuttgart

---
PORTFOLIO: The Next Level of User Experience - Real-time Solutions<http://www.mackevision.com/portfolio/real-time-solutions/?utm_source=E-Mail-Signatur&utm_medium=E-Mail&utm_campaign=real-time-signatur>
VFX: Game of Thrones, Season 6 – VFX breakdown<http://www.mackevision.com/references/game-of-thrones-season-6-vfx-breakdown/?utm_source=E-Mail-Signatur&utm_medium=E-Mail&utm_campaign=GoT-S6-vfx-breakdown-Signatur>
SOCIAL: Follow us on Facebook<https://www.facebook.com/mackevision/>, Twitter<https://twitter.com/Mackevision>, Behance<https://www.behance.net/mackevision> and Vimeo<https://vimeo.com/mackevision>
From: Oiio-dev [mailto:oiio-dev-***@lists.openimageio.org] On Behalf Of Jonathan Egstad
Sent: Dienstag, 6. Dezember 2016 23:24
To: OpenImageIO developers <oiio-***@lists.openimageio.org>
Subject: Re: [Oiio-dev] Deep merge

Try out OpenDCX! :)
www.opendcx.org<http://www.opendcx.org>


On Dec 6, 2016, at 2:17 PM, Larry Gritz <***@larrygritz.com<mailto:***@larrygritz.com>> wrote:
So how does it work in Nuke? Does it just resample using the "closest" pixel?

It's well known how to combine multiple non-overlapping pixels into a single depth list -- that's what renderers do to turn subsample depth lists into pixel depth lists for deep output. I would assume that a filtered resampling boils down to roughly the same thing (with adjustment for the specific pixel weights). Though I don't pretend to understand what artifacts would result from filtered resampling of a depth image in this way.


On Dec 6, 2016, at 2:11 PM, Thorsten Kaufmann <***@mackevision.com<mailto:***@mackevision.com>> wrote:

​This is far from trivial. There is deep transform in Nuke, but it does not do any filtering and i am not sure there is a meaningful way to do that.

Cheers,
Thorsten

---
Thorsten Kaufmann
Production Pipeline Architect
Mackevision Medien Design GmbH
Forststraße 7
70174 Stuttgart
T +49 711 93 30 48 661
F +49 711 93 30 48 90
M +49 151 19 55 55 02
***@mackevision.com<mailto:***@mackevision.com>
www.mackevision.com<http://www.mackevision.com/?utm_source=E-Mail-Signatur&utm_medium=E-Mail&utm_campaign=Mackevision-Link>
GeschÀftsfÌhrer: Armin Pohl, Joachim Lincke, Jens Pohl
HRB 243735 Amtsgericht Stuttgart
________________________________
Von: Oiio-dev <oiio-dev-***@lists.openimageio.org<mailto:oiio-dev-***@lists.openimageio.org>> im Auftrag von Larry Gritz <***@larrygritz.com<mailto:***@larrygritz.com>>
Gesendet: Dienstag, 6. Dezember 2016 18:34
An: OpenImageIO developers
Betreff: Re: [Oiio-dev] Deep merge

There's not currently a function in OIIO that does this. Does Nuke have deep resize? I guess it's theoretically possible, though you'd need to do a little math to figure out the right way to combine partial/filtered pixels, where each "pixel" is a list of depth+alpha samples.


On Dec 5, 2016, at 11:17 PM, Ben Andersen <***@gmail.com<mailto:***@gmail.com>> wrote:

Also! Are there methods of resampling a deep image? If my B image is a different resolution than my A image/the pixel count is different, it would be nice to still be able to merge them together.
Thanks!
Ben

On Tue, Dec 6, 2016 at 4:23 AM Ben Andersen <***@gmail.com<mailto:***@gmail.com>> wrote:
Hi!
I'm looking at wrapping up a deep merge operation using the python bindings of oiio 1.7.
I see in the docs that there is support for reading and merge deep pixels. Is the expected workflow for all deep images to loop over every pixel? Is there a function I've overlooked that might do a deep merge for all samples in the image?
Wouldn't this mean that it's essentially single threaded to do a deep merge in python without setting up the threads myself?
Thanks!
Ben
_______________________________________________
Oiio-dev mailing list
Oiio-***@lists.openimageio.org<mailto:Oiio-***@lists.openimageio.org>
http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org

--
Larry Gritz
***@larrygritz.com<mailto:***@larrygritz.com>

_______________________________________________
Oiio-dev mailing list
Oiio-***@lists.openimageio.org<mailto:Oiio-***@lists.openimageio.org>
http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org

--
Larry Gritz
***@larrygritz.com<mailto:***@larrygritz.com>

_______________________________________________
Oiio-dev mailing list
Oiio-***@lists.openimageio.org<mailto:Oiio-***@lists.openimageio.org>
http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org
Jonathan Egstad
2016-12-07 15:47:57 UTC
Permalink
There’s been good conversations but I’ve not heard back yet on any progress except for Mantra. If you’re interested in this functionality I could use the help in reaching out (gently pressuring
.) vendors like Solid Angle and Foundry - so far it’s just been me.

It’s not immediately obvious from the deep subpixel mask paper and the opendcx.org web site but the OpenDCX code does not require subpixel masks to be present to transform and filter deep images. The Dcx::DeepTransform class resamples the input subpixel masks, but interprets deep pixels lacking mask information as ‘full-coverage’ - which is common for volumetric samples which don’t really require subpixel masks.

DeepTransform supports partial subpixel-coverage weighting so fractional pixel transforms are possible and accurate. This functionality is currently undergoing further refinement but scale/translates that line up with the 8x8 subpixel mask grid filter accurately with the public code.


Cheers,
-jonathan

> On Dec 7, 2016, at 12:58 AM, Thorsten Kaufmann <***@mackevision.com> wrote:
>
> The main problem seems to be renderer support and the lack of information on how to generate the needed subpixel mask from a raytracer. Do you know if there
> was any advances in that area?
>
> Cheers,
> Thorsten
>
> ---
> Thorsten Kaufmann
> Production Pipeline Architect
>
> Mackevision Medien Design GmbH
> Forststraße 7
> 70174 Stuttgart
>
> T +49 711 93 30 48 661
> F +49 711 93 30 48 90
> M +49 151 19 55 55 02
>
> ***@mackevision.com <mailto:***@mackevision.com>
> www.mackevision.com <http://www.mackevision.com/?utm_source=E-Mail-Signatur&utm_medium=E-Mail&utm_campaign=Mackevision-Link>
> GeschÀftsfÌhrer: Armin Pohl, Joachim Lincke, Jens Pohl
> HRB 243735 Amtsgericht Stuttgart
>
> ---
> PORTFOLIO: The Next Level of User Experience - Real-time Solutions <http://www.mackevision.com/portfolio/real-time-solutions/?utm_source=E-Mail-Signatur&utm_medium=E-Mail&utm_campaign=real-time-signatur>
> VFX: Game of Thrones, Season 6 – VFX breakdown <http://www.mackevision.com/references/game-of-thrones-season-6-vfx-breakdown/?utm_source=E-Mail-Signatur&utm_medium=E-Mail&utm_campaign=GoT-S6-vfx-breakdown-Signatur>
> SOCIAL: Follow us on Facebook <https://www.facebook.com/mackevision/>, Twitter <https://twitter.com/Mackevision>, Behance <https://www.behance.net/mackevision> and Vimeo <https://vimeo.com/mackevision>
> From: Oiio-dev [mailto:oiio-dev-***@lists.openimageio.org <mailto:oiio-dev-***@lists.openimageio.org>] On Behalf Of Jonathan Egstad
> Sent: Dienstag, 6. Dezember 2016 23:24
> To: OpenImageIO developers <oiio-***@lists.openimageio.org <mailto:oiio-***@lists.openimageio.org>>
> Subject: Re: [Oiio-dev] Deep merge
>
> Try out OpenDCX! :)
> www.opendcx.org <http://www.opendcx.org/>
>
>
> On Dec 6, 2016, at 2:17 PM, Larry Gritz <***@larrygritz.com <mailto:***@larrygritz.com>> wrote:
>
> So how does it work in Nuke? Does it just resample using the "closest" pixel?
>
> It's well known how to combine multiple non-overlapping pixels into a single depth list -- that's what renderers do to turn subsample depth lists into pixel depth lists for deep output. I would assume that a filtered resampling boils down to roughly the same thing (with adjustment for the specific pixel weights). Though I don't pretend to understand what artifacts would result from filtered resampling of a depth image in this way.
>
>
> On Dec 6, 2016, at 2:11 PM, Thorsten Kaufmann <***@mackevision.com <mailto:***@mackevision.com>> wrote:
>
> ​This is far from trivial. There is deep transform in Nuke, but it does not do any filtering and i am not sure there is a meaningful way to do that.
>
> Cheers,
> Thorsten
>
> ---
> Thorsten Kaufmann
> Production Pipeline Architect
> Mackevision Medien Design GmbH
> Forststraße 7
> 70174 Stuttgart
> T +49 711 93 30 48 661
> F +49 711 93 30 48 90
> M +49 151 19 55 55 02
> ***@mackevision.com <mailto:***@mackevision.com>
> www.mackevision.com <http://www.mackevision.com/?utm_source=E-Mail-Signatur&utm_medium=E-Mail&utm_campaign=Mackevision-Link>
> GeschÀftsfÌhrer: Armin Pohl, Joachim Lincke, Jens Pohl
> HRB 243735 Amtsgericht Stuttgart
> Von: Oiio-dev <oiio-dev-***@lists.openimageio.org <mailto:oiio-dev-***@lists.openimageio.org>> im Auftrag von Larry Gritz <***@larrygritz.com <mailto:***@larrygritz.com>>
> Gesendet: Dienstag, 6. Dezember 2016 18:34
> An: OpenImageIO developers
> Betreff: Re: [Oiio-dev] Deep merge
>
> There's not currently a function in OIIO that does this. Does Nuke have deep resize? I guess it's theoretically possible, though you'd need to do a little math to figure out the right way to combine partial/filtered pixels, where each "pixel" is a list of depth+alpha samples.
>
>
> On Dec 5, 2016, at 11:17 PM, Ben Andersen <***@gmail.com <mailto:***@gmail.com>> wrote:
>
> Also! Are there methods of resampling a deep image? If my B image is a different resolution than my A image/the pixel count is different, it would be nice to still be able to merge them together.
>
> Thanks!
> Ben
>
> On Tue, Dec 6, 2016 at 4:23 AM Ben Andersen <***@gmail.com <mailto:***@gmail.com>> wrote:
> Hi!
>
> I'm looking at wrapping up a deep merge operation using the python bindings of oiio 1.7.
>
> I see in the docs that there is support for reading and merge deep pixels. Is the expected workflow for all deep images to loop over every pixel? Is there a function I've overlooked that might do a deep merge for all samples in the image?
>
> Wouldn't this mean that it's essentially single threaded to do a deep merge in python without setting up the threads myself?
>
> Thanks!
> Ben
> _______________________________________________
> Oiio-dev mailing list
> Oiio-***@lists.openimageio.org <mailto:Oiio-***@lists.openimageio.org>
> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org>
>
> --
> Larry Gritz
> ***@larrygritz.com <mailto:***@larrygritz.com>
>
> _______________________________________________
> Oiio-dev mailing list
> Oiio-***@lists.openimageio.org <mailto:Oiio-***@lists.openimageio.org>
> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org>
>
> --
> Larry Gritz
> ***@larrygritz.com <mailto:***@larrygritz.com>
>
> _______________________________________________
> Oiio-dev mailing list
> Oiio-***@lists.openimageio.org <mailto:Oiio-***@lists.openimageio.org>
> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org>_______________________________________________
> Oiio-dev mailing list
> Oiio-***@lists.openimageio.org <mailto:Oiio-***@lists.openimageio.org>
> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org>
Larry Gritz
2016-12-07 17:28:23 UTC
Permalink
Jonathan, can you clarify how OpenDCX partitions the region of a pixel? My recollection is that it's inherently based on a 4x4 grid of subregions. That maps well to a renderer that implements some kind of stratified sampling (with a multiple of 4x4), but not necessarily other sampling schemes. What do you do with some kind of blue noise sampling that's not on a stratified grid? What do you do for "progressive" rendering where there's not a fixed number of samples, but you can always continue to generate more samples at any point and the placement of them spatially is a fairly opaque process?

I totally get how subpixel information lets you address a number of artifacts of the per-pixel deep image approach, but I just haven't quite wrapped my head around how it maps to different kinds of renderers and their sampling schemes.


> On Dec 7, 2016, at 7:47 AM, Jonathan Egstad <***@earthlink.net> wrote:
>
> There’s been good conversations but I’ve not heard back yet on any progress except for Mantra. If you’re interested in this functionality I could use the help in reaching out (gently pressuring
.) vendors like Solid Angle and Foundry - so far it’s just been me.
>
> It’s not immediately obvious from the deep subpixel mask paper and the opendcx.org <http://opendcx.org/> web site but the OpenDCX code does not require subpixel masks to be present to transform and filter deep images. The Dcx::DeepTransform class resamples the input subpixel masks, but interprets deep pixels lacking mask information as ‘full-coverage’ - which is common for volumetric samples which don’t really require subpixel masks.
>
> DeepTransform supports partial subpixel-coverage weighting so fractional pixel transforms are possible and accurate. This functionality is currently undergoing further refinement but scale/translates that line up with the 8x8 subpixel mask grid filter accurately with the public code.
>
>
> Cheers,
> -jonathan
>
>> On Dec 7, 2016, at 12:58 AM, Thorsten Kaufmann <***@mackevision.com <mailto:***@mackevision.com>> wrote:
>>
>> The main problem seems to be renderer support and the lack of information on how to generate the needed subpixel mask from a raytracer. Do you know if there
>> was any advances in that area?
>>
>> Cheers,
>> Thorsten
>>
>> ---
>> Thorsten Kaufmann
>> Production Pipeline Architect
>>
>> Mackevision Medien Design GmbH
>> Forststraße 7
>> 70174 Stuttgart
>>
>> T +49 711 93 30 48 661
>> F +49 711 93 30 48 90
>> M +49 151 19 55 55 02
>>
>> ***@mackevision.com <mailto:***@mackevision.com>
>> www.mackevision.com <http://www.mackevision.com/?utm_source=E-Mail-Signatur&utm_medium=E-Mail&utm_campaign=Mackevision-Link>
>> GeschÀftsfÌhrer: Armin Pohl, Joachim Lincke, Jens Pohl
>> HRB 243735 Amtsgericht Stuttgart
>>
>> ---
>> PORTFOLIO: The Next Level of User Experience - Real-time Solutions <http://www.mackevision.com/portfolio/real-time-solutions/?utm_source=E-Mail-Signatur&utm_medium=E-Mail&utm_campaign=real-time-signatur>
>> VFX: Game of Thrones, Season 6 – VFX breakdown <http://www.mackevision.com/references/game-of-thrones-season-6-vfx-breakdown/?utm_source=E-Mail-Signatur&utm_medium=E-Mail&utm_campaign=GoT-S6-vfx-breakdown-Signatur>
>> SOCIAL: Follow us on Facebook <https://www.facebook.com/mackevision/>, Twitter <https://twitter.com/Mackevision>, Behance <https://www.behance.net/mackevision> and Vimeo <https://vimeo.com/mackevision>
>> From: Oiio-dev [mailto:oiio-dev-***@lists.openimageio.org <mailto:oiio-dev-***@lists.openimageio.org>] On Behalf Of Jonathan Egstad
>> Sent: Dienstag, 6. Dezember 2016 23:24
>> To: OpenImageIO developers <oiio-***@lists.openimageio.org <mailto:oiio-***@lists.openimageio.org>>
>> Subject: Re: [Oiio-dev] Deep merge
>>
>> Try out OpenDCX! :)
>> www.opendcx.org <http://www.opendcx.org/>
>>
>>
>> On Dec 6, 2016, at 2:17 PM, Larry Gritz <***@larrygritz.com <mailto:***@larrygritz.com>> wrote:
>>
>> So how does it work in Nuke? Does it just resample using the "closest" pixel?
>>
>> It's well known how to combine multiple non-overlapping pixels into a single depth list -- that's what renderers do to turn subsample depth lists into pixel depth lists for deep output. I would assume that a filtered resampling boils down to roughly the same thing (with adjustment for the specific pixel weights). Though I don't pretend to understand what artifacts would result from filtered resampling of a depth image in this way.
>>
>>
>> On Dec 6, 2016, at 2:11 PM, Thorsten Kaufmann <***@mackevision.com <mailto:***@mackevision.com>> wrote:
>>
>> ​This is far from trivial. There is deep transform in Nuke, but it does not do any filtering and i am not sure there is a meaningful way to do that.
>>
>> Cheers,
>> Thorsten
>>
>> ---
>> Thorsten Kaufmann
>> Production Pipeline Architect
>> Mackevision Medien Design GmbH
>> Forststraße 7
>> 70174 Stuttgart
>> T +49 711 93 30 48 661
>> F +49 711 93 30 48 90
>> M +49 151 19 55 55 02
>> ***@mackevision.com <mailto:***@mackevision.com>
>> www.mackevision.com <http://www.mackevision.com/?utm_source=E-Mail-Signatur&utm_medium=E-Mail&utm_campaign=Mackevision-Link>
>> GeschÀftsfÌhrer: Armin Pohl, Joachim Lincke, Jens Pohl
>> HRB 243735 Amtsgericht Stuttgart
>> Von: Oiio-dev <oiio-dev-***@lists.openimageio.org <mailto:oiio-dev-***@lists.openimageio.org>> im Auftrag von Larry Gritz <***@larrygritz.com <mailto:***@larrygritz.com>>
>> Gesendet: Dienstag, 6. Dezember 2016 18:34
>> An: OpenImageIO developers
>> Betreff: Re: [Oiio-dev] Deep merge
>>
>> There's not currently a function in OIIO that does this. Does Nuke have deep resize? I guess it's theoretically possible, though you'd need to do a little math to figure out the right way to combine partial/filtered pixels, where each "pixel" is a list of depth+alpha samples.
>>
>>
>> On Dec 5, 2016, at 11:17 PM, Ben Andersen <***@gmail.com <mailto:***@gmail.com>> wrote:
>>
>> Also! Are there methods of resampling a deep image? If my B image is a different resolution than my A image/the pixel count is different, it would be nice to still be able to merge them together.
>>
>> Thanks!
>> Ben
>>
>> On Tue, Dec 6, 2016 at 4:23 AM Ben Andersen <***@gmail.com <mailto:***@gmail.com>> wrote:
>> Hi!
>>
>> I'm looking at wrapping up a deep merge operation using the python bindings of oiio 1.7.
>>
>> I see in the docs that there is support for reading and merge deep pixels. Is the expected workflow for all deep images to loop over every pixel? Is there a function I've overlooked that might do a deep merge for all samples in the image?
>>
>> Wouldn't this mean that it's essentially single threaded to do a deep merge in python without setting up the threads myself?
>>
>> Thanks!
>> Ben
>> _______________________________________________
>> Oiio-dev mailing list
>> Oiio-***@lists.openimageio.org <mailto:Oiio-***@lists.openimageio.org>
>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org>
>>
>> --
>> Larry Gritz
>> ***@larrygritz.com <mailto:***@larrygritz.com>
>>
>> _______________________________________________
>> Oiio-dev mailing list
>> Oiio-***@lists.openimageio.org <mailto:Oiio-***@lists.openimageio.org>
>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org>
>>
>> --
>> Larry Gritz
>> ***@larrygritz.com <mailto:***@larrygritz.com>
>>
>> _______________________________________________
>> Oiio-dev mailing list
>> Oiio-***@lists.openimageio.org <mailto:Oiio-***@lists.openimageio.org>
>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org>_______________________________________________
>> Oiio-dev mailing list
>> Oiio-***@lists.openimageio.org <mailto:Oiio-***@lists.openimageio.org>
>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org>
> _______________________________________________
> Oiio-dev mailing list
> Oiio-***@lists.openimageio.org
> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org

--
Larry Gritz
***@larrygritz.com
Thorsten Kaufmann
2016-12-07 08:56:56 UTC
Permalink
I’m not sure how it handles that case. It’s not really trivial because you would actually have to move around the samples to a new pixel and then recompute their weights considering all new samples and their respective weights + their “new” weight caused by the filtering.

It also depends how your samples are merged (or not merged). We are doing mostly hard survace stuff rather than atmospherics, and that’s a bit of a different beast to tackle.

Cheers,
Thorsten



---
Thorsten Kaufmann
Production Pipeline Architect

Mackevision Medien Design GmbH
Forststraße 7
70174 Stuttgart

T +49 711 93 30 48 661
F +49 711 93 30 48 90
M +49 151 19 55 55 02

***@mackevision.com
www.mackevision.com<http://www.mackevision.com/?utm_source=E-Mail-Signatur&utm_medium=E-Mail&utm_campaign=Mackevision-Link>

GeschÀftsfÌhrer: Armin Pohl, Joachim Lincke, Jens Pohl
HRB 243735 Amtsgericht Stuttgart

---
PORTFOLIO: The Next Level of User Experience - Real-time Solutions<http://www.mackevision.com/portfolio/real-time-solutions/?utm_source=E-Mail-Signatur&utm_medium=E-Mail&utm_campaign=real-time-signatur>
VFX: Game of Thrones, Season 6 – VFX breakdown<http://www.mackevision.com/references/game-of-thrones-season-6-vfx-breakdown/?utm_source=E-Mail-Signatur&utm_medium=E-Mail&utm_campaign=GoT-S6-vfx-breakdown-Signatur>
SOCIAL: Follow us on Facebook<https://www.facebook.com/mackevision/>, Twitter<https://twitter.com/Mackevision>, Behance<https://www.behance.net/mackevision> and Vimeo<https://vimeo.com/mackevision>
From: Oiio-dev [mailto:oiio-dev-***@lists.openimageio.org] On Behalf Of Larry Gritz
Sent: Dienstag, 6. Dezember 2016 23:18
To: OpenImageIO developers <oiio-***@lists.openimageio.org>
Subject: Re: [Oiio-dev] Deep merge

So how does it work in Nuke? Does it just resample using the "closest" pixel?

It's well known how to combine multiple non-overlapping pixels into a single depth list -- that's what renderers do to turn subsample depth lists into pixel depth lists for deep output. I would assume that a filtered resampling boils down to roughly the same thing (with adjustment for the specific pixel weights). Though I don't pretend to understand what artifacts would result from filtered resampling of a depth image in this way.


On Dec 6, 2016, at 2:11 PM, Thorsten Kaufmann <***@mackevision.com<mailto:***@mackevision.com>> wrote:

​This is far from trivial. There is deep transform in Nuke, but it does not do any filtering and i am not sure there is a meaningful way to do that.

Cheers,
Thorsten

---
Thorsten Kaufmann
Production Pipeline Architect
Mackevision Medien Design GmbH
Forststraße 7
70174 Stuttgart
T +49 711 93 30 48 661
F +49 711 93 30 48 90
M +49 151 19 55 55 02
***@mackevision.com<mailto:***@mackevision.com>
www.mackevision.com<http://www.mackevision.com/?utm_source=E-Mail-Signatur&utm_medium=E-Mail&utm_campaign=Mackevision-Link>
GeschÀftsfÌhrer: Armin Pohl, Joachim Lincke, Jens Pohl
HRB 243735 Amtsgericht Stuttgart
________________________________
Von: Oiio-dev <oiio-dev-***@lists.openimageio.org<mailto:oiio-dev-***@lists.openimageio.org>> im Auftrag von Larry Gritz <***@larrygritz.com<mailto:***@larrygritz.com>>
Gesendet: Dienstag, 6. Dezember 2016 18:34
An: OpenImageIO developers
Betreff: Re: [Oiio-dev] Deep merge

There's not currently a function in OIIO that does this. Does Nuke have deep resize? I guess it's theoretically possible, though you'd need to do a little math to figure out the right way to combine partial/filtered pixels, where each "pixel" is a list of depth+alpha samples.


On Dec 5, 2016, at 11:17 PM, Ben Andersen <***@gmail.com<mailto:***@gmail.com>> wrote:

Also! Are there methods of resampling a deep image? If my B image is a different resolution than my A image/the pixel count is different, it would be nice to still be able to merge them together.
Thanks!
Ben

On Tue, Dec 6, 2016 at 4:23 AM Ben Andersen <***@gmail.com<mailto:***@gmail.com>> wrote:
Hi!
I'm looking at wrapping up a deep merge operation using the python bindings of oiio 1.7.
I see in the docs that there is support for reading and merge deep pixels. Is the expected workflow for all deep images to loop over every pixel? Is there a function I've overlooked that might do a deep merge for all samples in the image?
Wouldn't this mean that it's essentially single threaded to do a deep merge in python without setting up the threads myself?
Thanks!
Ben
_______________________________________________
Oiio-dev mailing list
Oiio-***@lists.openimageio.org<mailto:Oiio-***@lists.openimageio.org>
http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org

--
Larry Gritz
***@larrygritz.com<mailto:***@larrygritz.com>

_______________________________________________
Oiio-dev mailing list
Oiio-***@lists.openimageio.org<mailto:Oiio-***@lists.openimageio.org>
http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org

--
Larry Gritz
***@larrygritz.com<mailto:***@larrygritz.com>
Larry Gritz
2016-12-06 17:32:16 UTC
Permalink
ImageBufAlgo.deep_merge (image_result, Aimg, Bimg, occlusion_cull, roi, nthreads)

It's there, but oops, it looks like it was left out of the documentation. It works the same way as the C++ ImageBufAlgo::deep_merge(), which is in the docs.


> On Dec 5, 2016, at 8:23 PM, Ben Andersen <***@gmail.com> wrote:
>
> Hi!
>
> I'm looking at wrapping up a deep merge operation using the python bindings of oiio 1.7.
>
> I see in the docs that there is support for reading and merge deep pixels. Is the expected workflow for all deep images to loop over every pixel? Is there a function I've overlooked that might do a deep merge for all samples in the image?
>
> Wouldn't this mean that it's essentially single threaded to do a deep merge in python without setting up the threads myself?
>
> Thanks!
> Ben
> _______________________________________________
> Oiio-dev mailing list
> Oiio-***@lists.openimageio.org
> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org

--
Larry Gritz
***@larrygritz.com
j***@earthlink.net
2016-12-07 19:37:53 UTC
Permalink
_______________________________________________
Oiio-dev mailing list
Oiio-***@lists.openimageio.org
http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org
Thorsten Kaufmann
2016-12-07 21:53:41 UTC
Permalink
​Thanks a lot for the indepth replies Jonathan! I will reach out to my rendering vendor of choice asap and get some more discussion going. There seem to various approaches, so far i found most intriguing in some ways, but lacking in other areas. I have not taken a thorough enough look at DCX to have an opinion. Stay tuned! :)


Cheers and thanks again,

Thorsten

---
Thorsten Kaufmann
Production Pipeline Architect

Mackevision Medien Design GmbH
Forststraße 7
70174 Stuttgart

T +49 711 93 30 48 661
F +49 711 93 30 48 90
M +49 151 19 55 55 02

***@mackevision.com
www.mackevision.com<http://www.mackevision.com/?utm_source=E-Mail-Signatur&utm_medium=E-Mail&utm_campaign=Mackevision-Link>

GeschÀftsfÌhrer: Armin Pohl, Joachim Lincke, Jens Pohl
HRB 243735 Amtsgericht Stuttgart

---
PORTFOLIO: The Next Level of User Experience - Real-time Solutions<http://www.mackevision.com/portfolio/real-time-solutions/?utm_source=E-Mail-Signatur&utm_medium=E-Mail&utm_campaign=real-time-signatur>
VFX: Game of Thrones, Season 6 – VFX breakdown<http://www.mackevision.com/references/game-of-thrones-season-6-vfx-breakdown/?utm_source=E-Mail-Signatur&utm_medium=E-Mail&utm_campaign=GoT-S6-vfx-breakdown-Signatur>
SOCIAL: Follow us on Facebook<https://www.facebook.com/mackevision/>, Twitter<https://twitter.com/Mackevision>, Behance<https://www.behance.net/mackevision> and Vimeo<https://vimeo.com/mackevision>

________________________________
Von: Oiio-dev <oiio-dev-***@lists.openimageio.org> im Auftrag von ***@earthlink.net <***@earthlink.net>
Gesendet: Mittwoch, 7. Dezember 2016 20:37
An: OpenImageIO developers
Betreff: Re: [Oiio-dev] Deep merge

Sure thing.
It's actually an 8x8 grid (64 bits stored in two 32-bit float channels) - but even 8x8 is far too coarse to provide adequate resolution to capture fractional subpixel weighting. To support fractional weighting we split (duplicate) samples between full and partial subpixel-coverage (not pixel-coverage.)
(fwiw we found duplicating samples to be far cheaper than simply increasing the subpixel mask size as increasing the mask increases the cost for all samples rather than just a subset that may need partial weighting.)

A renderer sampling at a high subpixel rate should have some method of collapsing multiple samples together otherwise the resulting deep file ends up being massive. This collapsing routine changes slightly when outputting dcx deep samples:
* Similar samples (usually similar Z & ID, and possibly color) are combined together and their subpixel xy locations ORd into the nearest-neighbor 8x8 grid bin. As each sample is added to a grid bin the hit count for that bin is incremented. Full-coverage and partial-coverage masks are constructed from these bin counts representing that sample's full and partial contributions. All the masks bits are exclusive so a full-coverage bit will never be set for a partial-coverage bit, and vice-versa.
* There may be more than one partial-coverage mask depending on the combined partial weights, but again these bits are exclusive with the other partial masks.
* The partial weight is stored in the dcx sample metadata as an 8-bit number where 0x00=0.0 and 0xff=0.996 so that 0x80=0.5. 0x100 is redundant as this indicates a full-coverage sample and thus no partial weight is recorded.
* As partial contributions add up from multiple samples they may saturate a bin (0x100) which is then switched to a full subpixel-coverage sample.

So, for 256 deep samples created from 256 rays hitting the same opaque primitive the deep output after collapsing would be 1 full subpixel-coverage sample and perhaps 4 or more partial-subpixel coverage samples depending on whether the primitive completely covers the pixel. That's assuming that color thresholding allows all ray samples to be close enough in color to combine - to retain high-frequency/high-contrast specular details more samples may be need to be generated.

During deep pixel flattening each subpixel bit is flattened individually for only the samples with that bit enabled, and the full and partial contributions for each subpixel integrated to form the final result. Partial samples are added to the composited result rather than being under'd, but if multiple coincident partials add up to full coverage then the result is under'd as a solid sample would.


Cheers,
-jonathan

Jonathan, can you clarify how OpenDCX partitions the region of a pixel? My recollection is that it's inherently based on a 4x4 grid of subregions. That maps well to a renderer that implements some kind of stratified sampling (with a multiple of 4x4), but not necessarily other sampling schemes. What do you do with some kind of blue noise sampling that's not on a stratified grid? What do you do for "progressive" rendering where there's not a fixed number of samples, but you can always continue to generate more samples at any point and the placement of them spatially is a fairly opaque process?

I totally get how subpixel information lets you address a number of artifacts of the per-pixel deep image approach, but I just haven't quite wrapped my head around how it maps to different kinds of renderers and their sampling schemes.
Continue reading on narkive:
Loading...