|
@@ -5,10 +5,7 @@
|
|
|
|
|
|
THREE.WebGLShadowMap = function ( _renderer, _lights, _webglObjects, _webglObjectsImmediate ) {
|
|
|
|
|
|
- var _gl = _renderer.context;
|
|
|
-
|
|
|
- var _depthMaterial, _depthMaterialMorph, _depthMaterialSkin, _depthMaterialMorphSkin,
|
|
|
-
|
|
|
+ var _gl = _renderer.context,
|
|
|
_frustum = new THREE.Frustum(),
|
|
|
_projScreenMatrix = new THREE.Matrix4(),
|
|
|
|
|
@@ -24,27 +21,27 @@ THREE.WebGLShadowMap = function ( _renderer, _lights, _webglObjects, _webglObjec
|
|
|
var depthShader = THREE.ShaderLib[ "depthRGBA" ];
|
|
|
var depthUniforms = THREE.UniformsUtils.clone( depthShader.uniforms );
|
|
|
|
|
|
- _depthMaterial = new THREE.ShaderMaterial( {
|
|
|
+ var _depthMaterial = new THREE.ShaderMaterial( {
|
|
|
uniforms: depthUniforms,
|
|
|
vertexShader: depthShader.vertexShader,
|
|
|
fragmentShader: depthShader.fragmentShader
|
|
|
} );
|
|
|
|
|
|
- _depthMaterialMorph = new THREE.ShaderMaterial( {
|
|
|
+ var _depthMaterialMorph = new THREE.ShaderMaterial( {
|
|
|
uniforms: depthUniforms,
|
|
|
vertexShader: depthShader.vertexShader,
|
|
|
fragmentShader: depthShader.fragmentShader,
|
|
|
morphTargets: true
|
|
|
} );
|
|
|
|
|
|
- _depthMaterialSkin = new THREE.ShaderMaterial( {
|
|
|
+ var _depthMaterialSkin = new THREE.ShaderMaterial( {
|
|
|
uniforms: depthUniforms,
|
|
|
vertexShader: depthShader.vertexShader,
|
|
|
fragmentShader: depthShader.fragmentShader,
|
|
|
skinning: true
|
|
|
} );
|
|
|
|
|
|
- _depthMaterialMorphSkin = new THREE.ShaderMaterial( {
|
|
|
+ var _depthMaterialMorphSkin = new THREE.ShaderMaterial( {
|
|
|
uniforms: depthUniforms,
|
|
|
vertexShader: depthShader.vertexShader,
|
|
|
fragmentShader: depthShader.fragmentShader,
|
|
@@ -57,9 +54,19 @@ THREE.WebGLShadowMap = function ( _renderer, _lights, _webglObjects, _webglObjec
|
|
|
_depthMaterialSkin._shadowPass = true;
|
|
|
_depthMaterialMorphSkin._shadowPass = true;
|
|
|
|
|
|
+ //
|
|
|
+
|
|
|
+ var scope = this;
|
|
|
+
|
|
|
+ this.enabled = false;
|
|
|
+ this.type = THREE.PCFShadowMap;
|
|
|
+ this.cullFace = THREE.CullFaceFront;
|
|
|
+ this.debug = false;
|
|
|
+ this.cascade = false;
|
|
|
+
|
|
|
this.render = function ( scene, camera ) {
|
|
|
|
|
|
- if ( _renderer.shadowMapEnabled === false ) return;
|
|
|
+ if ( scope.enabled === false ) return;
|
|
|
|
|
|
var i, il, j, jl, n,
|
|
|
|
|
@@ -80,7 +87,7 @@ THREE.WebGLShadowMap = function ( _renderer, _lights, _webglObjects, _webglObjec
|
|
|
_gl.enable( _gl.CULL_FACE );
|
|
|
_gl.frontFace( _gl.CCW );
|
|
|
|
|
|
- if ( _renderer.shadowMapCullFace === THREE.CullFaceFront ) {
|
|
|
+ if ( scope.cullFace === THREE.CullFaceFront ) {
|
|
|
|
|
|
_gl.cullFace( _gl.FRONT );
|
|
|
|
|
@@ -157,7 +164,7 @@ THREE.WebGLShadowMap = function ( _renderer, _lights, _webglObjects, _webglObjec
|
|
|
|
|
|
var shadowFilter = THREE.LinearFilter;
|
|
|
|
|
|
- if ( _renderer.shadowMapType === THREE.PCFSoftShadowMap ) {
|
|
|
+ if ( scope.type === THREE.PCFSoftShadowMap ) {
|
|
|
|
|
|
shadowFilter = THREE.NearestFilter;
|
|
|
|
|
@@ -339,7 +346,7 @@ THREE.WebGLShadowMap = function ( _renderer, _lights, _webglObjects, _webglObjec
|
|
|
_gl.clearColor( clearColor.r, clearColor.g, clearColor.b, clearAlpha );
|
|
|
_gl.enable( _gl.BLEND );
|
|
|
|
|
|
- if ( _renderer.shadowMapCullFace === THREE.CullFaceFront ) {
|
|
|
+ if ( scope.cullFace === THREE.CullFaceFront ) {
|
|
|
|
|
|
_gl.cullFace( _gl.BACK );
|
|
|
|