diff options
author | Philipp Oeser <info@graphics-engineer.com> | 2019-08-01 19:17:56 +0300 |
---|---|---|
committer | Philipp Oeser <info@graphics-engineer.com> | 2019-08-02 11:09:29 +0300 |
commit | b54528fa1ed49625a8988bbd9c6191f844231e47 (patch) | |
tree | b53777cd07c26e405abe079df0c7cb6d72fc251b /source/blender/compositor/operations | |
parent | 31da3936b487ee4060635fe40c7c8affef92e372 (diff) |
BrightContrast not working correctly with negative contrast
followup to rB8dd95abb2ff9 (which fixed this for the Compositor node),
turns out this was also wrong for the VSE modifier and in vertex color
operator.
- also adjust min/max for VSE modifier
- also guard against division by zero
Reviewers: brecht
Maniphest Tasks: T67808
Differential Revision: https://developer.blender.org/D5398
Diffstat (limited to 'source/blender/compositor/operations')
-rw-r--r-- | source/blender/compositor/operations/COM_BrightnessOperation.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/source/blender/compositor/operations/COM_BrightnessOperation.cpp b/source/blender/compositor/operations/COM_BrightnessOperation.cpp index d0bab5aa4d9..b6c22029899 100644 --- a/source/blender/compositor/operations/COM_BrightnessOperation.cpp +++ b/source/blender/compositor/operations/COM_BrightnessOperation.cpp @@ -62,12 +62,13 @@ void BrightnessOperation::executePixelSampled(float output[4], * Extracted of OpenCV demhist.c */ if (contrast > 0) { - a = 1.0f / (1.0f - delta * 2.0f); + a = 1.0f - delta * 2.0f; + a = 1.0f / max_ff(a, FLT_EPSILON); b = a * (brightness - delta); } else { delta *= -1; - a = 1.0f - delta * 2.0f; + a = max_ff(1.0f - delta * 2.0f, 0.0f); b = a * brightness + delta; } if (this->m_use_premultiply) { |