anchor.diff:  
   [source,java]
   ----
  -
  -        this.fpp = new FilterPostProcessor(this.assetManager); // Create FilterPostProcessor instance
  -        this.grayScale = new GrayScaleFilter();  // Create GrayScaleFilter instance
  -        this.fpp.addFilter(this.grayScale);  // Add GrayScaleFilter instance to FilterPostProcessor instance
  -        this.viewPort.addProcessor(this.fpp);  // Add FilterPostProcessor instance to ViewPort
  -
  +this.fpp = new FilterPostProcessor(this.assetManager); // Create FilterPostProcessor instance
  +this.grayScale = new GrayScaleFilter();  // Create GrayScaleFilter instance
  +this.fpp.addFilter(this.grayScale);  // Add GrayScaleFilter instance to FilterPostProcessor instance
  +this.viewPort.addProcessor(this.fpp);  // Add FilterPostProcessor instance to ViewPort
   ----
   
   link:https://github.com/jMonkeyEngine-Contributions/shaderblowlib/blob/master/ShaderBlow/test-src/com/shaderblow/test/filter/grayscale/TestGrayScale.java[TestCase]
  
positive.code: 
  [source,java]
  ----
  
          this.fpp = new FilterPostProcessor(this.assetManager); // Create FilterPostProcessor instance
          this.oldFilmFilter= new OldFilmFilter();  // Create OldFilmFilter instance
          this.fpp.addFilter(this.oldFilmFilter);  // Add OldFilmFilter instance to FilterPostProcessor instance
          this.viewPort.addProcessor(this.fpp);  // Add FilterPostProcessor instance to ViewPort
  
  ----
  
  link:https://github.com/jMonkeyEngine-Contributions/shaderblowlib/blob/master/ShaderBlow/test-src/com/shaderblow/test/filter/oldfilm/TestOldFilm.java[TestCase]
  
negative.code: 
  [source,java]
  ----
  // Create the material
  final Material mat = new Material(this.assetManager, "ShaderBlow/MatDefs/FakeParticleBlow/FakeParticleBlow.j3md");
  
  // Create the mask texture to use
  final Texture maskTex = this.assetManager.loadTexture("TestTextures/FakeParticleBlow/mask.png");
  mat.setTexture("MaskMap", maskTex);
  
  // Create the texture to use for the spatial.
  final Texture aniTex = this.assetManager.loadTexture("TestTextures/FakeParticleBlow/particles.png");
  aniTex.setWrap(WrapMode.MirroredRepeat); // NOTE: Set WrapMode = MirroredRepeat in order to animate the texture
  mat.setTexture("AniTexMap", aniTex); // Set texture
  
  mat.setFloat("TimeSpeed", 2); // Set animation speed
  
  mat.setColor("BaseColor", ColorRGBA.Green.clone()); // Set base color to apply to the texture
  
  // mat.setBoolean("Animation_X", true); // Enable X axis animation
  mat.setBoolean("Animation_Y", true); // Enable Y axis animation
  mat.setBoolean("Change_Direction", true); // Change direction of the texture animation
  
  mat.getAdditionalRenderState().setFaceCullMode(FaceCullMode.Off); // Allow to see both sides of a face
  mat.getAdditionalRenderState().setBlendMode(BlendMode.Additive);
  
  final ColorRGBA fogColor = ColorRGBA.Black.clone();
  fogColor.a = 10; // fogColor's alpha value is used to calculate the intensity of the fog (distance to apply fog)
  mat.setColor("FogColor", fogColor); // Set fog color to apply to the spatial.
  
  final Quad quad = new Quad(3, 3); // Create an spatial. A plane in this case
  final Geometry geom = new Geometry("Particle", quad);
  geom.setMaterial(mat); // Assign the material to the spatial
  TangentBinormalGenerator.generate(geom);
  geom.setQueueBucket(Bucket.Transparent); // Remenber to set the queue bucket to transparent for the spatial
  ----
  
  To get green/yellow/blue fog (not transparency):
  
  [source,java]
  ----
  mat.getAdditionalRenderState().setBlendMode(BlendMode.AlphaAdditive);
  final ColorRGBA fogColor = ColorRGBA.Blue.clone();
  ----
  
  Several planes geometries will be required as there will be AlphaAdditive material.
  