|
|
@@ -1077,6 +1077,21 @@ class NodeMaterial extends Material {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * Setups premultiplied alpha.
|
|
|
+ *
|
|
|
+ * @param {NodeBuilder} builder - The current node builder.
|
|
|
+ * @param {Node<vec4>} outputNode - The existing output node.
|
|
|
+ * @return {Node<vec4>} The output node.
|
|
|
+ */
|
|
|
+ setupPremultipliedAlpha( builder, outputNode ) {
|
|
|
+
|
|
|
+ outputNode = vec4( outputNode.rgb.mul( outputNode.a ), outputNode.a );
|
|
|
+
|
|
|
+ return outputNode;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* Setups the output node.
|
|
|
*
|
|
|
@@ -1094,6 +1109,14 @@ class NodeMaterial extends Material {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ // PREMULTIPLIED ALPHA
|
|
|
+
|
|
|
+ if ( this.premultipliedAlpha === true ) {
|
|
|
+
|
|
|
+ outputNode = this.setupPremultipliedAlpha( builder, outputNode );
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
return outputNode;
|
|
|
|
|
|
}
|