Hi,
I think you could define a global ShaderParam, and manually set it up to point to the Material Detail parameter.
ShaderParam MatDetail;
SetShaderParamChanges
https://github.com/Esenthel/EsenthelEngi...ng.cpp#L73
only calls change.param->setSafe(change.value);
https://github.com/Esenthel/EsenthelEngi...r.cpp#L704
which uses setChanged (_changed), _gpu_data_size and _data, so you'd have to setup only those members.
ShaderParam *src=Sh.h_Material (private API) or for simplicity public API Renderer.material_color, which both are actually the same.
MatDetail._changed=src->_changed;
MatDetail._gpu_data_size=SIZE(Flt); // just 1 float for detail
MatDetail._data=src->_data + ; // here calculate the offset for detail from the start of the MaterialParams class
then use MatDetail in ShaderParamChange
disabling detail based on LOD is done here:
https://github.com/Esenthel/EsenthelEngi...t.cpp#L147
I can try make a quick patch for controlling this part.