MCPcopy Create free account
hub / github.com/nwutils/nw-sample-apps / createVirtualLight

Function createVirtualLight

webgl/js/three.min.js:34258–34311  ·  view source on GitHub ↗
( light, cascade )

Source from the content-addressed store, hash-verified

34256 };
34257
34258 function createVirtualLight( light, cascade ) {
34259
34260 var virtualLight = new THREE.DirectionalLight();
34261
34262 virtualLight.isVirtual = true;
34263
34264 virtualLight.onlyShadow = true;
34265 virtualLight.castShadow = true;
34266
34267 virtualLight.shadowCameraNear = light.shadowCameraNear;
34268 virtualLight.shadowCameraFar = light.shadowCameraFar;
34269
34270 virtualLight.shadowCameraLeft = light.shadowCameraLeft;
34271 virtualLight.shadowCameraRight = light.shadowCameraRight;
34272 virtualLight.shadowCameraBottom = light.shadowCameraBottom;
34273 virtualLight.shadowCameraTop = light.shadowCameraTop;
34274
34275 virtualLight.shadowCameraVisible = light.shadowCameraVisible;
34276
34277 virtualLight.shadowDarkness = light.shadowDarkness;
34278
34279 virtualLight.shadowBias = light.shadowCascadeBias[ cascade ];
34280 virtualLight.shadowMapWidth = light.shadowCascadeWidth[ cascade ];
34281 virtualLight.shadowMapHeight = light.shadowCascadeHeight[ cascade ];
34282
34283 virtualLight.pointsWorld = [];
34284 virtualLight.pointsFrustum = [];
34285
34286 var pointsWorld = virtualLight.pointsWorld,
34287 pointsFrustum = virtualLight.pointsFrustum;
34288
34289 for ( var i = 0; i < 8; i ++ ) {
34290
34291 pointsWorld[ i ] = new THREE.Vector3();
34292 pointsFrustum[ i ] = new THREE.Vector3();
34293
34294 }
34295
34296 var nearZ = light.shadowCascadeNearZ[ cascade ];
34297 var farZ = light.shadowCascadeFarZ[ cascade ];
34298
34299 pointsFrustum[ 0 ].set( -1, -1, nearZ );
34300 pointsFrustum[ 1 ].set( 1, -1, nearZ );
34301 pointsFrustum[ 2 ].set( -1, 1, nearZ );
34302 pointsFrustum[ 3 ].set( 1, 1, nearZ );
34303
34304 pointsFrustum[ 4 ].set( -1, -1, farZ );
34305 pointsFrustum[ 5 ].set( 1, -1, farZ );
34306 pointsFrustum[ 6 ].set( -1, 1, farZ );
34307 pointsFrustum[ 7 ].set( 1, 1, farZ );
34308
34309 return virtualLight;
34310
34311 }
34312
34313 // Synchronize virtual light with the original light
34314

Callers 1

three.min.jsFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected