Fix T54225: Blur node stopped working when Map Range was fed with image
authorSergey Sharybin <sergey.vfx@gmail.com>
Mon, 5 Mar 2018 10:44:42 +0000 (11:44 +0100)
committerSergey Sharybin <sergey.vfx@gmail.com>
Mon, 5 Mar 2018 10:44:42 +0000 (11:44 +0100)
The issue was happening with fast Gaussian blur, and caused by NaN value pixels
in the input buffer.

Now made it so Map Range output does not produce NaN, by returning arbitrary
value of 0. Still better than NaN!

source/blender/compositor/operations/COM_MapRangeOperation.cpp

index 7a89ba9..7a38d06 100644 (file)
@@ -65,6 +65,11 @@ void MapRangeOperation::executePixelSampled(float output[4], float x, float y, P
        dest_min = inputs[3];
        dest_max = inputs[4];
 
+       if (fabsf(source_max - source_min) < 1e-6f) {
+               output[0] = 0.0f;
+               return;
+       }
+
        if (value >= -BLENDER_ZMAX && value <= BLENDER_ZMAX) {
                value = (value - source_min) / (source_max - source_min);
                value = dest_min + value * (dest_max - dest_min);