public void SetShadowCasterMVPs(Matrix4[] mvp) { if (mvp.Length > 10) throw new ArgumentException("Can only add 10 shadowMaps."); // bias the mvp matrix so that it works on the texture Matrix4[] mvpWithBias = mvp.Select(m => m * BiasMatrix).ToArray(); GL.UniformMatrix4(GetUniformID("depthBiasMVPs"), mvpWithBias.Length, false, mvpWithBias.SelectMany(m => m.Flatten()).ToArray()); }