/// /// Physijs.scripts.worker = '../physijs_worker.js'; Physijs.scripts.ammo = 'examples/js/ammo.js'; var initScene, render, _boxes = [], spawnBox, inc_ready, renderer, render_stats, physics_stats, scene, ground_material, ground, light, camera; var cubes = []; var total_cubes = 0; var total_ready = 0; var max_on_screen = 100; var spawn_per_tick = 25; initScene = function() { renderer = new THREE.WebGLRenderer({ antialias: true }); renderer.setSize( window.innerWidth, window.innerHeight ); renderer.shadowMapEnabled = true; renderer.shadowMapSoft = true; document.getElementById( 'viewport' ).appendChild( renderer.domElement ); render_stats = new Stats(); render_stats.domElement.style.position = 'absolute'; render_stats.domElement.style.top = '0px'; render_stats.domElement.style.zIndex = 100; document.getElementById( 'viewport' ).appendChild( render_stats.domElement ); physics_stats = new Stats(); physics_stats.domElement.style.position = 'absolute'; physics_stats.domElement.style.top = '50px'; physics_stats.domElement.style.zIndex = 100; document.getElementById( 'viewport' ).appendChild( physics_stats.domElement ); scene = new Physijs.Scene; scene.setGravity(new THREE.Vector3( 0, -30, 0 )); scene.addEventListener( 'update', function() { scene.simulate( undefined, 1 ); physics_stats.update(); while(cubes.length > max_on_screen) { scene.remove(cubes[0]); cubes[0].geometry.dispose(); cubes[0].material.dispose(); cubes.splice( 0, 1 ); } document.getElementById( 'totalcubecount' ).textContent = ( total_cubes.toString() ); document.getElementById( 'currentcubecount' ).textContent = ( cubes.length.toString() ); document.getElementById( 'totalobjects' ).textContent = ( scene.__objects.length ); if(total_cubes > total_ready){ return; } for (var i=0;i