Could someone explain me what these variables are?
I know _cache,_value,_id,_arg[2], no idea of the other ones.

  struct ShaderMatSpec {
    ShaderArgId       _id;
    ShaderMatFunc     _func;
    ShaderMatInput    _part[2];
    PT(InternalName)  _arg[2];
    int               _dep[2];
    LMatrix4f         _cache[2];
    LMatrix4f         _value;
    ShaderMatPiece    _piece;


It’s a bit complicated. The _dep indicates what kind of attribute it depends on. Meaning, if a certain attribute of a node changes, whether the corresponding shader input should be updated as well.
The _part member indicates indicates where the input should be bound to.
_func indicates how the bound value should be used.

Take a look at the enums in shader.h, it will make more sense then.

It’s kind of making more sense… but I probably need more time to get used to them.