|
@@ -58,13 +58,13 @@
|
|
|
|
|
|
}
|
|
|
|
|
|
- camera = new THREE.PerspectiveCamera( 50, window.innerWidth / window.innerHeight, 1, 1000 );
|
|
|
- camera.position.z = 70;
|
|
|
+ camera = new THREE.PerspectiveCamera( 50, window.innerWidth / window.innerHeight, 0.01, 100 );
|
|
|
+ camera.position.z = 7;
|
|
|
|
|
|
scene = new THREE.Scene();
|
|
|
- scene.fogNode = new Nodes.FogRangeNode( color( 0xFF00FF ), float( 30 ), float( 300 ) );
|
|
|
+ scene.fogNode = new Nodes.FogRangeNode( color( 0xFF00FF ), float( 3 ), float( 30 ) );
|
|
|
|
|
|
- const sphereGeometry = new THREE.SphereGeometry( 0.5, 16, 8 );
|
|
|
+ const sphereGeometry = new THREE.SphereGeometry( 0.1, 16, 8 );
|
|
|
|
|
|
//textures
|
|
|
|
|
@@ -80,7 +80,7 @@
|
|
|
|
|
|
//lights
|
|
|
|
|
|
- const addLight = ( hexColor, intensity = 2, distance = 1000 ) => {
|
|
|
+ const addLight = ( hexColor, power = 1700, distance = 100 ) => {
|
|
|
|
|
|
const material = new Nodes.MeshStandardNodeMaterial();
|
|
|
material.colorNode = color( hexColor );
|
|
@@ -88,7 +88,8 @@
|
|
|
|
|
|
const mesh = new THREE.Mesh( sphereGeometry, material );
|
|
|
|
|
|
- const light = new THREE.PointLight( hexColor, intensity, distance );
|
|
|
+ const light = new THREE.PointLight( hexColor, 1, distance );
|
|
|
+ light.power = power;
|
|
|
light.add( mesh );
|
|
|
|
|
|
scene.add( light );
|
|
@@ -109,13 +110,13 @@
|
|
|
|
|
|
//models
|
|
|
|
|
|
- const geometryTeapot = new TeapotGeometry( 8, 18 );
|
|
|
+ const geometryTeapot = new TeapotGeometry( .8, 18 );
|
|
|
|
|
|
const leftObject = new THREE.Mesh( geometryTeapot, new Nodes.MeshStandardNodeMaterial( { color: 0x555555 } ) );
|
|
|
leftObject.material.lightsNode = redLightsNode;
|
|
|
leftObject.material.roughnessNode = new Nodes.TextureNode( alphaTexture );
|
|
|
leftObject.material.metalness = 0;
|
|
|
- leftObject.position.x = - 30;
|
|
|
+ leftObject.position.x = - 3;
|
|
|
scene.add( leftObject );
|
|
|
|
|
|
const centerObject = new THREE.Mesh( geometryTeapot, new Nodes.MeshStandardNodeMaterial( { color: 0x555555 } ) );
|
|
@@ -127,11 +128,11 @@
|
|
|
const rightObject = new THREE.Mesh( geometryTeapot, new Nodes.MeshStandardNodeMaterial( { color: 0x555555 } ) );
|
|
|
rightObject.material.lightsNode = blueLightsNode;
|
|
|
rightObject.material.metalnessNode = new Nodes.TextureNode( alphaTexture );
|
|
|
- rightObject.position.x = 30;
|
|
|
+ rightObject.position.x = 3;
|
|
|
scene.add( rightObject );
|
|
|
|
|
|
leftObject.rotation.y = centerObject.rotation.y = rightObject.rotation.y = Math.PI * - 0.5;
|
|
|
- leftObject.position.y = centerObject.position.y = rightObject.position.y = - 10;
|
|
|
+ leftObject.position.y = centerObject.position.y = rightObject.position.y = - 1;
|
|
|
|
|
|
//renderer
|
|
|
|
|
@@ -141,13 +142,13 @@
|
|
|
renderer.setAnimationLoop( animate );
|
|
|
document.body.appendChild( renderer.domElement );
|
|
|
renderer.outputEncoding = THREE.sRGBEncoding;
|
|
|
- renderer.toneMappingNode = new Nodes.ToneMappingNode( THREE.LinearToneMapping, 100 );
|
|
|
+ renderer.toneMappingNode = new Nodes.ToneMappingNode( THREE.LinearToneMapping, .2 );
|
|
|
|
|
|
//controls
|
|
|
|
|
|
controls = new OrbitControls( camera, renderer.domElement );
|
|
|
- controls.minDistance = 30;
|
|
|
- controls.maxDistance = 250;
|
|
|
+ controls.minDistance = 3;
|
|
|
+ controls.maxDistance = 25;
|
|
|
|
|
|
//stats
|
|
|
|
|
@@ -179,29 +180,29 @@
|
|
|
const time = performance.now() / 1000;
|
|
|
const lightTime = time * 0.5;
|
|
|
|
|
|
- light1.position.x = Math.sin( lightTime * 0.7 ) * 30;
|
|
|
- light1.position.y = Math.cos( lightTime * 0.5 ) * 40;
|
|
|
- light1.position.z = Math.cos( lightTime * 0.3 ) * 30;
|
|
|
+ light1.position.x = Math.sin( lightTime * 0.7 ) * 3;
|
|
|
+ light1.position.y = Math.cos( lightTime * 0.5 ) * 4;
|
|
|
+ light1.position.z = Math.cos( lightTime * 0.3 ) * 3;
|
|
|
|
|
|
- light2.position.x = Math.cos( lightTime * 0.3 ) * 30;
|
|
|
- light2.position.y = Math.sin( lightTime * 0.5 ) * 40;
|
|
|
- light2.position.z = Math.sin( lightTime * 0.7 ) * 30;
|
|
|
+ light2.position.x = Math.cos( lightTime * 0.3 ) * 3;
|
|
|
+ light2.position.y = Math.sin( lightTime * 0.5 ) * 4;
|
|
|
+ light2.position.z = Math.sin( lightTime * 0.7 ) * 3;
|
|
|
|
|
|
- light3.position.x = Math.sin( lightTime * 0.7 ) * 30;
|
|
|
- light3.position.y = Math.cos( lightTime * 0.3 ) * 40;
|
|
|
- light3.position.z = Math.sin( lightTime * 0.5 ) * 30;
|
|
|
+ light3.position.x = Math.sin( lightTime * 0.7 ) * 3;
|
|
|
+ light3.position.y = Math.cos( lightTime * 0.3 ) * 4;
|
|
|
+ light3.position.z = Math.sin( lightTime * 0.5 ) * 3;
|
|
|
|
|
|
- light4.position.x = Math.sin( lightTime * 0.3 ) * 30;
|
|
|
- light4.position.y = Math.cos( lightTime * 0.7 ) * 40;
|
|
|
- light4.position.z = Math.sin( lightTime * 0.5 ) * 30;
|
|
|
- /*
|
|
|
+ light4.position.x = Math.sin( lightTime * 0.3 ) * 3;
|
|
|
+ light4.position.y = Math.cos( lightTime * 0.7 ) * 4;
|
|
|
+ light4.position.z = Math.sin( lightTime * 0.5 ) * 3;
|
|
|
+ /*
|
|
|
@TODO: Used to test scene light change ( currently unavailable )
|
|
|
|
|
|
if ( time > 2.0 && light1.parent === null ) scene.add( light1 );
|
|
|
if ( time > 2.5 && light2.parent === null ) scene.add( light2 );
|
|
|
if ( time > 3.0 && light3.parent === null ) scene.add( light3 );
|
|
|
if ( time > 3.5 && light4.parent === null ) scene.add( light4 );
|
|
|
-*/
|
|
|
+ */
|
|
|
renderer.render( scene, camera );
|
|
|
|
|
|
stats.update();
|