浏览代码

ShadowMaterial: Added color. See #11839.

Mr.doob 8 年之前
父节点
当前提交
a91acf8a53
共有 2 个文件被更改,包括 13 次插入1 次删除
  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/
  * @author mrdoob / http://mrdoob.com/
  *
  *
  * parameters = {
  * parameters = {
+ *  color: <THREE.Color>,
  *  opacity: <float>
  *  opacity: <float>
  * }
  * }
  */
  */
@@ -17,6 +18,7 @@ function ShadowMaterial( parameters ) {
 		uniforms: UniformsUtils.merge( [
 		uniforms: UniformsUtils.merge( [
 			UniformsLib.lights,
 			UniformsLib.lights,
 			{
 			{
+				color: { value: new THREE.Color( 0, 0, 0 ) },
 				opacity: { value: 1.0 }
 				opacity: { value: 1.0 }
 			}
 			}
 		] ),
 		] ),
@@ -28,6 +30,15 @@ function ShadowMaterial( parameters ) {
 	this.transparent = true;
 	this.transparent = true;
 
 
 	Object.defineProperties( this, {
 	Object.defineProperties( this, {
+		color: {
+			enumerable: true,
+			get: function () {
+				return this.uniforms.color.value;
+			},
+			set: function ( value ) {
+				this.uniforms.color.value = value;
+			}
+		},
 		opacity: {
 		opacity: {
 			enumerable: true,
 			enumerable: true,
 			get: function () {
 			get: function () {

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

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