diff --git a/src/scenejs/shading/renderModule.js b/src/scenejs/shading/renderModule.js index cd73c69..2d699df 100644 --- a/src/scenejs/shading/renderModule.js +++ b/src/scenejs/shading/renderModule.js @@ -473,7 +473,7 @@ SceneJS._shaderModule = new (function() { function renderTransparentNodes(nodes) { var context = canvas.context; - context.blendFunc(context.SRC_ALPHA, context.ONE); + context.blendFunc(context.SRC_ALPHA, context.ONE_MINUS_SRC_ALPHA); context.enable(context.BLEND); for (var i = 0, len = nodes.length; i < len; i++) { @@ -489,7 +489,7 @@ SceneJS._shaderModule = new (function() { for (var i = 0, len = nodes.length; i < len; i++) { node = nodes[i]; if (node.materialState.material.opacity < 1.0) { - context.blendFunc(context.SRC_ALPHA, context.ONE); + context.blendFunc(context.SRC_ALPHA, context.ONE_MINUS_SRC_ALPHA); context.enable(context.BLEND); // context.disable(context.CULL_FACE); nodeRenderer.renderNode(node); @@ -1180,6 +1180,9 @@ SceneJS._shaderModule = new (function() { src.push("textureCoord=texturePos.xy;"); } + /* Alpha from Texture */ + src.push("alpha = texture2D(uSampler" + i + ", vec2(textureCoord.x, 1.0 - textureCoord.y)).a;"); + /* Texture output */ if (layer.applyTo == "baseColor") { @@ -1297,4 +1300,4 @@ SceneJS._shaderModule = new (function() { } }) - (); \ No newline at end of file + (); diff --git a/src/scenejs/shading/shadingModule.js b/src/scenejs/shading/shadingModule.js index c630a16..aa03632 100644 --- a/src/scenejs/shading/shadingModule.js +++ b/src/scenejs/shading/shadingModule.js @@ -721,6 +721,8 @@ SceneJS._shaderModule = new (function() { } } + + /* Texture matrix */ if (layer.matrixAsArray) { @@ -729,6 +731,10 @@ SceneJS._shaderModule = new (function() { src.push("textureCoord=texturePos.xy;"); } + /* Alpha from Texture + */ + src.push("alpha = texture2D(uSampler" + i + ", vec2(textureCoord.x, 1.0 - textureCoord.y)).a;"); + /* Texture output */ if (layer.applyTo == "baseColor") { @@ -844,4 +850,4 @@ SceneJS._shaderModule = new (function() { } return src.join("\n"); } -})(); \ No newline at end of file +})();