Huge shaderManager refactor
Terrain refactoring start