BabylonJS - saving particles
HTML
<script src="https://dl.dropboxusercontent.com/u/12395133/babylon.1.12-beta.js"></script>
<div id="rootDiv">
<button id="btnCreate">Create particles</button>
<button id="btnRun">Run effect</button>
<canvas id="canvas"></canvas>
</div>
CSS
html, body, div, canvas {
width: 100%;
height: 100%;
padding: 0;
margin: 0;
overflow: hidden;
}
#btnRun {
top: 40px;
}
#btnRun, #btnCreate {
position:fixed;
color:#555;
font-size:11px;
font-family:courier;
width:100px;
height:40px;
}
JavaScript
var canvas = document.getElementById("canvas");
var engine = new BABYLON.Engine(canvas, false);
var scene = new BABYLON.Scene(engine);
var camera = new BABYLON.ArcRotateCamera("Camera", 1, 0.8, 10, new BABYLON.Vector3(0, 0, 0), scene);
camera.setPosition(new BABYLON.Vector3(0, 5, -5));
var light0 = new BABYLON.HemisphericLight("Omni", new BABYLON.Vector3(0, 0, 10), scene);
scene.activeCamera.attachControl(canvas);
engine.runRenderLoop(function () {
scene.render();
});
var imgSrc = "https://dl.dropboxusercontent.com/u/12395133/babylon/cloud_dot.png";
window.particleSystem = null;
var source = BABYLON.Mesh.CreateBox("source", 0.1, scene);
$("#btnCreate").click(function(){
if(particleSystem) {
particleSystem.stop();
}
particleSystem = new BABYLON.ParticleSystem("particles", 5000, scene);
particleSystem.particleTexture = new BABYLON.Texture(imgSrc, scene);
particleSystem.emitter = source;
particleSystem.color1 = new BABYLON.Color4(0, 0, 0, 1.0);
particleSystem.color2 = new BABYLON.Color4(0.5, 0, 0, 1.0);
particleSystem.colorDead = new BABYLON.Color4(1, 1, 0, 0.1);
particleSystem.minSize = 0.1;
particleSystem.maxSize = 0.2;
particleSystem.minLifeTime = 0.8;
particleSystem.maxLifeTime = 0.9;
particleSystem.emitRate = 2000;
particleSystem.blendMode = BABYLON.ParticleSystem.BLENDMODE_STANDARD;
particleSystem.gravity = new BABYLON.Vector3(0, 0, 0);
particleSystem.direction1 = new BABYLON.Vector3(1, 0, 0);
particleSystem.direction2 = new BABYLON.Vector3(0, 0, 1);
particleSystem.minAngularSpeed = 0;
particleSystem.maxAngularSpeed = 0.1;
particleSystem.minEmitPower = 2;
particleSystem.maxEmitPower = 2;
particleSystem.minEmitBox = new BABYLON.Vector3(0, 0, 0);
particleSystem.maxEmitBox = new BABYLON.Vector3(0, 0, 0);
particleSystem.updateSpeed = 0.02;
particleSystem.targetStopDuration = 7;
// particleSystem.manualEmitCount = 5000;
...