Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private static Emitter engineFire(AssetManager assetManager, Geometry geom) {
- Emitter emitter = new Emitter();
- emitter.setName("engine fire- " + geom.getName());
- PolarizedMeshEmitterShape shape = new PolarizedMeshEmitterShape();
- //shape.setPolarity(new Vector3f(0, .73159f, -1));
- shape.setPolarity(new Vector3f(-0.02f, 1, 1.1f));
- shape.setPolarityWeight(.015f, 0.9f);
- shape.setShape(geom.getMesh());
- emitter.setShape(shape);
- //emitter.setParticleType(ParticleDataImpostorMesh.class); // For particles other than the default quad impostor based particle
- emitter.setMaxParticles(100);
- emitter.setEmissionsPerSecond(30);
- emitter.setParticlesPerEmission(1);
- emitter.setDirectionType(MeshEmitterShape.DirectionType.Normal);
- emitter.setBillboardMode(Emitter.BillboardMode.Camera);
- emitter.setForceMinMax(-.1f, 0);
- emitter.setLifeMinMax(1f, 2);
- emitter.setUseRandomEmissionPoint(true);
- emitter.setParticlesFollowEmitter(false);
- emitter.setSprite("Effects/Explosion/flame.png", 2, 2);
- Material mat = new Material(assetManager, "Common/MatDefs/Misc/Particle.j3md");
- mat.getAdditionalRenderState().setFaceCullMode(RenderState.FaceCullMode.Off);
- mat.getAdditionalRenderState().setBlendMode(RenderState.BlendMode.AlphaAdditive);
- emitter.setMaterial(mat, "Texture", true);
- //e1.setEmitterTestMode(true, true); // Enabling the test mode shapes (emitter shape, particle mesh)
- ColorInfluencer c = new ColorInfluencer();
- c.addColor(ColorRGBA.Yellow);
- c.addColor(ColorRGBA.Blue.mult(ColorRGBA.Yellow));
- c.addColor(ColorRGBA.Red);
- c.setFixedDuration(0.35f);
- emitter.addInfluencer(c);
- AlphaInfluencer a = new AlphaInfluencer();
- a.addAlpha(1.0f, Interpolation.linear);
- a.addAlpha(0.1698f, Interpolation.linear);
- emitter.addInfluencer(a);
- SizeInfluencer s = new SizeInfluencer();
- s.addSize(new Vector3f(0.5f, 0.6f, 0.5f));
- s.addSize(new Vector3f(.5f, 1f, .5f));
- s.setUseRandomSize(true);
- s.setRandomSizeTolerance(.35f);
- s.setFixedDuration(1);
- emitter.addInfluencer(s);
- RotationInfluencer r = new RotationInfluencer();
- r.addRotationSpeed(new Vector3f(0.0f, 0.0f, 0.0f));
- r.setUseRandomStartRotation(false, false, false);
- r.setUseRandomDirection(true);
- r.setUseRandomSpeed(true);
- emitter.addInfluencer(r);
- GravityInfluencer g = new GravityInfluencer();
- g.setGravity(new Vector3f(0.0f, -1, 0.0f));
- g.setMagnitude(0.015f);
- emitter.addInfluencer(g);
- return emitter;
- }
- private static Emitter engineSmoke(AssetManager assetManager, Geometry geom) {
- Emitter e1 = new Emitter();
- e1.setName("engine smoke- " + geom.getName());
- PolarizedMeshEmitterShape shape = new PolarizedMeshEmitterShape();
- //shape.setPolarity(new Vector3f(0, .73159f, -1));
- shape.setPolarity(new Vector3f(-0.02f, 1, 1.1f));
- shape.setPolarityWeight(.015f, 1);
- shape.setShape(geom.getMesh());
- e1.setShape(shape);
- //e1.setParticleType(ParticleDataImpostorMesh.class); // For particles other than the default quad impostor based particle
- e1.setMaxParticles(500);
- e1.setEmissionsPerSecond(30);
- e1.setParticlesPerEmission(5);
- e1.setDirectionType(MeshEmitterShape.DirectionType.Normal);
- e1.setBillboardMode(Emitter.BillboardMode.Camera);
- e1.setForceMinMax(.025f, .04f);
- e1.setLifeMinMax(0.6f, 2.25f);
- e1.setUseRandomEmissionPoint(true);
- e1.setParticlesFollowEmitter(false);
- // e1.setUseSequentialEmissionFace(true);
- //e1.setUseSequentialSkipPattern(true);
- //e1.setUseVelocityStretching(true);
- //e1.setVelocityStretchFactor(1.25f);
- e1.setSprite("Effects/Smoke/Smoke.png", 15, 1);
- Material mat = new Material(assetManager, "Common/MatDefs/Misc/Particle.j3md");
- mat.getAdditionalRenderState().setFaceCullMode(RenderState.FaceCullMode.Off);
- mat.getAdditionalRenderState().setBlendMode(RenderState.BlendMode.Alpha);
- e1.setMaterial(mat, "Texture", true);
- // Enabling the test mode shapes (emitter shape, particle mesh)
- //e1.setEmitterTestMode(true, true);
- // Color Influencer
- ColorInfluencer c = new ColorInfluencer();
- c.addColor(new ColorRGBA(.3f, .3f, .3f, 1f));
- c.addColor(new ColorRGBA(.2f, .2f, .2f, 1f));
- c.addColor(new ColorRGBA(.35f, .35f, .35f, 1f));
- c.setFixedDuration(0.55f);
- e1.addInfluencer(c);
- //Alpha Influencer
- AlphaInfluencer a = new AlphaInfluencer();
- a.addAlpha(1.0f, Interpolation.linear);
- a.addAlpha(0.1698f, Interpolation.linear);
- e1.addInfluencer(a);
- // Size Influencer
- SizeInfluencer s = new SizeInfluencer();
- s.addSize(new Vector3f(0.3f, 0.3f, 0.3f));
- s.addSize(new Vector3f(0.8f, 0.8f, 0.8f));
- s.setUseRandomSize(true);
- s.setRandomSizeTolerance(.25f);
- s.setFixedDuration(.6f);
- e1.addInfluencer(s);
- // Rotation Influencer
- RotationInfluencer r = new RotationInfluencer();
- r.addRotationSpeed(new Vector3f(0.0f, 0.0f, 0.0f));
- r.setUseRandomStartRotation(false, false, false);
- r.setUseRandomDirection(true);
- r.setUseRandomSpeed(true);
- e1.addInfluencer(r);
- // Gravity Influencer
- GravityInfluencer g = new GravityInfluencer();
- g.setGravity(new Vector3f(0.0f, -1, 0.0f));
- g.setMagnitude(0.75f);
- e1.addInfluencer(g);
- return e1;
- }
Advertisement
Add Comment
Please, Sign In to add comment