From 958c51416b3020396b61bccf8d92cd14296ab5f7 Mon Sep 17 00:00:00 2001 From: Florian RICHER Date: Fri, 2 Dec 2016 04:17:40 +0100 Subject: [PATCH] Add Fire Particle --- images/flare.png | Bin 0 -> 14786 bytes images/part.png | Bin 0 -> 146 bytes scripts/demo.js | 93 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 93 insertions(+) create mode 100644 images/flare.png create mode 100644 images/part.png diff --git a/images/flare.png b/images/flare.png new file mode 100644 index 0000000000000000000000000000000000000000..121ba5852505ff39fc86eaa597ab1d60ad00da77 GIT binary patch literal 14786 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 literal 0 HcmV?d00001 diff --git a/scripts/demo.js b/scripts/demo.js index b5d8438..84e658e 100644 --- a/scripts/demo.js +++ b/scripts/demo.js @@ -95,6 +95,12 @@ function createObj(loader,scene){ m.checkCollisions = true; }); }; + var f = BABYLON.Mesh.CreateBox("f1", 0.01, scene); + f.position = new BABYLON.Vector3(5, 0.0, 15); + createParticle(f,scene); + var f2 = BABYLON.Mesh.CreateBox("f2", 0.01, scene); + f2.position = new BABYLON.Vector3(-10, 0.0, -5); + createParticle(f2,scene); var boat1 = loader.addMeshTask("boat1", "", "assets/", "Cannoe.obj"); boat1.onSuccess = function(t){ @@ -126,7 +132,94 @@ function createSkybox(scene) { skybox.material = sMaterial; } +function createParticle(object,scene){ + //Smoke + var smokeSystem = new BABYLON.ParticleSystem("particles", 2000, scene); + smokeSystem.particleTexture = new BABYLON.Texture("images/flare.png", scene); + smokeSystem.emitter = object; // the starting object, the emitter + smokeSystem.minEmitBox = new BABYLON.Vector3(-1, 1, -1); // Starting all from + smokeSystem.maxEmitBox = new BABYLON.Vector3(1, 1, 1); // To... + smokeSystem.color1 = new BABYLON.Color4(0.1, 0.1, 0.1, 1.0); + smokeSystem.color2 = new BABYLON.Color4(0.1, 0.1, 0.1, 1.0); + smokeSystem.colorDead = new BABYLON.Color4(0, 0, 0, 0.0); + + smokeSystem.minSize = 0.5; + smokeSystem.maxSize = 2; + + smokeSystem.minLifeTime = 0.3; + smokeSystem.maxLifeTime = 1.5; + + smokeSystem.emitRate = 500; + + // Blend mode : BLENDMODE_ONEONE, or BLENDMODE_STANDARD + smokeSystem.blendMode = BABYLON.ParticleSystem.BLENDMODE_ONEONE; + + smokeSystem.gravity = new BABYLON.Vector3(0, 0, 0); + + smokeSystem.direction1 = new BABYLON.Vector3(0, 8, 0); + smokeSystem.direction2 = new BABYLON.Vector3(0, 8, 0); + + smokeSystem.minAngularSpeed = 0; + smokeSystem.maxAngularSpeed = Math.PI; + + smokeSystem.minEmitPower = 1; + smokeSystem.maxEmitPower = 2; + smokeSystem.updateSpeed = 0.005; + + smokeSystem.start(); + + + + // Create a particle system + var fireSystem = new BABYLON.ParticleSystem("particles", 2000, scene); + + //Texture of each particle + fireSystem.particleTexture = new BABYLON.Texture("images/flare.png", scene); + + // Where the particles come from + fireSystem.emitter = object; // the starting object, the emitter + fireSystem.minEmitBox = new BABYLON.Vector3(-0.5, 1, -0.5); // Starting all from + fireSystem.maxEmitBox = new BABYLON.Vector3(0.5, 1, 0.5); // To... + + // Colors of all particles + fireSystem.color1 = new BABYLON.Color4(1, 0.5, 0, 1.0); + fireSystem.color2 = new BABYLON.Color4(1, 0.5, 0, 1.0); + fireSystem.colorDead = new BABYLON.Color4(0, 0, 0, 0.0); + + // Size of each particle (random between... + fireSystem.minSize = 0.5; + fireSystem.maxSize = 1; + + // Life time of each particle (random between... + fireSystem.minLifeTime = 0.2; + fireSystem.maxLifeTime = 0.4; + + // Emission rate + fireSystem.emitRate = 500; + + // Blend mode : BLENDMODE_ONEONE, or BLENDMODE_STANDARD + fireSystem.blendMode = BABYLON.ParticleSystem.BLENDMODE_ONEONE; + + // Set the gravity of all particles + fireSystem.gravity = new BABYLON.Vector3(0, 0, 0); + + // Direction of each particle after it has been emitted + fireSystem.direction1 = new BABYLON.Vector3(0, 8, 0); + fireSystem.direction2 = new BABYLON.Vector3(0, 8, 0); + + // Angular speed, in radians + fireSystem.minAngularSpeed = 0; + fireSystem.maxAngularSpeed = Math.PI; + + // Speed + fireSystem.minEmitPower = 1; + fireSystem.maxEmitPower = 3; + fireSystem.updateSpeed = 0.005; + + // Start the particle system + fireSystem.start(); +} function createDemoScene(scene) {