|
@@ -0,0 +1,404 @@
|
|
|
+<!doctype html>
|
|
|
+<html lang="en">
|
|
|
+ <head>
|
|
|
+ <title>three.js webgl - lights - point lights</title>
|
|
|
+ <meta charset="utf-8">
|
|
|
+ <meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
|
|
|
+ <style>
|
|
|
+ body {
|
|
|
+ background-color: #000;
|
|
|
+ margin: 0px;
|
|
|
+ overflow: hidden;
|
|
|
+ }
|
|
|
+
|
|
|
+ #info {
|
|
|
+ position: absolute;
|
|
|
+ top: 0px; width: 100%;
|
|
|
+ color: #ffffff;
|
|
|
+ padding: 5px;
|
|
|
+ font-family: Monospace;
|
|
|
+ font-size: 13px;
|
|
|
+ text-align: center;
|
|
|
+ }
|
|
|
+
|
|
|
+ a {
|
|
|
+ color: #ff0080;
|
|
|
+ text-decoration: none;
|
|
|
+ }
|
|
|
+
|
|
|
+ a:hover {
|
|
|
+ color: #0080ff;
|
|
|
+ }
|
|
|
+ </style>
|
|
|
+ </head>
|
|
|
+ <body>
|
|
|
+
|
|
|
+ <div id="container"></div>
|
|
|
+ <div id="info">
|
|
|
+ <a href="http://github.com/mrdoob/three.js" target="_blank">three.js</a> - point lights WebGL demo
|
|
|
+ </div>
|
|
|
+<!--
|
|
|
+ <script src="../build/Three.js"></script>
|
|
|
+-->
|
|
|
+ <script type="text/javascript" src="../src/Three.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/core/Clock.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/core/Color.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/core/Vector2.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/core/Vector3.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/core/Vector4.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/core/Ray.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/core/Rectangle.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/core/Math.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/core/Matrix3.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/core/Matrix4.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/core/Object3D.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/core/Projector.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/core/Quaternion.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/core/Vertex.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/core/Face3.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/core/Face4.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/core/UV.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/core/Geometry.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/core/Spline.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/core/Edge.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/cameras/Camera.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/cameras/OrthographicCamera.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/cameras/PerspectiveCamera.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/lights/Light.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/lights/AmbientLight.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/lights/DirectionalLight.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/lights/PointLight.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/lights/SpotLight.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/materials/Material.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/materials/LineBasicMaterial.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/materials/MeshBasicMaterial.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/materials/MeshLambertMaterial.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/materials/MeshPhongMaterial.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/materials/MeshDepthMaterial.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/materials/MeshNormalMaterial.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/materials/MeshFaceMaterial.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/materials/MeshShaderMaterial.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/materials/ParticleBasicMaterial.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/materials/ParticleCanvasMaterial.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/materials/ParticleDOMMaterial.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/materials/ShaderMaterial.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/textures/Texture.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/textures/DataTexture.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/objects/Particle.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/objects/ParticleSystem.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/objects/Line.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/objects/Mesh.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/objects/Bone.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/objects/SkinnedMesh.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/objects/MorphAnimMesh.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/objects/Ribbon.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/objects/LOD.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/objects/Sprite.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/scenes/Scene.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/scenes/Fog.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/scenes/FogExp2.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/renderers/DOMRenderer.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/renderers/CanvasRenderer.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/renderers/SVGRenderer.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/renderers/WebGLShaders.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/renderers/WebGLRenderer.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/renderers/WebGLRenderTarget.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/renderers/WebGLRenderTargetCube.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/renderers/renderables/RenderableVertex.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/renderers/renderables/RenderableFace3.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/renderers/renderables/RenderableFace4.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/renderers/renderables/RenderableObject.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/renderers/renderables/RenderableParticle.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/renderers/renderables/RenderableLine.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/ColorUtils.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/GeometryUtils.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/ImageUtils.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/SceneUtils.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/ShaderUtils.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/core/Curve.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/core/CurvePath.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/core/Path.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/core/Shape.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/core/TextPath.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/animation/AnimationHandler.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/animation/Animation.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/cameras/CubeCamera.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/cameras/FirstPersonCamera.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/cameras/PathCamera.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/cameras/FlyCamera.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/cameras/RollCamera.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/cameras/TrackballCamera.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/cameras/CombinedCamera.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/controls/FirstPersonControls.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/controls/PathControls.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/controls/FlyControls.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/controls/RollControls.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/controls/TrackballControls.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/geometries/CubeGeometry.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/geometries/CylinderGeometry.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/geometries/ExtrudeGeometry.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/geometries/IcosahedronGeometry.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/geometries/LatheGeometry.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/geometries/OctahedronGeometry.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/geometries/PlaneGeometry.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/geometries/SphereGeometry.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/geometries/TextGeometry.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/geometries/TorusGeometry.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/geometries/TorusKnotGeometry.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/modifiers/SubdivisionModifier.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/loaders/Loader.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/loaders/BinaryLoader.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/loaders/ColladaLoader.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/loaders/JSONLoader.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/loaders/SceneLoader.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/loaders/UTF8Loader.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/objects/Axes.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/objects/MarchingCubes.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/physics/Collisions.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/physics/CollisionUtils.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/renderers/AnaglyphWebGLRenderer.js"></script>
|
|
|
+ <script type="text/javascript" src="../src/extras/renderers/CrosseyedWebGLRenderer.js"></script>
|
|
|
+
|
|
|
+ <script src="js/Detector.js"></script>
|
|
|
+ <script src="js/RequestAnimationFrame.js"></script>
|
|
|
+ <script src="js/Stats.js"></script>
|
|
|
+
|
|
|
+ <script>
|
|
|
+
|
|
|
+ if ( ! Detector.webgl ) Detector.addGetWebGLMessage();
|
|
|
+
|
|
|
+ var camera, scene, renderer, controls,
|
|
|
+ particle1, particle2, particle4, particle4, particle5, particle6,
|
|
|
+ light1, light2, light3, light4, light5, light6;
|
|
|
+
|
|
|
+ var FAR = 300;
|
|
|
+
|
|
|
+ var clock = new THREE.Clock();
|
|
|
+
|
|
|
+ init();
|
|
|
+ animate();
|
|
|
+
|
|
|
+ function init() {
|
|
|
+
|
|
|
+ var container = document.getElementById( 'container' );
|
|
|
+
|
|
|
+ // CAMERA
|
|
|
+
|
|
|
+ camera = new THREE.PerspectiveCamera( 50, window.innerWidth / window.innerHeight, 1, FAR );
|
|
|
+ camera.position.y = 15;
|
|
|
+ camera.position.z = 150;
|
|
|
+
|
|
|
+ // CONTROLS
|
|
|
+
|
|
|
+ if ( 1 ) {
|
|
|
+
|
|
|
+ controls = new THREE.TrackballControls( camera );
|
|
|
+ controls.target.set( 0, 0, 0 );
|
|
|
+
|
|
|
+ controls.rotateSpeed = 1.0;
|
|
|
+ controls.zoomSpeed = 1.2;
|
|
|
+ controls.panSpeed = 0.8;
|
|
|
+
|
|
|
+ controls.noZoom = false;
|
|
|
+ controls.noPan = false;
|
|
|
+
|
|
|
+ controls.staticMoving = false;
|
|
|
+ controls.dynamicDampingFactor = 0.15;
|
|
|
+
|
|
|
+ controls.keys = [ 65, 83, 68 ];
|
|
|
+
|
|
|
+ } else {
|
|
|
+
|
|
|
+ controls = new THREE.FirstPersonControls( camera );
|
|
|
+
|
|
|
+ controls.movementSpeed = 25;
|
|
|
+ controls.lookSpeed = 0.05;
|
|
|
+ controls.lookVertical = true;
|
|
|
+
|
|
|
+ controls.lon = -90;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ // SCENE
|
|
|
+
|
|
|
+ scene = new THREE.Scene();
|
|
|
+
|
|
|
+ scene.fog = new THREE.Fog( 0x030303, 10, FAR );
|
|
|
+ scene.fog.color.setHSV( 0.75, 0.5, 0.025 );
|
|
|
+
|
|
|
+ camera.lookAt( scene.position );
|
|
|
+
|
|
|
+ // TEXTURES
|
|
|
+
|
|
|
+ var texture = THREE.ImageUtils.loadTexture( "textures/disturb.jpg" );
|
|
|
+ texture.repeat.set( 20, 10 );
|
|
|
+ texture.wrapS = texture.wrapT = THREE.RepeatWrapping;
|
|
|
+
|
|
|
+ var texture2 = THREE.ImageUtils.loadTexture( "textures/planets/moon_1024.jpg" );
|
|
|
+ texture2.repeat.set( 2, 1 );
|
|
|
+ texture2.wrapS = texture2.wrapT = THREE.RepeatWrapping;
|
|
|
+
|
|
|
+ // MATERIALS
|
|
|
+
|
|
|
+ var groundMaterial = new THREE.MeshPhongMaterial( { color: 0xffffff, ambient: 0x444444, map: texture, perPixel: true } );
|
|
|
+ var objectMaterial = new THREE.MeshPhongMaterial( { color: 0x000000, ambient: 0x111111, specular: 0xffffff, perPixel: true, metal: true, map: texture2 } );
|
|
|
+
|
|
|
+ // GROUND
|
|
|
+
|
|
|
+ var mesh = new THREE.Mesh( new THREE.PlaneGeometry( 800, 400, 2, 2 ), groundMaterial );
|
|
|
+ mesh.rotation.x = -1.57;
|
|
|
+ mesh.position.y = -5;
|
|
|
+ scene.add( mesh );
|
|
|
+
|
|
|
+ // OBJECTS
|
|
|
+
|
|
|
+ //var objectGeometry = new THREE.CubeGeometry( 0.5, 1, 1 );
|
|
|
+ //var objectGeometry = new THREE.SphereGeometry( 1.5, 16, 8 );
|
|
|
+ var objectGeometry = new THREE.TorusGeometry( 1.5, 0.4, 8, 16 );
|
|
|
+
|
|
|
+ for ( var i = 0; i < 5000; i ++ ) {
|
|
|
+
|
|
|
+ var mesh = new THREE.Mesh( objectGeometry, objectMaterial );
|
|
|
+
|
|
|
+ mesh.position.x = 400 * ( 0.5 - Math.random() );
|
|
|
+ mesh.position.y = 50 * ( 0.5 - Math.random() ) + 25;
|
|
|
+ mesh.position.z = 200 * ( 0.5 - Math.random() );
|
|
|
+
|
|
|
+ mesh.rotation.y = 3.14 * ( 0.5 - Math.random() );
|
|
|
+ mesh.rotation.x = 3.14 * ( 0.5 - Math.random() );
|
|
|
+
|
|
|
+ mesh.matrixAutoUpdate = false;
|
|
|
+ mesh.updateMatrix();
|
|
|
+ scene.add( mesh );
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ // LIGHTS
|
|
|
+
|
|
|
+ scene.add( new THREE.AmbientLight( 0x111111 ) );
|
|
|
+
|
|
|
+ var intensity = 2.5;
|
|
|
+ var distance = 100;
|
|
|
+ var c1 = 0xff0040, c2 = 0x0040ff, c3 = 0x80ff80, c4 = 0xffaa00, c5 = 0x00ffaa, c6 = 0xff1100;
|
|
|
+ //var c1 = 0xffffff, c2 = 0xffffff, c3 = 0xffffff, c4 = 0xffffff, c5 = 0xffffff, c6 = 0xffffff;
|
|
|
+
|
|
|
+ light1 = new THREE.PointLight( c1, intensity, distance );
|
|
|
+ scene.add( light1 );
|
|
|
+
|
|
|
+ light2 = new THREE.PointLight( c2, intensity, distance );
|
|
|
+ scene.add( light2 );
|
|
|
+
|
|
|
+ light3 = new THREE.PointLight( c3, intensity, distance );
|
|
|
+ scene.add( light3 );
|
|
|
+
|
|
|
+ light4 = new THREE.PointLight( c4, intensity, distance );
|
|
|
+ scene.add( light4 );
|
|
|
+
|
|
|
+ light5 = new THREE.PointLight( c5, intensity, distance );
|
|
|
+ scene.add( light5 );
|
|
|
+
|
|
|
+ light6 = new THREE.PointLight( c6, intensity, distance );
|
|
|
+ scene.add( light6 );
|
|
|
+
|
|
|
+ var dlight = new THREE.DirectionalLight( 0xffffff, 0.1 );
|
|
|
+ dlight.position.set( 0.5, -1, 0 ).normalize();
|
|
|
+ scene.add( dlight );
|
|
|
+
|
|
|
+ var sphere = new THREE.SphereGeometry( 0.25, 16, 8 );
|
|
|
+
|
|
|
+ var l1 = new THREE.Mesh( sphere, new THREE.MeshBasicMaterial( { color: c1 } ) );
|
|
|
+ l1.position = light1.position;
|
|
|
+ scene.add( l1 );
|
|
|
+
|
|
|
+ var l2 = new THREE.Mesh( sphere, new THREE.MeshBasicMaterial( { color: c2 } ) );
|
|
|
+ l2.position = light2.position;
|
|
|
+ scene.add( l2 );
|
|
|
+
|
|
|
+ var l3 = new THREE.Mesh( sphere, new THREE.MeshBasicMaterial( { color: c3 } ) );
|
|
|
+ l3.position = light3.position;
|
|
|
+ scene.add( l3 );
|
|
|
+
|
|
|
+ var l4 = new THREE.Mesh( sphere, new THREE.MeshBasicMaterial( { color: c4 } ) );
|
|
|
+ l4.position = light4.position;
|
|
|
+ scene.add( l4 );
|
|
|
+
|
|
|
+ var l5 = new THREE.Mesh( sphere, new THREE.MeshBasicMaterial( { color: c5 } ) );
|
|
|
+ l5.position = light5.position;
|
|
|
+ scene.add( l5 );
|
|
|
+
|
|
|
+ var l6 = new THREE.Mesh( sphere, new THREE.MeshBasicMaterial( { color: c6 } ) );
|
|
|
+ l6.position = light6.position;
|
|
|
+ scene.add( l6 );
|
|
|
+
|
|
|
+ // RENDERER
|
|
|
+
|
|
|
+ renderer = new THREE.WebGLRenderer( { maxLights: 10, antialias: false, clearColor: 0x030303, clearAlpha: 1 } );
|
|
|
+ renderer.setSize( window.innerWidth, window.innerHeight );
|
|
|
+ renderer.setClearColor( scene.fog.color, 1 );
|
|
|
+
|
|
|
+ container.appendChild( renderer.domElement );
|
|
|
+
|
|
|
+ renderer.gammaInput = true;
|
|
|
+ renderer.gammaOutput = true;
|
|
|
+ renderer.physicallyBasedShading = true;
|
|
|
+
|
|
|
+ renderer.sortObjects = false;
|
|
|
+
|
|
|
+ // STATS
|
|
|
+
|
|
|
+ stats = new Stats();
|
|
|
+ stats.domElement.style.position = 'absolute';
|
|
|
+ stats.domElement.style.top = '0px';
|
|
|
+ stats.domElement.style.zIndex = 100;
|
|
|
+
|
|
|
+ stats.domElement.children[ 0 ].children[ 0 ].style.color = "#aaa";
|
|
|
+ stats.domElement.children[ 0 ].style.background = "transparent";
|
|
|
+ stats.domElement.children[ 0 ].children[ 1 ].style.display = "none";
|
|
|
+
|
|
|
+ container.appendChild( stats.domElement );
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ //
|
|
|
+
|
|
|
+ function animate() {
|
|
|
+
|
|
|
+ requestAnimationFrame( animate );
|
|
|
+
|
|
|
+ render();
|
|
|
+ stats.update();
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ function render() {
|
|
|
+
|
|
|
+ controls.update( clock.getDelta() );
|
|
|
+
|
|
|
+ var time = Date.now() * 0.00025;
|
|
|
+ var z = 20, d = 150;
|
|
|
+
|
|
|
+ light1.position.x = Math.sin( time * 0.7 ) * d;
|
|
|
+ light1.position.z = Math.cos( time * 0.3 ) * d;
|
|
|
+
|
|
|
+ light2.position.x = Math.cos( time * 0.3 ) * d;
|
|
|
+ light2.position.z = Math.sin( time * 0.7 ) * d;
|
|
|
+
|
|
|
+ light3.position.x = Math.sin( time * 0.7 ) * d;
|
|
|
+ light3.position.z = Math.sin( time * 0.5 ) * d;
|
|
|
+
|
|
|
+ light4.position.x = Math.sin( time * 0.3 ) * d;
|
|
|
+ light4.position.z = Math.sin( time * 0.5 ) * d;
|
|
|
+
|
|
|
+ light5.position.x = Math.cos( time * 0.3 ) * d;
|
|
|
+ light5.position.z = Math.sin( time * 0.5 ) * d;
|
|
|
+
|
|
|
+ light6.position.x = Math.cos( time * 0.7 ) * d;
|
|
|
+ light6.position.z = Math.cos( time * 0.5 ) * d;
|
|
|
+
|
|
|
+ renderer.render( scene, camera );
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ </script>
|
|
|
+ </body>
|
|
|
+</html>
|