Material evaluator can really distinguish values.
Implements #135

Exposing more useful classes from engine to be used as a framework.