diff options
author | Jacques Lucke <mail@jlucke.com> | 2020-02-06 12:19:51 +0300 |
---|---|---|
committer | Jacques Lucke <mail@jlucke.com> | 2020-02-06 12:19:51 +0300 |
commit | 10705807fe0672d9d42bee293aab6d73f1deb6b2 (patch) | |
tree | 6cf616400eaa58dee7e10aad7c35d154841ef3cb /source/blender/compositor | |
parent | 3caefc89ee1afc20c5ee46c0ddf538213d802819 (diff) |
Fix T68076: Color Correction node generates NaN
This is the same fix that the `GammaOperation` uses.
Differential Revision: https://developer.blender.org/D6696
Reviewers: brecht
Diffstat (limited to 'source/blender/compositor')
-rw-r--r-- | source/blender/compositor/operations/COM_ColorCorrectionOperation.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/source/blender/compositor/operations/COM_ColorCorrectionOperation.cpp b/source/blender/compositor/operations/COM_ColorCorrectionOperation.cpp index a90a3e234d8..31567398d98 100644 --- a/source/blender/compositor/operations/COM_ColorCorrectionOperation.cpp +++ b/source/blender/compositor/operations/COM_ColorCorrectionOperation.cpp @@ -117,9 +117,10 @@ void ColorCorrectionOperation::executePixelSampled(float output[4], g = 0.5f + ((g - 0.5f) * contrast); b = 0.5f + ((b - 0.5f) * contrast); - r = powf(r * gain + lift, invgamma); - g = powf(g * gain + lift, invgamma); - b = powf(b * gain + lift, invgamma); + /* Check for negative values to avoid nan. */ + r = (r > 0.0f) ? powf(r * gain + lift, invgamma) : r; + g = (g > 0.0f) ? powf(g * gain + lift, invgamma) : g; + b = (b > 0.0f) ? powf(b * gain + lift, invgamma) : b; // mix with mask r = mvalue * inputImageColor[0] + value * r; |