Skip to content

Commit

Permalink
ACES2 Prototype
Browse files Browse the repository at this point in the history
Signed-off-by: Remi Achard <reac@dneg.com>
  • Loading branch information
Remi Achard committed Jun 4, 2024
1 parent 7e91b0e commit bc3be88
Show file tree
Hide file tree
Showing 13 changed files with 2,610 additions and 16 deletions.
9 changes: 8 additions & 1 deletion include/OpenColorIO/OpenColorTypes.h
Original file line number Diff line number Diff line change
Expand Up @@ -486,7 +486,14 @@ enum FixedFunctionStyle
FIXED_FUNCTION_XYZ_TO_LUV, ///< CIE XYZ to 1976 CIELUV colour space (D65 white)
FIXED_FUNCTION_ACES_GAMUTMAP_02, ///< ACES 0.2 Gamut clamping algorithm -- NOT IMPLEMENTED YET
FIXED_FUNCTION_ACES_GAMUTMAP_07, ///< ACES 0.7 Gamut clamping algorithm -- NOT IMPLEMENTED YET
FIXED_FUNCTION_ACES_GAMUT_COMP_13 ///< ACES 1.3 Parametric Gamut Compression (expects ACEScg values)
FIXED_FUNCTION_ACES_GAMUT_COMP_13, ///< ACES 1.3 Parametric Gamut Compression (expects ACEScg values)
FIXED_FUNCTION_ACES_OUTPUT_TRANSFORM_20,

// TODO: Remove these styles, keeping them currently for easier per component tests
FIXED_FUNCTION_ACES_AP0_TO_JMH_20,
FIXED_FUNCTION_ACES_TONESCALE_20,
FIXED_FUNCTION_ACES_GAMUTMAP_20,
FIXED_FUNCTION_ACES_RGB_TO_JMH_20
};

/// Enumeration of the :cpp:class:`ExposureContrastTransform` transform algorithms.
Expand Down
2 changes: 2 additions & 0 deletions share/cmake/utils/CompilerFlags.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,8 @@ elseif(USE_GCC)

set(PLATFORM_COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS};-DUSE_GCC")

set(PLATFORM_COMPILE_OPTIONS "${PLATFORM_COMPILE_OPTIONS};-fconstexpr-ops-limit=1000000000")

endif()


