|
@@ -6149,6 +6149,21 @@ var ShaderLib = {
|
|
|
vertexShader: ShaderChunk.distanceRGBA_vert,
|
|
|
fragmentShader: ShaderChunk.distanceRGBA_frag
|
|
|
|
|
|
+ },
|
|
|
+
|
|
|
+ shadow: {
|
|
|
+
|
|
|
+ uniforms: UniformsUtils.merge( [
|
|
|
+ UniformsLib.lights,
|
|
|
+ {
|
|
|
+ color: { value: new Color( 0x00000 ) },
|
|
|
+ opacity: { value: 1.0 }
|
|
|
+ },
|
|
|
+ ] ),
|
|
|
+
|
|
|
+ vertexShader: ShaderChunk.shadow_vert,
|
|
|
+ fragmentShader: ShaderChunk.shadow_frag
|
|
|
+
|
|
|
}
|
|
|
|
|
|
};
|
|
@@ -18115,7 +18130,8 @@ function WebGLPrograms( renderer, extensions, capabilities ) {
|
|
|
MeshPhysicalMaterial: 'physical',
|
|
|
LineBasicMaterial: 'basic',
|
|
|
LineDashedMaterial: 'dashed',
|
|
|
- PointsMaterial: 'points'
|
|
|
+ PointsMaterial: 'points',
|
|
|
+ ShadowMaterial: 'shadow'
|
|
|
};
|
|
|
|
|
|
var parameterNames = [
|
|
@@ -22536,6 +22552,11 @@ function WebGLRenderer( parameters ) {
|
|
|
|
|
|
refreshUniformsNormal( m_uniforms, material );
|
|
|
|
|
|
+ } else if ( material.isShadowMaterial ) {
|
|
|
+
|
|
|
+ m_uniforms.color.value = material.color;
|
|
|
+ m_uniforms.opacity.value = material.opacity;
|
|
|
+
|
|
|
}
|
|
|
|
|
|
// RectAreaLight Texture
|
|
@@ -29053,47 +29074,21 @@ var Geometries = Object.freeze({
|
|
|
|
|
|
function ShadowMaterial( parameters ) {
|
|
|
|
|
|
- ShaderMaterial.call( this, {
|
|
|
- uniforms: UniformsUtils.merge( [
|
|
|
- UniformsLib.lights,
|
|
|
- {
|
|
|
- color: { value: new THREE.Color( 0, 0, 0 ) },
|
|
|
- opacity: { value: 1.0 }
|
|
|
- }
|
|
|
- ] ),
|
|
|
- vertexShader: ShaderChunk[ 'shadow_vert' ],
|
|
|
- fragmentShader: ShaderChunk[ 'shadow_frag' ]
|
|
|
- } );
|
|
|
+ Material.call( this );
|
|
|
+
|
|
|
+ this.type = 'ShadowMaterial';
|
|
|
+
|
|
|
+ this.color = new Color( 0x000000 );
|
|
|
+ this.opacity = 1.0;
|
|
|
|
|
|
this.lights = true;
|
|
|
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 () {
|
|
|
- return this.uniforms.opacity.value;
|
|
|
- },
|
|
|
- set: function ( value ) {
|
|
|
- this.uniforms.opacity.value = value;
|
|
|
- }
|
|
|
- }
|
|
|
- } );
|
|
|
-
|
|
|
this.setValues( parameters );
|
|
|
|
|
|
}
|
|
|
|
|
|
-ShadowMaterial.prototype = Object.create( ShaderMaterial.prototype );
|
|
|
+ShadowMaterial.prototype = Object.create( Material.prototype );
|
|
|
ShadowMaterial.prototype.constructor = ShadowMaterial;
|
|
|
|
|
|
ShadowMaterial.prototype.isShadowMaterial = true;
|