openexr-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Openexr-devel] transparent samples


From: Peter Hillman
Subject: Re: [Openexr-devel] transparent samples
Date: Tue, 22 Jul 2014 13:51:29 +1200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0

Hi Gunter,

Hopefully someone with more rendering expertise than me can give better advice than this, but:

It sounds like the grid pattern could be the difference between summing sample RGBA values together, and compositing them from front to back using the 'over' operator, which is how deep pixels are supposed to be interpreted (see the "Interpreting Deep Pixels" doc)

If you are rendering a solid 'thin' objects, you should really only be outputting one sample per object into each pixel, regardless of how many samples the renderer uses to generate the pixel data. That's all that compositing operations such as merging and colour correction will require - don't make the files larger and slower than they need to be!
I suspect you'll have to combine your render-samples together into more sparse deep-samples.

When you are storing multiple samples due to having multiple objects at different depths within the same pixel, the value of each sample will have to account for the ones in front of it. This discussion on Nuke-dev is perhaps relevant:
https://www.mail-archive.com/address@hidden/msg01495.html

Another example:

Suppose you have 8 samples per pixel, 2 corresponding to a foreground object, and 5 to a background object.
The deep sample for the foreground object should be 2/8, since 2/8 of the samples are on the foreground object.
There are 6 samples remaining, of which 5 correspond to the background object, so you output 5/6 for the background object. If you output flat RGBA, you would output an alpha 7/8, since 7 of the 8 samples correspond to objects. When nuke/exrdisplay composite, they'll over the alpha values together:
output = 2/8 over 5/6
output = 2/8 + (1-2/8)*5/6
=7/8
which corresponds to the flat RGBA image.
Remember that RGB is premultiplied, so that will need processing for each sample in a similar way.




On 16/07/14 02:10, Gunter Sprenger wrote:

Please advice on the correct method to put multiple transparency samples into a pixel in deep-exr. At tile borders

of a rendered image occasionally there are multiple samples at the same depth with the same rgba color.

Both exrdisplay and nuke show a slightly darker (i.e. less transparent) grid pattern because of the multiple samples

at tile borders.

This could also happen in adaptive sampling, here it would look much worse I guess (i.e. having different numbers

of transparency samples in the pixels).

The samples have fractional coordinate values, they are rounded to integral values for deep-exr.

Thanks

 



_______________________________________________
Openexr-devel mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/openexr-devel


reply via email to

[Prev in Thread] Current Thread [Next in Thread]