|
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)?
[Prev in Thread] | Current Thread | [Next in Thread] |