It looks to me the conversion is wrong if this is the case?
Note PPRGB has a different white point, both sRGB (1, 1, 1) and Display P3 (1, 1, 1) means D65 chromaticity, but PPRGB’s (1, 1, 1) means D50 chromaticity. You need to make sure your conversion is not hardcoded D50 white point.
It seems you don’t quite understand. Pre-transform data contains crazily large values up to the thousands or even higher (I mean look at how bright Nishita Sky is), most traditional DCCs out there lack the ability to work with values this large. You certainly need to form the image with some view transform first (formed image would be from 0 to 1, float expression), then re-form the formed image in CMYK.
At any rate, I already provided you with ProPhoto RGB’s stanza:
Linear version for working space:
- !<ColorSpace>
name: Linear ProPhoto RGB I-D50
family:
equalitygroup:
bitdepth: 32f
description: |
Open Domain Linear ProPhoto RGB Tristimulus with I-D50 white point
isdata: false
from_scene_reference: !<GroupTransform>
children:
- !<ColorSpaceTransform> {src: Linear, dst: XYZ}
- !<MatrixTransform> {matrix: [1.0478112, 0.0228866, -0.0501270, 0, 0.0295424, 0.9904844, -0.0170491, 0, -0.0092345, 0.0150436, 0.7521316, 0, 0, 0, 0, 1]}
- !<MatrixTransform> {matrix: [1.3459442150636944, -0.2556019658324881, -0.0511078391985947, 0, -0.5446049488130403, 1.5081764157993822, 0.0205264766660757, 0, 0.0000000000000000, 0.0000000000000000, 1.2118446405029910, 0, 0, 0, 0, 1]}
Below is power 1.8 version for texture import and color picker.
- !<ColorSpace>
name: ProPhoto RGB 1.8 I-D50
family: Displays/SDR
equalitygroup: ""
bitdepth: unknown
description: ProPhoto RGB Closed Domain Colorspace with Power 1.8 Transfer Function and I-D50 White Point
isdata: false
allocation: uniform
from_scene_reference: !<GroupTransform>
children:
- !<ColorSpaceTransform> {src: Linear, dst: Linear ProPhoto RGB I-D50}
- !<ExponentTransform> {value: 1.8, direction: inverse}
Then you can set the scene_linear
role to be your linear working space, the color_picking
role to the 1.8 version of PPRGB. And done, you can import PPRGB and render in linear PPRGB, you can export EXR in Linear PPRGB, but note the end formed image out of Filmic is still sRGB.
With that said, I still believe it is wiser to not use any colorspace that has primaries outside of locus as working space. If you want a largest space possible. I advice using BT.2020. But note you will have a large amount of info you cannot express in CMYK, just like PPRGB, but better than PPRGB is that BT.2020 are all actual colors.
Here is Linear BT.2020 Stanza:
- !<ColorSpace>
name: Linear BT.2020 I-D65
family: Colourspaces
equalitygroup: ""
bitdepth: 32f
description: Open Domain Linear BT.2020 Tristimulus with I-D65 white point
isdata: false
allocation: uniform
from_scene_reference: !<GroupTransform>
children:
- !<ColorSpaceTransform> {src: Linear, dst: XYZ}
- !<MatrixTransform> {matrix: [ 1.7166634277958805, -0.3556733197301399, -0.2533680878902478, 0, -0.6666738361988869, 1.6164557398246981, 0.0157682970961337, 0, 0.0176424817849772, -0.0427769763827532, 0.9422432810184308, 0, 0, 0, 0, 1]}
Here is Power 2.4 version of BT.2020 for texture import:
- !<ColorSpace>
name: BT.2020 2.4
aliases: [BT.2020, BT.2020 2.4 I-D65]
family: Displays/SDR
equalitygroup: ""
bitdepth: unknown
description: BT.2020 2.4 Exponent EOTF Display
isdata: false
allocation: uniform
from_scene_reference: !<GroupTransform>
children:
- !<ColorSpaceTransform> {src: Linear, dst: Linear BT.2020 I-D65}
- !<ExponentTransform> {value: 2.4, direction: inverse}
Again, set linear verison as scene_linear
role and 2.4 version as color_picking
and done.
But good luck in handling all these wide gamut info that CMYK cannot express.
Also remember to double check your conversion tool, does it hardcode D50 white point? If it does, you can adapt P3 values to D50 first before doing the CMYK conversion.