T39307: The fast gaussian blur is not an accurate formula. When deciding
authorJeroen Bakker <j.bakker@atmind.nl>
Wed, 26 Mar 2014 20:08:58 +0000 (21:08 +0100)
committerJeroen Bakker <j.bakker@atmind.nl>
Wed, 26 Mar 2014 20:11:54 +0000 (21:11 +0100)
which tiles are selected for input there was always a constant for correcting
the accuracy.

It seems that the constant was not enough and has been adjusted. (2 => 3).

source/blender/compositor/COM_defines.h
source/blender/compositor/operations/COM_FastGaussianBlurOperation.cpp

index 3b0e9f239bb147ef306414208f176cb152adbfd3..6c07aadc3aa825bf6196c4b1de0beb90857ffa63 100644 (file)
@@ -109,4 +109,13 @@ typedef enum OrderOfChunks {
 
 #define COM_BLUR_BOKEH_PIXELS 512
 
+/**
+ * The fast gaussien blur is not an accurate blur.
+ * This setting can be used to increase/decrease the 
+ * amount of the input data. (dependent area of interest)
+ *
+ * Fix for: T39307
+ */
+#define COM_FAST_GAUSSIAN_MULTIPLIER 3
+
 #endif  /* __COM_DEFINES_H__ */
index a6be9254f6fd5232dac7067e92d92517a668ac49..ff53ef22e29c4317e6fcf71e04ec020f448ad671 100644 (file)
@@ -47,10 +47,11 @@ bool FastGaussianBlurOperation::getDAI(rcti *rect, rcti *output)
 {
        // m_data->sizex * m_size should be enough? For some reason there
        // seem to be errors in the boundary between tiles.
-       int sx = this->m_data->sizex * this->m_size * 2;
+       float size = this->m_size * COM_FAST_GAUSSIAN_MULTIPLIER;
+       int sx = this->m_data->sizex * size;
        if (sx < 1)
                sx = 1;
-       int sy = this->m_data->sizey * this->m_size * 2;
+       int sy = this->m_data->sizey * size;
        if (sy < 1)
                sy = 1;