Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 0 additions & 24 deletions src/OpenColorIO/ops/fixedfunction/ACES2/ColorLib.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,30 +15,6 @@ namespace OCIO_NAMESPACE
namespace ACES2
{

inline f3 HSV_to_RGB(const f3 &HSV)
{
const float C = HSV[2] * HSV[1];
const float X = C * (1.f - std::abs(std::fmod(HSV[0] * 6.f, 2.f) - 1.f));
const float m = HSV[2] - C;

f3 RGB{};
if (HSV[0] < 1.f/6.f) {
RGB = {C, X, 0.f};
} else if (HSV[0] < 2./6.) {
RGB = {X, C, 0.f};
} else if (HSV[0] < 3./6.) {
RGB = {0.f, C, X};
} else if (HSV[0] < 4./6.) {
RGB = {0.f, X, C};
} else if (HSV[0] < 5./6.) {
RGB = {X, 0.f, C};
} else {
RGB = {C, 0.f, X};
}
RGB = add_f_f3(m, RGB);
return RGB;
}

inline m33f RGBtoXYZ_f33(const Primaries &C)
{
return m33_from_ocio_matrix_array(
Expand Down
50 changes: 0 additions & 50 deletions src/OpenColorIO/ops/fixedfunction/ACES2/Transform.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -849,55 +849,6 @@ Table3D make_uniform_hue_gamut_table(const JMhParams &reach_params, const JMhPar
return build_cusp_table(hue_table, limiting_RGB_corners, limiting_JMh_corners, params);
}

Table3D make_gamut_table(const JMhParams &params, float peakLuminance, Table1D& hue_table)
{
Table3D gamutCuspTableUnsorted{};
unsigned int minhIndex = 0;
for (unsigned int i = 0; i < gamutCuspTableUnsorted.nominal_size; i++)
{
const float hNorm = float(i) / float(gamutCuspTableUnsorted.nominal_size);
const f3 HSV = {hNorm, 1., 1.};
const f3 RGB = HSV_to_RGB(HSV);
const f3 scaledRGB = mult_f_f3(peakLuminance / reference_luminance, RGB);
const f3 JMh = RGB_to_JMh(scaledRGB, params);

gamutCuspTableUnsorted[i][0] = JMh[0];
gamutCuspTableUnsorted[i][1] = JMh[1] * (1.f + smooth_m * smooth_cusps);
gamutCuspTableUnsorted[i][2] = JMh[2];
if ( gamutCuspTableUnsorted[i][2] < gamutCuspTableUnsorted[minhIndex][2])
minhIndex = i;
}

Table3D gamutCuspTable{};
for (unsigned int i = 0; i < gamutCuspTableUnsorted.nominal_size; i++)
{
gamutCuspTable[i + gamutCuspTable.base_index][0] = gamutCuspTableUnsorted[(minhIndex+i) % gamutCuspTableUnsorted.nominal_size][0];
gamutCuspTable[i + gamutCuspTable.base_index][1] = gamutCuspTableUnsorted[(minhIndex+i) % gamutCuspTableUnsorted.nominal_size][1];
gamutCuspTable[i + gamutCuspTable.base_index][2] = gamutCuspTableUnsorted[(minhIndex+i) % gamutCuspTableUnsorted.nominal_size][2];
}

// Copy last populated entry to first empty spot
gamutCuspTable[gamutCuspTable.lower_wrap_index][0] = gamutCuspTable[gamutCuspTable.last_nominal_index][0];
gamutCuspTable[gamutCuspTable.lower_wrap_index][1] = gamutCuspTable[gamutCuspTable.last_nominal_index][1];
gamutCuspTable[gamutCuspTable.lower_wrap_index][2] = gamutCuspTable[gamutCuspTable.last_nominal_index][2];

// Copy first populated entry to last empty spot
gamutCuspTable[gamutCuspTable.upper_wrap_index][0] = gamutCuspTable[gamutCuspTable.first_nominal_index][0];
gamutCuspTable[gamutCuspTable.upper_wrap_index][1] = gamutCuspTable[gamutCuspTable.first_nominal_index][1];
gamutCuspTable[gamutCuspTable.upper_wrap_index][2] = gamutCuspTable[gamutCuspTable.first_nominal_index][2];

// Wrap the hues, to maintain monotonicity. These entries will fall outside [0.0, hue_limit)
gamutCuspTable[gamutCuspTable.lower_wrap_index][2] -= hue_limit;
gamutCuspTable[gamutCuspTable.upper_wrap_index][2] += hue_limit;

// Extract hue table
for (unsigned int i = 0; i < gamutCuspTable.total_size; i++)
{
hue_table[i] = gamutCuspTable[i][2];
}
return gamutCuspTable;
}

bool any_below_zero(const f3 &rgb)
{
return (rgb[0] < 0. || rgb[1] < 0. || rgb[2] < 0.);
Expand Down Expand Up @@ -1437,7 +1388,6 @@ GamutCompressParams init_GamutCompressParams(float peakLuminance, const JMhParam
params.focus_dist = focus_dist;
params.lower_hull_gamma_inv = lower_hull_gamma_inv;
params.gamut_cusp_table = make_uniform_hue_gamut_table(reachParams, limitJMhParams, peakLuminance, tsParams.forward_limit, shParams, params.hue_table);
//params.gamut_cusp_table = make_gamut_table(limitJMhParams, peakLuminance, params.hue_table);
params.hue_linearity_search_range = determine_hue_linearity_search_range(params.gamut_cusp_table);
make_upper_hull_gamma(params.hue_table, params.gamut_cusp_table, peakLuminance, shParams.limit_J_max, mid_J, focus_dist,
lower_hull_gamma_inv, limitJMhParams); //TODO: mess of parameters
Expand Down