public void RenderToDepth(System.Numerics.Vector3 LightPos)
        {
            GL.Viewport(0, 0, SHADOW_WIDTH, SHADOW_HEIGHT);
            var aspect = (float)SHADOW_WIDTH / SHADOW_HEIGHT;

            GL.BindFramebuffer(FramebufferTarget.Framebuffer, DepthMapFBO);

            GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);

            var near = 1.0f;
            var far  = 25.0f;

            Matrix4 shadProj = Matrix4.CreatePerspectiveFieldOfView(
                GLHelper.DegRad(90.0f), aspect, near, far); // THIS NEEDS TO BE 90! I might make it a var anyway for shits and giggles

            List <Matrix4> Transforms = new();

            Vector3 right   = new(1.0f, 0.0f, 0.0f);
            Vector3 left    = new(-1.0f, 0.0f, 0.0f);
            Vector3 up      = new(0.0f, 1.0f, 0.0f);
            Vector3 down    = new(0.0f, -1.0f, 0.0f);
            Vector3 forward = new(0.0f, 0.0f, 1.0f);
            Vector3 back    = new(0.0f, 0.0f, -1.0f);

            var lptk = LightPos.ToOpenTK();

            Transforms.Add(
                shadProj * Matrix4.LookAt(
                    lptk, lptk + right, down));
            Transforms.Add(
                shadProj * Matrix4.LookAt(
                    lptk, lptk + left, down));
            Transforms.Add(
                shadProj * Matrix4.LookAt(
                    lptk, lptk + up, forward));
            Transforms.Add(
                shadProj * Matrix4.LookAt(
                    lptk, lptk + down, back));
            Transforms.Add(
                shadProj * Matrix4.LookAt(
                    lptk, lptk + forward, down));
            Transforms.Add(
                shadProj * Matrix4.LookAt(
                    lptk, lptk + back, down));

            GL.BindTexture(TextureTarget.TextureCubeMap, Cubemap);



            ECSScene.ExplicitRender();

            GL.BindFramebuffer(FramebufferTarget.Framebuffer, 0);
        }