Added the feature to hide objects behind invisible objects (occlusion).
Thw workflow is:
Call context.setColorMask(false, false, false, false);
Draw the object, that shall hide other objects.
Call context.setColorMask(true, true, true, true);

The OcclusionMaterial is a ColorMaterial, that calls
context.setColorMask(false, false, false, false); in its updateMaterial method
and
context.setColorMask(true, true, true, true); in its cleanMaterial method.

Added cleanMaterial beside updateMaterial in MaterialBase.
clean Material is called in DefaultRenderer.drawRenderables

I'm not sure, whether this fits your engine.
Update:
Only OcclusionMaterial has to be added to the master, since all the magic setColorMask calls are now being done inside this class.

----
Added the feature to hide objects behind invisible objects (occlusion).
Thw workflow is:
Call context.setColorMask(false, false, false, false);
Draw the object, that shall hide other objects.
Call context.setColorMask(true, true, true, true);

The OcclusionMaterial is a ColorMaterial, that calls
context.setColorMask(false, false, false, false); in its updateMaterial method
and
context.setColorMask(true, true, true, true); in its cleanMaterial method.

Added cleanMaterial beside updateMaterial in MaterialBase.
clean Material is called in DefaultRenderer.drawRenderables

I'm not sure, whether this fits your engine. (reverse-merged from commit 69349920c962197bbc57ee535b7f6bfdeb8064ed)
Merge remote-tracking branch 'MarcelKlammer/master' into dev
fix incompatible override on occlusionmaterial