* 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- :)
This commit is contained in:
@@ -45,9 +45,6 @@ void BlurNode::convertToOperations(ExecutionSystem *graph, CompositorContext * c
|
||||
|
||||
CompositorQuality quality = context->getQuality();
|
||||
|
||||
if (data->filtertype == R_FILTER_MITCH || data->filtertype == R_FILTER_CATROM) {
|
||||
quality = COM_QUALITY_HIGH;
|
||||
}
|
||||
if (data->filtertype == R_FILTER_FAST_GAUSS) {
|
||||
FastGaussianBlurOperation *operationfgb = new FastGaussianBlurOperation();
|
||||
operationfgb->setData(data);
|
||||
|
||||
@@ -131,10 +131,11 @@ void GaussianBokehBlurOperation::executePixel(float *color, int x, int y, Memory
|
||||
maxy = min(maxy, inputBuffer->getRect()->ymax);
|
||||
maxx = min(maxx, inputBuffer->getRect()->xmax);
|
||||
|
||||
int index = 0;
|
||||
int index;
|
||||
int step = QualityStepHelper::getStep();
|
||||
int offsetadd = QualityStepHelper::getOffsetAdd();
|
||||
for (int ny = miny ; ny < maxy ; ny +=step) {
|
||||
index = ((ny-y)+this->rady) * (this->radx*2+1) + (minx-x+this->radx);
|
||||
int bufferindex = ((minx - bufferstartx)*4)+((ny-bufferstarty)*4*bufferwidth);
|
||||
for (int nx = minx ; nx < maxx ; nx +=step) {
|
||||
float multiplyer = gausstab[index];
|
||||
|
||||
@@ -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];
|
||||
|
||||
@@ -91,10 +91,11 @@ void GaussianYBlurOperation::executePixel(float *color, int x, int y, MemoryBuff
|
||||
maxx = min(maxx, inputBuffer->getRect()->xmax);
|
||||
|
||||
int step = getStep();
|
||||
int index = 0;
|
||||
int index;
|
||||
for (int ny = miny ; ny < maxy ; ny +=step) {
|
||||
index = (ny-y)+this->rad;
|
||||
int bufferindex = ((minx - bufferstartx)*4)+((ny-bufferstarty)*4*bufferwidth);
|
||||
float multiplyer = gausstab[index++];
|
||||
float multiplyer = gausstab[index];
|
||||
tempColor[0] += multiplyer * buffer[bufferindex];
|
||||
tempColor[1] += multiplyer * buffer[bufferindex+1];
|
||||
tempColor[2] += multiplyer * buffer[bufferindex+2];
|
||||
|
||||
Reference in New Issue
Block a user