"; document.getElementById('info').style.display = "block"; return; } } function getHeightNormalMap(img) { var canvas = document.createElement( 'canvas' ); canvas.width = 127; canvas.height = 127; var context = canvas.getContext( '2d' ); var size = 127 * 127, data = new Float32Array( size ); context.drawImage(img,0,0); for ( var i = 0; i < size; i ++ ) { data[i] = 0 } var imgd = context.getImageData(0, 0, 127, 127); var pix = imgd.data; var j=0; for (var i = 0, n = pix.length; i < n; i += (4)) { var all = pix[i]+pix[i+1]+pix[i+2]; data[j++] = all/30; } return data; } function getWireFrame () { return new THREE.MeshLambertMaterial( { color:0x231ad4, opacity: 0.65, shading: THREE.FlatShading } ); } function getTerrain () { var terrainMaterial = new THREE.MeshPhongMaterial( { map: new THREE.Texture(null, THREE.UVMapping, THREE.RepeatWrapping, THREE.RepeatWrapping), ambient: 0xaaaaaa, specular: 0xffffff, shininess: 0, shading: THREE.SmoothShading } ); var img = new Image(); terrainMaterial.map.image = img; img.onload = function () { terrainMaterial.map.image.loaded = 1; }; img.src = "//terrain.jpg"; return terrainMaterial; } function animate() { requestAnimationFrame( animate ); MainLoop(); } function MainLoop() { var dist = 4000; camera.position.x = dist*Math.cos(r); camera.position.z = dist*Math.sin(r); cubeMesh.position.y = floor + 1500 - (Math.sin(r*5)*1000); cubeMesh.position.x = 500 - (Math.cos(r*5)*1000); cubeMesh.position.z = 500 - (Math.sin(r*5)*1000); r += 0.005; if ( render_gl && is_gl ) { webglRenderer.render( scene, camera ); } }