remove m_random_gp
fix #1395
Try to factorize shader using variadic templates.
Turn Pass 1 shader to singleton, and factorize the setUniforms.
Try to fix linux compilation.
try to fix shader.hpp.
Try another (dirty) fix.
Add userconfig param
Factorize some pass2 shaders init code
Factorize detail and spheremap
Fix linux build.
Factorize unlit shader.
Factorize transparent shaders.
Factorize splatting shader.
Wrap setUniformsHelper inside a struct
Remove unneeded templates
Factorise grass material
Turn shadow shaders into singletons.
Add Grass shadows.

For non instancing object.
Inadverly inverted shadow and shadow_grass.vert