|
@@ -44,14 +44,11 @@
|
|
|
|
|
|
<script src="js/Detector.js"></script>
|
|
|
<script src="js/libs/stats.min.js"></script>
|
|
|
- <script src="js/libs/tween.min.js"></script>
|
|
|
|
|
|
<script src='js/libs/dat.gui.min.js'></script>
|
|
|
|
|
|
<script>
|
|
|
|
|
|
- var DAY = 0;
|
|
|
-
|
|
|
var container, stats;
|
|
|
|
|
|
var camera, scene, renderer;
|
|
@@ -64,8 +61,6 @@
|
|
|
|
|
|
var mixer;
|
|
|
|
|
|
- var parameters, tweenDay, tweenNight;
|
|
|
-
|
|
|
var clock = new THREE.Clock();
|
|
|
|
|
|
var gui, shadowCameraHelper, shadowConfig = {
|
|
@@ -78,10 +73,6 @@
|
|
|
|
|
|
};
|
|
|
|
|
|
- var lightingConfig = {
|
|
|
- daylight: false
|
|
|
- };
|
|
|
-
|
|
|
init();
|
|
|
animate();
|
|
|
|
|
@@ -98,7 +89,7 @@
|
|
|
// SCENE
|
|
|
|
|
|
scene = new THREE.Scene();
|
|
|
- scene.fog = new THREE.Fog( 0x00aaff, 1000, 10000 );
|
|
|
+ scene.fog = new THREE.Fog( 0, 1000, 10000 );
|
|
|
|
|
|
// CUBE CAMERA
|
|
|
|
|
@@ -248,36 +239,20 @@
|
|
|
|
|
|
// LIGHTS
|
|
|
|
|
|
- var sunIntensity = 0.3,
|
|
|
- pointIntensity = 1,
|
|
|
- pointColor = 0xffaa00;
|
|
|
-
|
|
|
- if ( DAY ) {
|
|
|
-
|
|
|
- sunIntensity = 1;
|
|
|
- pointIntensity = 0.5;
|
|
|
- pointColor = 0xffffff;
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
ambientLight = new THREE.AmbientLight( 0x3f2806 );
|
|
|
scene.add( ambientLight );
|
|
|
|
|
|
- pointLight = new THREE.PointLight( 0xffaa00, pointIntensity, 5000 );
|
|
|
- pointLight.position.set( 0, 0, 0 );
|
|
|
+ pointLight = new THREE.PointLight( 0xffaa00, 1, 5000 );
|
|
|
scene.add( pointLight );
|
|
|
|
|
|
- sunLight = new THREE.SpotLight( 0xffffff, sunIntensity, 0, Math.PI/2 );
|
|
|
+ sunLight = new THREE.SpotLight( 0xffffff, 0.3, 0, Math.PI/2 );
|
|
|
sunLight.position.set( 1000, 2000, 1000 );
|
|
|
|
|
|
sunLight.castShadow = true;
|
|
|
|
|
|
+ sunLight.shadow = new THREE.LightShadow( new THREE.PerspectiveCamera( shadowConfig.shadowCameraFov, 1, shadowConfig.shadowCameraNear, shadowConfig.shadowCameraFar ) );
|
|
|
sunLight.shadow.bias = shadowConfig.shadowBias;
|
|
|
|
|
|
- sunLight.shadow.camera.far = shadowConfig.shadowCameraFar;
|
|
|
- sunLight.shadow.camera.near = shadowConfig.shadowCameraNear;
|
|
|
- sunLight.shadow.camera.fov = shadowConfig.shadowCameraFov;
|
|
|
-
|
|
|
scene.add( sunLight );
|
|
|
|
|
|
// SHADOW CAMERA HELPER
|
|
@@ -289,7 +264,6 @@
|
|
|
// RENDERER
|
|
|
|
|
|
renderer = new THREE.WebGLRenderer( { antialias: true } );
|
|
|
- renderer.setClearColor( scene.fog.color );
|
|
|
renderer.setPixelRatio( window.devicePixelRatio );
|
|
|
renderer.setSize( window.innerWidth, window.innerHeight );
|
|
|
container.appendChild( renderer.domElement );
|
|
@@ -331,13 +305,6 @@
|
|
|
|
|
|
window.addEventListener( 'resize', onWindowResize, false );
|
|
|
|
|
|
- // TWEEN
|
|
|
-
|
|
|
- parameters = { control: 0 };
|
|
|
-
|
|
|
- tweenDay = new TWEEN.Tween( parameters ).to( { control: 1 }, 1000 ).easing( TWEEN.Easing.Exponential.Out );
|
|
|
- tweenNight = new TWEEN.Tween( parameters ).to( { control: 0 }, 1000 ).easing( TWEEN.Easing.Exponential.Out );
|
|
|
-
|
|
|
// GUI
|
|
|
|
|
|
gui = new dat.GUI( { width: 400 } );
|
|
@@ -384,30 +351,6 @@
|
|
|
|
|
|
shadowGUI.open();
|
|
|
|
|
|
- // LIGHTING
|
|
|
-
|
|
|
- var lightingGUI = gui.addFolder( "Lighting" );
|
|
|
-
|
|
|
- lightingGUI.add( lightingConfig, 'daylight' ).onChange( function() {
|
|
|
-
|
|
|
- // change between day and night
|
|
|
-
|
|
|
- if( lightingConfig.daylight === true ) {
|
|
|
-
|
|
|
- tweenNight.stop();
|
|
|
- tweenDay.start();
|
|
|
-
|
|
|
- } else {
|
|
|
-
|
|
|
- tweenDay.stop();
|
|
|
- tweenNight.start();
|
|
|
-
|
|
|
- };
|
|
|
-
|
|
|
- });
|
|
|
-
|
|
|
- lightingGUI.open();
|
|
|
-
|
|
|
}
|
|
|
|
|
|
//
|
|
@@ -441,7 +384,6 @@
|
|
|
|
|
|
var delta = clock.getDelta();
|
|
|
|
|
|
- TWEEN.update();
|
|
|
controls.update();
|
|
|
|
|
|
if ( mixer ) {
|
|
@@ -450,14 +392,6 @@
|
|
|
|
|
|
}
|
|
|
|
|
|
- scene.fog.color.setHSL( 0.63, 0.05, parameters.control );
|
|
|
- renderer.setClearColor( scene.fog.color );
|
|
|
-
|
|
|
- sunLight.intensity = parameters.control * 0.7 + 0.3;
|
|
|
- pointLight.intensity = - parameters.control * 0.5 + 1;
|
|
|
-
|
|
|
- pointLight.color.setHSL( 0.1, 0.75, parameters.control * 0.5 + 0.5 );
|
|
|
-
|
|
|
// render cube map
|
|
|
|
|
|
mesh.visible = false;
|