Guest User

produces bug with emitter

a guest
Mar 29th, 2014
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.72 KB | None | 0 0
  1. private static Emitter engineFire(AssetManager assetManager, Geometry geom) {
  2.                 Emitter emitter = new Emitter();
  3.                 emitter.setName("engine fire- " + geom.getName());
  4.  
  5.                 PolarizedMeshEmitterShape shape = new PolarizedMeshEmitterShape();
  6.                 //shape.setPolarity(new Vector3f(0, .73159f, -1));
  7.                 shape.setPolarity(new Vector3f(-0.02f, 1, 1.1f));
  8.                 shape.setPolarityWeight(.015f, 0.9f);
  9.                 shape.setShape(geom.getMesh());
  10.                 emitter.setShape(shape);
  11.  
  12.                 //emitter.setParticleType(ParticleDataImpostorMesh.class); // For particles other than the default quad impostor based particle
  13.                 emitter.setMaxParticles(100);
  14.                 emitter.setEmissionsPerSecond(30);
  15.                 emitter.setParticlesPerEmission(1);
  16.                 emitter.setDirectionType(MeshEmitterShape.DirectionType.Normal);
  17.                 emitter.setBillboardMode(Emitter.BillboardMode.Camera);
  18.                 emitter.setForceMinMax(-.1f, 0);
  19.                 emitter.setLifeMinMax(1f, 2);
  20.  
  21.                 emitter.setUseRandomEmissionPoint(true);
  22.                 emitter.setParticlesFollowEmitter(false);
  23.  
  24.                 emitter.setSprite("Effects/Explosion/flame.png", 2, 2);
  25.                 Material mat = new Material(assetManager, "Common/MatDefs/Misc/Particle.j3md");
  26.                 mat.getAdditionalRenderState().setFaceCullMode(RenderState.FaceCullMode.Off);
  27.                 mat.getAdditionalRenderState().setBlendMode(RenderState.BlendMode.AlphaAdditive);
  28.                 emitter.setMaterial(mat, "Texture", true);
  29.  
  30.                 //e1.setEmitterTestMode(true, true); // Enabling the test mode shapes (emitter shape, particle mesh)
  31.  
  32.                 ColorInfluencer c = new ColorInfluencer();
  33.                 c.addColor(ColorRGBA.Yellow);
  34.                 c.addColor(ColorRGBA.Blue.mult(ColorRGBA.Yellow));
  35.                 c.addColor(ColorRGBA.Red);
  36.                 c.setFixedDuration(0.35f);
  37.                 emitter.addInfluencer(c);
  38.  
  39.                 AlphaInfluencer a = new AlphaInfluencer();
  40.                 a.addAlpha(1.0f, Interpolation.linear);
  41.                 a.addAlpha(0.1698f, Interpolation.linear);
  42.                 emitter.addInfluencer(a);
  43.  
  44.                 SizeInfluencer s = new SizeInfluencer();
  45.                 s.addSize(new Vector3f(0.5f, 0.6f, 0.5f));
  46.                 s.addSize(new Vector3f(.5f, 1f, .5f));
  47.                 s.setUseRandomSize(true);
  48.                 s.setRandomSizeTolerance(.35f);
  49.                 s.setFixedDuration(1);
  50.                 emitter.addInfluencer(s);
  51.  
  52.                 RotationInfluencer r = new RotationInfluencer();
  53.                 r.addRotationSpeed(new Vector3f(0.0f, 0.0f, 0.0f));
  54.                 r.setUseRandomStartRotation(false, false, false);
  55.                 r.setUseRandomDirection(true);
  56.                 r.setUseRandomSpeed(true);
  57.                 emitter.addInfluencer(r);
  58.  
  59.                 GravityInfluencer g = new GravityInfluencer();
  60.                 g.setGravity(new Vector3f(0.0f, -1, 0.0f));
  61.                 g.setMagnitude(0.015f);
  62.                 emitter.addInfluencer(g);
  63.  
  64.                 return emitter;
  65.         }
  66.  
  67.         private static Emitter engineSmoke(AssetManager assetManager, Geometry geom) {
  68.                 Emitter e1 = new Emitter();
  69.                 e1.setName("engine smoke- " + geom.getName());
  70.  
  71.                 PolarizedMeshEmitterShape shape = new PolarizedMeshEmitterShape();
  72.                 //shape.setPolarity(new Vector3f(0, .73159f, -1));
  73.                 shape.setPolarity(new Vector3f(-0.02f, 1, 1.1f));
  74.                 shape.setPolarityWeight(.015f, 1);
  75.                 shape.setShape(geom.getMesh());
  76.                 e1.setShape(shape);
  77.  
  78.                 //e1.setParticleType(ParticleDataImpostorMesh.class); // For particles other than the default quad impostor based particle
  79.                 e1.setMaxParticles(500);
  80.                 e1.setEmissionsPerSecond(30);
  81.                 e1.setParticlesPerEmission(5);
  82.                 e1.setDirectionType(MeshEmitterShape.DirectionType.Normal);
  83.                 e1.setBillboardMode(Emitter.BillboardMode.Camera);
  84.                 e1.setForceMinMax(.025f, .04f);
  85.                 e1.setLifeMinMax(0.6f, 2.25f);
  86.  
  87.                 e1.setUseRandomEmissionPoint(true);
  88.                 e1.setParticlesFollowEmitter(false);
  89.                 // e1.setUseSequentialEmissionFace(true);
  90.                 //e1.setUseSequentialSkipPattern(true);
  91.                 //e1.setUseVelocityStretching(true);
  92.                 //e1.setVelocityStretchFactor(1.25f);
  93.  
  94.                 e1.setSprite("Effects/Smoke/Smoke.png", 15, 1);
  95.                 Material mat = new Material(assetManager, "Common/MatDefs/Misc/Particle.j3md");
  96.                 mat.getAdditionalRenderState().setFaceCullMode(RenderState.FaceCullMode.Off);
  97.                 mat.getAdditionalRenderState().setBlendMode(RenderState.BlendMode.Alpha);
  98.                 e1.setMaterial(mat, "Texture", true);
  99.  
  100.                 // Enabling the test mode shapes (emitter shape, particle mesh)
  101.                 //e1.setEmitterTestMode(true, true);
  102.  
  103.                 // Color Influencer
  104.                 ColorInfluencer c = new ColorInfluencer();
  105.                 c.addColor(new ColorRGBA(.3f, .3f, .3f, 1f));
  106.                 c.addColor(new ColorRGBA(.2f, .2f, .2f, 1f));
  107.                 c.addColor(new ColorRGBA(.35f, .35f, .35f, 1f));
  108.                 c.setFixedDuration(0.55f);
  109.                 e1.addInfluencer(c);
  110.  
  111.                 //Alpha Influencer
  112.                 AlphaInfluencer a = new AlphaInfluencer();
  113.                 a.addAlpha(1.0f, Interpolation.linear);
  114.                 a.addAlpha(0.1698f, Interpolation.linear);
  115.                 e1.addInfluencer(a);
  116.  
  117.                 // Size Influencer
  118.                 SizeInfluencer s = new SizeInfluencer();
  119.                 s.addSize(new Vector3f(0.3f, 0.3f, 0.3f));
  120.                 s.addSize(new Vector3f(0.8f, 0.8f, 0.8f));
  121.                 s.setUseRandomSize(true);
  122.                 s.setRandomSizeTolerance(.25f);
  123.                 s.setFixedDuration(.6f);
  124.                 e1.addInfluencer(s);
  125.  
  126.                 // Rotation Influencer
  127.                 RotationInfluencer r = new RotationInfluencer();
  128.                 r.addRotationSpeed(new Vector3f(0.0f, 0.0f, 0.0f));
  129.                 r.setUseRandomStartRotation(false, false, false);
  130.                 r.setUseRandomDirection(true);
  131.                 r.setUseRandomSpeed(true);
  132.                 e1.addInfluencer(r);
  133.  
  134.                 // Gravity Influencer
  135.                 GravityInfluencer g = new GravityInfluencer();
  136.                 g.setGravity(new Vector3f(0.0f, -1, 0.0f));
  137.                 g.setMagnitude(0.75f);
  138.                 e1.addInfluencer(g);
  139.  
  140.                 return e1;
  141.         }
Advertisement
Add Comment
Please, Sign In to add comment