anchor.diff:  
   [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
  -
  +// 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();
  -
  +mat.getAdditionalRenderState().setBlendMode(BlendMode.AlphaAdditive);
  +final ColorRGBA fogColor = ColorRGBA.Blue.clone();
   ----
   
   Several planes geometries will be required as there will be AlphaAdditive material.
  
positive.code: 
  [source,java]
  ----
  
          // Create a material instance using ShaderBlow's Lighting.j3md
          final Material mat = new Material(this.assetManager, "ShaderBlow/MatDefs/Dissolve/Lighting.j3md");
          mat.setColor("Ambient", ColorRGBA.Blue);
          mat.setColor("Diffuse", ColorRGBA.White);
          mat.setColor("Specular", ColorRGBA.Black);
          mat.setBoolean("UseMaterialColors", true);
  
          this.assetManager.loadTexture("TestTextures/Dissolve/burnMap.png"
          mat.setTexture("DissolveMap", map); // Set mask texture map
          
          this.DSParams = new Vector2f(0, 0); // standard dissolver
          //this.DSParamsInv = new Vector2f(0, 1); // inverted dissolver
          mat.setVector2("DissolveParams", this.DSParams); // Set params
  
          final Box b = new Box(Vector3f.ZERO, 1, 1, 1);
          final Geometry geom = new Geometry("Box", b);
          geom.setMaterial(mat);
  
  ----
  
  link:https://github.com/jMonkeyEngine-Contributions/shaderblowlib/blob/master/ShaderBlow/test-src/com/shaderblow/test/dissolve/TestDissolve.java[TestCase]
  
negative.code: == GrayScale Filter
  
  The GrayScale filter converts the render image to grayscale.
  
  [cols="2", options="header"]
  |===
  
  