Hi,

My viewer (mrViewer) uses part of the code used in playexr to create the lut table for CTL transforms. This lut is created in log space, like ( as the playexr explains ) :

    //
    // We build a 3D color lookup table by running a set of color
    // samples through a series of CTL transforms.
    //
    // The 3D lookup table covers a range from lutMin to lutMax or
    // NUM_STOPS f-stops above and below 0.18 or MIDDLE_GRAY.  The
    // size of the table is lutN by lutN by lutN samples.
    //
    // In order make the distribution of the samples in the table
    // approximately perceptually uniform, the Cg shaders that use
    // the table perform lookups in "log space":
    // In a Cg shader, the lookup table is represented as a 3D texture.
    // In order to apply the table to a pixel value, the Cg shader takes
    // the logarithm of the pixel value and scales and offsets the result
    // so that lutMin and lutMax map to 0 and 1 respectively.  The scaled
    // value is used to perform a texture lookup and the shader computes
    // e raised to the power of the result of the texture lookup.
    //


Recently, a user, trying to match nuke and with my suggestion, used an identity transform as RRT and a linear_to_sRGB function (from the CTL utilities) to create an sRGB transform. To make it clear:


/// Utility -- convert linear value to sRGB
float linear_to_sRGB (float x)
{
    if (x < 0.0)
        return 0.0;
    if (x <= 0.0031308)
       return (12.92 * x);
    else
       return (1.055 * pow (x, 1.0/2.4) - 0.055);
}

The problem the user and I are facing is that the LUT table clamps (and raises) the black levels to 0.0182 and makes it not match the sRGB curve (black levels) as seen in nuke.

I am wondering if anyone has seen something similar with playexr (or your own code) and if someone knows how to address this. Any code or pointers would be highly appreciated.

--
Gonzalo Garramuño


_______________________________________________
Openexr-devel mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/openexr-devel

Reply via email to