diff --git a/src/core/renderers/webgl/filters/SpriteMaskFilter.js b/src/core/renderers/webgl/filters/SpriteMaskFilter.js index b8ebc54..da6a427 100644 --- a/src/core/renderers/webgl/filters/SpriteMaskFilter.js +++ b/src/core/renderers/webgl/filters/SpriteMaskFilter.js @@ -21,6 +21,7 @@ fs.readFileSync(__dirname + '/spriteMaskFilter.frag', 'utf8'), { mask: { type: 'sampler2D', value: sprite._texture }, + alpha: { type: 'f', value: 1}, otherMatrix: { type: 'mat3', value: maskMatrix.toArray(true) } } ); @@ -49,6 +50,7 @@ filterManager.calculateMappedMatrix(input.frame, this.maskSprite, this.maskMatrix); this.uniforms.otherMatrix.value = this.maskMatrix.toArray(true); + this.uniforms.alpha.value = this.maskSprite.worldAlpha; var shader = this.getShader(renderer); // draw the filter... diff --git a/src/core/renderers/webgl/filters/SpriteMaskFilter.js b/src/core/renderers/webgl/filters/SpriteMaskFilter.js index b8ebc54..da6a427 100644 --- a/src/core/renderers/webgl/filters/SpriteMaskFilter.js +++ b/src/core/renderers/webgl/filters/SpriteMaskFilter.js @@ -21,6 +21,7 @@ fs.readFileSync(__dirname + '/spriteMaskFilter.frag', 'utf8'), { mask: { type: 'sampler2D', value: sprite._texture }, + alpha: { type: 'f', value: 1}, otherMatrix: { type: 'mat3', value: maskMatrix.toArray(true) } } ); @@ -49,6 +50,7 @@ filterManager.calculateMappedMatrix(input.frame, this.maskSprite, this.maskMatrix); this.uniforms.otherMatrix.value = this.maskMatrix.toArray(true); + this.uniforms.alpha.value = this.maskSprite.worldAlpha; var shader = this.getShader(renderer); // draw the filter... diff --git a/src/core/renderers/webgl/filters/spriteMaskFilter.frag b/src/core/renderers/webgl/filters/spriteMaskFilter.frag index a928623..ff8880c 100644 --- a/src/core/renderers/webgl/filters/spriteMaskFilter.frag +++ b/src/core/renderers/webgl/filters/spriteMaskFilter.frag @@ -5,6 +5,7 @@ varying vec4 vColor; uniform sampler2D uSampler; +uniform float alpha; uniform sampler2D mask; void main(void) @@ -15,6 +16,6 @@ float clip = 1.0 - max(text.y, text.x); vec4 original = texture2D(uSampler, vTextureCoord); vec4 masky = texture2D(mask, vMaskCoord); - original *= (masky.r * masky.a * clip); + original *= (masky.r * masky.a * alpha * clip); gl_FragColor = original; }