Expand Down
27 changes: 16 additions & 11 deletions src/OpenColorIO/ParseUtils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -353,17 +353,22 @@ const char * FixedFunctionStyleToString(FixedFunctionStyle style)
{
switch(style)
{
case FIXED_FUNCTION_ACES_RED_MOD_03: return "ACES_RedMod03";
case FIXED_FUNCTION_ACES_RED_MOD_10: return "ACES_RedMod10";
case FIXED_FUNCTION_ACES_GLOW_03: return "ACES_Glow03";
case FIXED_FUNCTION_ACES_GLOW_10: return "ACES_Glow10";
case FIXED_FUNCTION_ACES_DARK_TO_DIM_10: return "ACES_DarkToDim10";
case FIXED_FUNCTION_ACES_GAMUT_COMP_13: return "ACES_GamutComp13";
case FIXED_FUNCTION_REC2100_SURROUND: return "REC2100_Surround";
case FIXED_FUNCTION_RGB_TO_HSV: return "RGB_TO_HSV";
case FIXED_FUNCTION_XYZ_TO_xyY: return "XYZ_TO_xyY";
case FIXED_FUNCTION_XYZ_TO_uvY: return "XYZ_TO_uvY";
case FIXED_FUNCTION_XYZ_TO_LUV: return "XYZ_TO_LUV";
case FIXED_FUNCTION_ACES_RED_MOD_03: return "ACES_RedMod03";
case FIXED_FUNCTION_ACES_RED_MOD_10: return "ACES_RedMod10";
case FIXED_FUNCTION_ACES_GLOW_03: return "ACES_Glow03";
case FIXED_FUNCTION_ACES_GLOW_10: return "ACES_Glow10";
case FIXED_FUNCTION_ACES_DARK_TO_DIM_10: return "ACES_DarkToDim10";
case FIXED_FUNCTION_ACES_GAMUT_COMP_13: return "ACES_GamutComp13";
case FIXED_FUNCTION_ACES_OUTPUT_TRANSFORM_20: return "ACES_OutputTransform20";
case FIXED_FUNCTION_ACES_AP0_TO_JMH_20: return "ACES2_AP0_TO_JMh";
case FIXED_FUNCTION_ACES_TONESCALE_20: return "ACES2_Tonescale";
case FIXED_FUNCTION_ACES_GAMUTMAP_20: return "ACES2_GamutMap";
case FIXED_FUNCTION_ACES_RGB_TO_JMH_20: return "ACES2_RGB_TO_JMh";
case FIXED_FUNCTION_REC2100_SURROUND: return "REC2100_Surround";
case FIXED_FUNCTION_RGB_TO_HSV: return "RGB_TO_HSV";
case FIXED_FUNCTION_XYZ_TO_xyY: return "XYZ_TO_xyY";
case FIXED_FUNCTION_XYZ_TO_uvY: return "XYZ_TO_uvY";
case FIXED_FUNCTION_XYZ_TO_LUV: return "XYZ_TO_LUV";
case FIXED_FUNCTION_ACES_GAMUTMAP_02:
case FIXED_FUNCTION_ACES_GAMUTMAP_07:
throw Exception("Unimplemented fixed function types: "
Expand Down
14 changes: 13 additions & 1 deletion src/OpenColorIO/fileformats/ctf/CTFTransform.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,19 @@ CTFVersion GetOpMinimumVersion(const ConstOpDataRcPtr & op)
{
minVersion = CTF_PROCESS_LIST_VERSION_2_1;
}

else if (ff->getStyle() == FixedFunctionOpData::ACES_AP0_TO_JMh_20
|| ff->getStyle() == FixedFunctionOpData::ACES_JMh_TO_AP0_20
|| ff->getStyle() == FixedFunctionOpData::ACES_TONESCALE_20_FWD
|| ff->getStyle() == FixedFunctionOpData::ACES_TONESCALE_20_INV
|| ff->getStyle() == FixedFunctionOpData::ACES_GAMUT_MAP_20_FWD
|| ff->getStyle() == FixedFunctionOpData::ACES_GAMUT_MAP_20_INV
|| ff->getStyle() == FixedFunctionOpData::ACES_RGB_TO_JMh_20
|| ff->getStyle() == FixedFunctionOpData::ACES_JMh_TO_RGB_20
|| ff->getStyle() == FixedFunctionOpData::ACES_OUTPUT_TRANSFORM_20_FWD
|| ff->getStyle() == FixedFunctionOpData::ACES_OUTPUT_TRANSFORM_20_INV)
{
minVersion = CTF_PROCESS_LIST_VERSION_2_4;
}
break;
}
case OpData::GradingPrimaryType:
Expand Down
5 changes: 4 additions & 1 deletion src/OpenColorIO/fileformats/ctf/CTFTransform.h
Original file line number Diff line number Diff line change
Expand Up @@ -115,9 +115,12 @@ static const CTFVersion CTF_PROCESS_LIST_VERSION_2_0 = CTFVersion(2, 0);
// Version 2.1 2021-08 adds the 'FIXED_FUNCTION_ACES_GAMUT_COMP_13' style to FixedFunctionOp.
static const CTFVersion CTF_PROCESS_LIST_VERSION_2_1 = CTFVersion(2, 1);

// Version 2.4 2024-08 adds the ACES 2 related FixedFunctionOps.
static const CTFVersion CTF_PROCESS_LIST_VERSION_2_4 = CTFVersion(2, 4);

// Add new version before this line
// and do not forget to update the following line.
static const CTFVersion CTF_PROCESS_LIST_VERSION = CTF_PROCESS_LIST_VERSION_2_1;
static const CTFVersion CTF_PROCESS_LIST_VERSION = CTF_PROCESS_LIST_VERSION_2_4;


// Version 1.0 initial Autodesk version for InfoElt.
Expand Down
Loading

0 comments on commit bc3be88

Please sign in to comment.