diff --git a/src/core/renderers/webgl/managers/FilterManager.js b/src/core/renderers/webgl/managers/FilterManager.js index d797d1d..bef199d 100644 --- a/src/core/renderers/webgl/managers/FilterManager.js +++ b/src/core/renderers/webgl/managers/FilterManager.js @@ -106,7 +106,7 @@ if(filters.length === 1) { - filters[0].apply(this, currentState.renderTarget, lastState.renderTarget, false); + filters[0].apply(this, currentState.renderTarget, lastState.renderTarget, true); FilterManager.freePotRenderTarget(currentState.renderTarget); } else @@ -124,7 +124,7 @@ flop = t; } - filters[i].apply(this, flip, lastState.renderTarget, false); + filters[i].apply(this, flip, lastState.renderTarget, true); FilterManager.freePotRenderTarget(flip); FilterManager.freePotRenderTarget(flop); @@ -163,7 +163,11 @@ if(clear) { + var gl = renderer.gl; + + gl.disable(gl.SCISSOR_TEST); renderer.clear();//[1, 1, 1, 1]); + gl.enable(gl.SCISSOR_TEST); } renderer.bindShader(shader); diff --git a/src/core/renderers/webgl/managers/FilterManager.js b/src/core/renderers/webgl/managers/FilterManager.js index d797d1d..bef199d 100644 --- a/src/core/renderers/webgl/managers/FilterManager.js +++ b/src/core/renderers/webgl/managers/FilterManager.js @@ -106,7 +106,7 @@ if(filters.length === 1) { - filters[0].apply(this, currentState.renderTarget, lastState.renderTarget, false); + filters[0].apply(this, currentState.renderTarget, lastState.renderTarget, true); FilterManager.freePotRenderTarget(currentState.renderTarget); } else @@ -124,7 +124,7 @@ flop = t; } - filters[i].apply(this, flip, lastState.renderTarget, false); + filters[i].apply(this, flip, lastState.renderTarget, true); FilterManager.freePotRenderTarget(flip); FilterManager.freePotRenderTarget(flop); @@ -163,7 +163,11 @@ if(clear) { + var gl = renderer.gl; + + gl.disable(gl.SCISSOR_TEST); renderer.clear();//[1, 1, 1, 1]); + gl.enable(gl.SCISSOR_TEST); } renderer.bindShader(shader); diff --git a/src/filters/blur/BlurFilter.js b/src/filters/blur/BlurFilter.js index 164f6bd..4aa3577 100644 --- a/src/filters/blur/BlurFilter.js +++ b/src/filters/blur/BlurFilter.js @@ -16,12 +16,12 @@ this.blurXFilter = new BlurXFilter(); this.blurYFilter = new BlurYFilter(); - this.resolution = 0.25;//0.25;//0.25//1//01.26; + this.resolution = 0.5;//0.25;//0.25//1//01.26; this.blurYFilter.passes = this.blurXFilter.passes = 1; this.blurYFilter.strength = this.blurXFilter.strength = 4;//4// 4 - this.padding = 20; - + this.padding = 40; + this.passes = 2; } BlurFilter.prototype = Object.create(core.Filter.prototype); @@ -34,7 +34,7 @@ var renderTarget = filterManager.getRenderTarget(true); this.blurXFilter.apply(filterManager, input, renderTarget, true); - this.blurYFilter.apply(filterManager, renderTarget, output); + this.blurYFilter.apply(filterManager, renderTarget, output, true); filterManager.returnRenderTarget(renderTarget); }; @@ -92,8 +92,8 @@ }, set: function (value) { - this.padding = Math.max( Math.abs(this.blurYFilter.strength), Math.abs(this.blurYFilter.strength)) * 2; this.blurXFilter.blur = value; + this.padding = Math.max( Math.abs(this.blurYFilter.strength), Math.abs(this.blurYFilter.strength)) * 2; } }, @@ -111,8 +111,8 @@ }, set: function (value) { - this.padding = Math.max( Math.abs(this.blurYFilter.strength), Math.abs(this.blurYFilter.strength)) * 2; this.blurYFilter.blur = value; + this.padding = Math.max( Math.abs(this.blurYFilter.strength), Math.abs(this.blurYFilter.strength)) * 2; } } }); diff --git a/src/core/renderers/webgl/managers/FilterManager.js b/src/core/renderers/webgl/managers/FilterManager.js index d797d1d..bef199d 100644 --- a/src/core/renderers/webgl/managers/FilterManager.js +++ b/src/core/renderers/webgl/managers/FilterManager.js @@ -106,7 +106,7 @@ if(filters.length === 1) { - filters[0].apply(this, currentState.renderTarget, lastState.renderTarget, false); + filters[0].apply(this, currentState.renderTarget, lastState.renderTarget, true); FilterManager.freePotRenderTarget(currentState.renderTarget); } else @@ -124,7 +124,7 @@ flop = t; } - filters[i].apply(this, flip, lastState.renderTarget, false); + filters[i].apply(this, flip, lastState.renderTarget, true); FilterManager.freePotRenderTarget(flip); FilterManager.freePotRenderTarget(flop); @@ -163,7 +163,11 @@ if(clear) { + var gl = renderer.gl; + + gl.disable(gl.SCISSOR_TEST); renderer.clear();//[1, 1, 1, 1]); + gl.enable(gl.SCISSOR_TEST); } renderer.bindShader(shader); diff --git a/src/filters/blur/BlurFilter.js b/src/filters/blur/BlurFilter.js index 164f6bd..4aa3577 100644 --- a/src/filters/blur/BlurFilter.js +++ b/src/filters/blur/BlurFilter.js @@ -16,12 +16,12 @@ this.blurXFilter = new BlurXFilter(); this.blurYFilter = new BlurYFilter(); - this.resolution = 0.25;//0.25;//0.25//1//01.26; + this.resolution = 0.5;//0.25;//0.25//1//01.26; this.blurYFilter.passes = this.blurXFilter.passes = 1; this.blurYFilter.strength = this.blurXFilter.strength = 4;//4// 4 - this.padding = 20; - + this.padding = 40; + this.passes = 2; } BlurFilter.prototype = Object.create(core.Filter.prototype); @@ -34,7 +34,7 @@ var renderTarget = filterManager.getRenderTarget(true); this.blurXFilter.apply(filterManager, input, renderTarget, true); - this.blurYFilter.apply(filterManager, renderTarget, output); + this.blurYFilter.apply(filterManager, renderTarget, output, true); filterManager.returnRenderTarget(renderTarget); }; @@ -92,8 +92,8 @@ }, set: function (value) { - this.padding = Math.max( Math.abs(this.blurYFilter.strength), Math.abs(this.blurYFilter.strength)) * 2; this.blurXFilter.blur = value; + this.padding = Math.max( Math.abs(this.blurYFilter.strength), Math.abs(this.blurYFilter.strength)) * 2; } }, @@ -111,8 +111,8 @@ }, set: function (value) { - this.padding = Math.max( Math.abs(this.blurYFilter.strength), Math.abs(this.blurYFilter.strength)) * 2; this.blurYFilter.blur = value; + this.padding = Math.max( Math.abs(this.blurYFilter.strength), Math.abs(this.blurYFilter.strength)) * 2; } } }); diff --git a/src/filters/blur/BlurXFilter.js b/src/filters/blur/BlurXFilter.js index cecb1d7..b8af225 100644 --- a/src/filters/blur/BlurXFilter.js +++ b/src/filters/blur/BlurXFilter.js @@ -31,7 +31,6 @@ this.passes = 1; this.resolution = 1;//0.25;//0.5;//0.1//5; this.strength = 4; - this.firstRun = true; } @@ -52,12 +51,11 @@ this.firstRun = false; } - - - this.uniforms.strength = (1/output.destinationFrame.width) * (output.size.width/input.size.width); /// // * 2 //4//this.strength / 4 / this.passes * (input.frame.width / input.size.width); + this.uniforms.strength = (1/output.size.width) * (output.size.width/input.size.width); /// // * 2 //4//this.strength / 4 / this.passes * (input.frame.width / input.size.width); // screen space! this.uniforms.strength *= this.strength; + if(this.passes === 1) { filterManager.applyFilter(this, input, output, clear); diff --git a/src/core/renderers/webgl/managers/FilterManager.js b/src/core/renderers/webgl/managers/FilterManager.js index d797d1d..bef199d 100644 --- a/src/core/renderers/webgl/managers/FilterManager.js +++ b/src/core/renderers/webgl/managers/FilterManager.js @@ -106,7 +106,7 @@ if(filters.length === 1) { - filters[0].apply(this, currentState.renderTarget, lastState.renderTarget, false); + filters[0].apply(this, currentState.renderTarget, lastState.renderTarget, true); FilterManager.freePotRenderTarget(currentState.renderTarget); } else @@ -124,7 +124,7 @@ flop = t; } - filters[i].apply(this, flip, lastState.renderTarget, false); + filters[i].apply(this, flip, lastState.renderTarget, true); FilterManager.freePotRenderTarget(flip); FilterManager.freePotRenderTarget(flop); @@ -163,7 +163,11 @@ if(clear) { + var gl = renderer.gl; + + gl.disable(gl.SCISSOR_TEST); renderer.clear();//[1, 1, 1, 1]); + gl.enable(gl.SCISSOR_TEST); } renderer.bindShader(shader); diff --git a/src/filters/blur/BlurFilter.js b/src/filters/blur/BlurFilter.js index 164f6bd..4aa3577 100644 --- a/src/filters/blur/BlurFilter.js +++ b/src/filters/blur/BlurFilter.js @@ -16,12 +16,12 @@ this.blurXFilter = new BlurXFilter(); this.blurYFilter = new BlurYFilter(); - this.resolution = 0.25;//0.25;//0.25//1//01.26; + this.resolution = 0.5;//0.25;//0.25//1//01.26; this.blurYFilter.passes = this.blurXFilter.passes = 1; this.blurYFilter.strength = this.blurXFilter.strength = 4;//4// 4 - this.padding = 20; - + this.padding = 40; + this.passes = 2; } BlurFilter.prototype = Object.create(core.Filter.prototype); @@ -34,7 +34,7 @@ var renderTarget = filterManager.getRenderTarget(true); this.blurXFilter.apply(filterManager, input, renderTarget, true); - this.blurYFilter.apply(filterManager, renderTarget, output); + this.blurYFilter.apply(filterManager, renderTarget, output, true); filterManager.returnRenderTarget(renderTarget); }; @@ -92,8 +92,8 @@ }, set: function (value) { - this.padding = Math.max( Math.abs(this.blurYFilter.strength), Math.abs(this.blurYFilter.strength)) * 2; this.blurXFilter.blur = value; + this.padding = Math.max( Math.abs(this.blurYFilter.strength), Math.abs(this.blurYFilter.strength)) * 2; } }, @@ -111,8 +111,8 @@ }, set: function (value) { - this.padding = Math.max( Math.abs(this.blurYFilter.strength), Math.abs(this.blurYFilter.strength)) * 2; this.blurYFilter.blur = value; + this.padding = Math.max( Math.abs(this.blurYFilter.strength), Math.abs(this.blurYFilter.strength)) * 2; } } }); diff --git a/src/filters/blur/BlurXFilter.js b/src/filters/blur/BlurXFilter.js index cecb1d7..b8af225 100644 --- a/src/filters/blur/BlurXFilter.js +++ b/src/filters/blur/BlurXFilter.js @@ -31,7 +31,6 @@ this.passes = 1; this.resolution = 1;//0.25;//0.5;//0.1//5; this.strength = 4; - this.firstRun = true; } @@ -52,12 +51,11 @@ this.firstRun = false; } - - - this.uniforms.strength = (1/output.destinationFrame.width) * (output.size.width/input.size.width); /// // * 2 //4//this.strength / 4 / this.passes * (input.frame.width / input.size.width); + this.uniforms.strength = (1/output.size.width) * (output.size.width/input.size.width); /// // * 2 //4//this.strength / 4 / this.passes * (input.frame.width / input.size.width); // screen space! this.uniforms.strength *= this.strength; + if(this.passes === 1) { filterManager.applyFilter(this, input, output, clear); diff --git a/src/filters/blur/BlurYFilter.js b/src/filters/blur/BlurYFilter.js index e2253f6..116c2b7 100644 --- a/src/filters/blur/BlurYFilter.js +++ b/src/filters/blur/BlurYFilter.js @@ -25,6 +25,7 @@ this.passes = 1; this.resolution = 1;//0.25;//0.5;//0.1//5; this.strength = 4; + this.firstRun = true; } BlurYFilter.prototype = Object.create(core.Filter.prototype); @@ -44,7 +45,7 @@ this.firstRun = false; } - this.uniforms.strength = (1/output.destinationFrame.height) * (output.size.height/input.size.height); /// // * 2 //4//this.strength / 4 / this.passes * (input.frame.width / input.size.width); + this.uniforms.strength = (1/output.size.height) * (output.size.height/input.size.height); /// // * 2 //4//this.strength / 4 / this.passes * (input.frame.width / input.size.width); this.uniforms.strength *= this.strength;