ensure consistent behaviour of hlCurve and shCurve, Issue 2626
This commit is contained in:
@@ -659,6 +659,7 @@ void CurveFactory::curveToningLL ( bool & llctoningutili,const std::vector<doubl
|
|||||||
}
|
}
|
||||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
hlCurve.setClip(LUT_CLIP_BELOW); // used LUT_CLIP_BELOW, because we want to have a baseline of 2^expcomp in this curve. If we don't clip the lut we get wrong values, see Issue 2621 #14 for details
|
||||||
float exp_scale = a;
|
float exp_scale = a;
|
||||||
float scale = 65536.0;
|
float scale = 65536.0;
|
||||||
float comp = (max(0.0,ecomp) + 1.0)*hlcompr/100.0;
|
float comp = (max(0.0,ecomp) + 1.0)*hlcompr/100.0;
|
||||||
@@ -688,7 +689,7 @@ void CurveFactory::curveToningLL ( bool & llctoningutili,const std::vector<doubl
|
|||||||
|
|
||||||
//%%%%%%%%%%%%%%%%%%%%%%%%%%
|
//%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
// change to [0,1] range
|
// change to [0,1] range
|
||||||
|
shCurve.setClip(LUT_CLIP_ABOVE); // used LUT_CLIP_ABOVE, because the curve converges to 1.0 at the upper end and we don't want to exceed this value.
|
||||||
float val = 1.f/65535.f;
|
float val = 1.f/65535.f;
|
||||||
float val2 = simplebasecurve (val, black, 0.015*shcompr);
|
float val2 = simplebasecurve (val, black, 0.015*shcompr);
|
||||||
shCurve[0] = CLIPD(val2)/val;
|
shCurve[0] = CLIPD(val2)/val;
|
||||||
|
|||||||
Reference in New Issue
Block a user