added level generation equations
don't needlessly recompile shaders