Browse Source

ShadowMaterial: Added color. See #11839.

Mr.doob 8 years ago
parent
commit
a91acf8a53
2 changed files with 13 additions and 1 deletions
  1. 11 0
      src/materials/ShadowMaterial.js
  2. 2 1
      src/renderers/shaders/ShaderLib/shadow_frag.glsl

+ 11 - 0
src/materials/ShadowMaterial.js

@@ -7,6 +7,7 @@ import { UniformsUtils } from '../renderers/shaders/UniformsUtils';
  * @author mrdoob / http://mrdoob.com/
  *
  * parameters = {
+ *  color: <THREE.Color>,
  *  opacity: <float>
  * }
  */
@@ -17,6 +18,7 @@ function ShadowMaterial( parameters ) {
 		uniforms: UniformsUtils.merge( [
 			UniformsLib.lights,
 			{
+				color: { value: new THREE.Color( 0, 0, 0 ) },
 				opacity: { value: 1.0 }
 			}
 		] ),
@@ -28,6 +30,15 @@ function ShadowMaterial( parameters ) {
 	this.transparent = true;
 
 	Object.defineProperties( this, {
+		color: {
+			enumerable: true,
+			get: function () {
+				return this.uniforms.color.value;
+			},
+			set: function ( value ) {
+				this.uniforms.color.value = value;
+			}
+		},
 		opacity: {
 			enumerable: true,
 			get: function () {

+ 2 - 1
src/renderers/shaders/ShaderLib/shadow_frag.glsl

@@ -1,3 +1,4 @@
+uniform vec3 color;
 uniform float opacity;
 
 #include <common>
@@ -9,6 +10,6 @@ uniform float opacity;
 
 void main() {
 
-	gl_FragColor = vec4( 0.0, 0.0, 0.0, opacity * ( 1.0 - getShadowMask() ) );
+	gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );
 
 }