openexr-user
[Top][All Lists]
Advanced

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

Re: [Openexr-user] CTL questions


From: Florian Kainz
Subject: Re: [Openexr-user] CTL questions
Date: Mon, 02 Jul 2007 22:32:44 -0700
User-agent: Mozilla Thunderbird 1.0 (X11/20041207)

Hi Gonzalo,

the displayWhiteLuminance and displaySurroundLuminance are made
available to the CTL transforms.  The idea is that the brightness
of the display and the environment that surrounds the display have
an effect on how the colors on the screen are perceived by a human
viewer.  A CTL transform might want take this effect into account
and compensate for it.

The CTL examples that come with playexr and exrdisplay do not make
use of displayWhiteLuminance and displaySurroundLuminance. (I am not
enough of an expert to properly model color appearance.)

The EXR_DISPLAY_VIDEO_GAMMA environment variable tells playexr and
exrdisplay the native gamma for your monitor.  The CTL transforms
are expected to output floating-point RGB values that are proportional
to the luminance you want on the screen (twice the number means twice
the amount of light).  EXR_DISPLAY_VIDEO_GAMMA is used to convert the
floating-point RGB values into appropriate 8-bit values for your
graphic cards's frame buffer.

To find the right setting for EXR_DISPLAY_VIDEO_GAMMA, get the
GammaChart.exr image from the OpenEXR sample files:


http://cvs.savannah.nongnu.org/viewvc/OpenEXR-images/TestImages/GammaChart.exr?root=openexr&view=log

Display the image using this command line:

    exrdisplay -1 GammaChart.exr

If you have EXR_DISPLAY_VIDEO_GAMMA set correctly, each of the fields
with horizontal lines in it should have an average brightness equal
to the flat field immediately to its right.  You may have to squint or
sit further back from your screen for this operation.  If the field with
the lines is brighter or darker than than the flat field, increase or
decrease the value of EXR_DISPLAY_VIDEO_GAMMA until you get a match.
For most monitors a value of 2.2 is about right.

As far as I know it doesn't matter very much if the 3D LUT used by
playexr contains half or float values.  CTL transforms aren't supposed
to know if they are working directly on your images or if they are
generating a LUT, so I made them read and write half values in both
cases.

Florian



gga wrote:
Hi, Florian.

I'm integrating CTL into my applications and I have some questions
regarding the demo programs and its OpenEXR interaction.

Currently, the demo programs define CTL_DISPLAY_WHITE_LUMINANCE and
CTL_DISPLAY_SURROUND_LUMINANCE, which are then shuffled into the OpenEXR
environment header as the attributes "displayWhiteLuminance" and
"displaySurroundLuminance".
Now, as far as I can tell, these two attributes are currently a NO-OP in
any of the demo programs and the CTL library.   Is this on purpose?

The chromaticities attribute, on the other hand, works properly.
However, with the demo programs, I am unable to understand what settings
would produce a simple pass-thru (ie. no color transform just as, say,
the old exrdisplay would do with gamma and gain at 1.0 and no
defogging).  I expected that setting a gamma of 1.0, Rec
709.chromacities and using the default .ctl programs would achieve this,
but what I obtain is an image that is almost a 0.5 stop darker.  I
expect this is some user error on my side, but I'm not sure what it is
exactly.

The demo programs seem to construct a 3d Lut of 64x64x64 half values.
Is there any particular advantage to using a half 3d texture in this
case (as opposed to a full float texture)?







reply via email to

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