@Override
    public int hashCode() {
        int hash = 5;
        hash = 31 * hash + (this.value != null ? this.value.hashCode() : 0);
        hash = 31 * hash + (this.varType != null ? this.varType.hashCode() : 0);
        hash = 31 * hash + (this.binding != null ? this.binding.hashCode() : 0);
        return hash;
    }
Used to track which uniforms to clear to avoid
values leaking from other materials that use that shader.
jme3-core/src/main/java/com/jme3/shader/Uniform.java