From 10705807fe0672d9d42bee293aab6d73f1deb6b2 Mon Sep 17 00:00:00 2001 From: Jacques Lucke Date: Thu, 6 Feb 2020 10:19:51 +0100 Subject: 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 --- .../blender/compositor/operations/COM_ColorCorrectionOperation.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'source/blender/compositor') 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; -- cgit v1.2.3