diff options
author | Jeroen Bakker <j.bakker@atmind.nl> | 2012-06-11 12:28:04 +0400 |
---|---|---|
committer | Jeroen Bakker <j.bakker@atmind.nl> | 2012-06-11 12:28:04 +0400 |
commit | 8a5252c1cb178cd2d57656375804c04a85e88e1b (patch) | |
tree | 1a9902020dc30b6192cbab68eccb611e03f89a93 /source/blender/compositor/operations/COM_GaussianXBlurOperation.cpp | |
parent | 31c8f4fbd39374532af0033779f5853e4be7a528 (diff) |
* Blur node had some irregularities at the edge of the screen
only visible when doing large size blurs.
also solved the catcom/mitch filter that didn't work at low/medium quality
PS never use BokehBlur Gausian filter as it is 99%+ identicat as non bokeh <= top for sergey- :)
Diffstat (limited to 'source/blender/compositor/operations/COM_GaussianXBlurOperation.cpp')
-rw-r--r-- | source/blender/compositor/operations/COM_GaussianXBlurOperation.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/source/blender/compositor/operations/COM_GaussianXBlurOperation.cpp b/source/blender/compositor/operations/COM_GaussianXBlurOperation.cpp index 2eb51b4577f..a7e443838a9 100644 --- a/source/blender/compositor/operations/COM_GaussianXBlurOperation.cpp +++ b/source/blender/compositor/operations/COM_GaussianXBlurOperation.cpp @@ -93,12 +93,13 @@ void GaussianXBlurOperation::executePixel(float *color, int x, int y, MemoryBuff maxy = min(maxy, inputBuffer->getRect()->ymax); maxx = min(maxx, inputBuffer->getRect()->xmax); - int index = 0; + int index; int step = getStep(); int offsetadd = getOffsetAdd(); int bufferindex = ((minx - bufferstartx)*4)+((miny-bufferstarty)*4*bufferwidth); for (int nx = minx ; nx < maxx ; nx +=step) { - float multiplyer = gausstab[index++]; + index = (nx-x)+this->rad; + float multiplyer = gausstab[index]; tempColor[0] += multiplyer * buffer[bufferindex]; tempColor[1] += multiplyer * buffer[bufferindex+1]; tempColor[2] += multiplyer * buffer[bufferindex+2]; |