[Bf-committers] Updating Colour Configurations
Brecht Van Lommel
brechtvanlommel at pandora.be
Wed Nov 11 03:42:53 CET 2015
After talking to Troy I now understand the idea better. So basically
we want the scene_linear color space (the working space for rendering)
to be fully defined and configurable. Currently it is hardcoded to
Rec.709 RGB, but we want to support color spaces with a wider gamut
covering more colors of the visible spectrum. We can do that by
ensuring the OCIO configuration has an XYZ color space and a
transformation from the XYZ color space to the scene_linear color
Then for example if we do XYZ to scene linear RGB conversion in the
Cycles Sky texture, we use that OCIO transformation instead of the
hardcoded XYZ to Rec.709 RGB conversion that we have now.
However, OCIO can't be called from the GPU, so we need to implement
that transformation ourselves in the Cycles kernel. Luckily, if the
scene_linear color space is indeed radiometrically linear, then the
transformation to/from XYZ must be a linear transformation, which is
just a 3x3 matrix. The columns of that matrix can be extracted from
OCIO by transforming the colors (1, 0, 0), (0, 1, 0), (0, 0, 1). This
3x3 matrix can be easily copied to and used on the GPU.
On Wed, Nov 11, 2015 at 12:16 AM, Troy Sobotka <troy.sobotka at gmail.com> wrote:
> On Nov 10, 2015 2:47 PM, "Brecht Van Lommel" <brechtvanlommel at pandora.be>
>> I doubt GPU rendering is a problem, but I have no idea what the word
>> "role" means in this context and what "implementing an XYZ role"
> A role is simply a known alias that software can hunt for via OCIO. So for
> example, if you have to convert colour temperature via a Bradford etc.
> transform and require the space's XYZ primaries and white point, you could
> request the “XYZ” role. It is provided for grabbing “Grading” or “UI”
> transforms etc.
> With respect,
> Bf-committers mailing list
> Bf-committers at blender.org
More information about the Bf-committers