Skip to content

Commit 468a86c

Browse files
committed
ShadowMaterial: Promoted to core.
1 parent 3524fdc commit 468a86c

6 files changed

Lines changed: 63 additions & 56 deletions

File tree

examples/js/materials/ShadowMaterial.js

Lines changed: 0 additions & 55 deletions
This file was deleted.

examples/webgl_geometry_spline_editor.html

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
<script src="js/controls/OrbitControls.js"></script>
2020
<script src="js/controls/TransformControls.js"></script>
2121
<script src="js/controls/DragControls.js"></script>
22-
<script src="js/materials/ShadowMaterial.js"></script>
2322

2423
<script src="js/libs/stats.min.js"></script>
2524

src/materials/ShadowMaterial.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
/**
2+
* @author mrdoob / http://mrdoob.com/
3+
*/
4+
5+
THREE.ShadowMaterial = function () {
6+
7+
THREE.ShaderMaterial.call( this, {
8+
uniforms: THREE.UniformsUtils.merge( [
9+
THREE.UniformsLib[ "lights" ],
10+
{
11+
opacity: { value: 1.0 }
12+
}
13+
] ),
14+
vertexShader: THREE.ShaderChunk[ 'shadow_vert' ],
15+
fragmentShader: THREE.ShaderChunk[ 'shadow_frag' ]
16+
} );
17+
18+
this.lights = true;
19+
this.transparent = true;
20+
21+
Object.defineProperties( this, {
22+
opacity: {
23+
enumerable: true,
24+
get: function () {
25+
return this.uniforms.opacity.value;
26+
},
27+
set: function ( value ) {
28+
this.uniforms.opacity.value = value;
29+
}
30+
}
31+
} );
32+
33+
};
34+
35+
THREE.ShadowMaterial.prototype = Object.create( THREE.ShaderMaterial.prototype );
36+
THREE.ShadowMaterial.prototype.constructor = THREE.ShadowMaterial;
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
uniform float opacity;
2+
3+
#include <common>
4+
#include <packing>
5+
#include <bsdfs>
6+
#include <lights_pars>
7+
#include <shadowmap_pars_fragment>
8+
#include <shadowmask_pars_fragment>
9+
10+
void main() {
11+
12+
gl_FragColor = vec4( 0.0, 0.0, 0.0, opacity * ( 1.0 - getShadowMask() ) );
13+
14+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#include <shadowmap_pars_vertex>
2+
3+
void main() {
4+
5+
#include <begin_vertex>
6+
#include <project_vertex>
7+
#include <worldpos_vertex>
8+
#include <shadowmap_vertex>
9+
10+
}

utils/build/includes/common.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@
102102
"src/materials/ShaderMaterial.js",
103103
"src/materials/RawShaderMaterial.js",
104104
"src/materials/SpriteMaterial.js",
105+
"src/materials/ShadowMaterial.js",
105106
"src/textures/Texture.js",
106107
"src/textures/DepthTexture.js",
107108
"src/textures/CanvasTexture.js",
@@ -228,6 +229,8 @@
228229
"src/renderers/shaders/ShaderLib/normal_vert.glsl",
229230
"src/renderers/shaders/ShaderLib/points_frag.glsl",
230231
"src/renderers/shaders/ShaderLib/points_vert.glsl",
232+
"src/renderers/shaders/ShaderLib/shadow_frag.glsl",
233+
"src/renderers/shaders/ShaderLib/shadow_vert.glsl",
231234
"src/renderers/shaders/ShaderLib.js",
232235
"src/renderers/WebGLRenderer.js",
233236
"src/renderers/WebGLRenderTarget.js",

0 commit comments

Comments
 (0)