private static Matrix4x4 CalculateObliqueMatrix(Matrix4x4 projection, Vector4 clipPlane)
    {
        Vector4 b      = projection.inverse * new Vector4(Floor_ReflectionScriptCamera.sgn(clipPlane.x), Floor_ReflectionScriptCamera.sgn(clipPlane.y), 1f, 1f);
        Vector4 vector = clipPlane * (2f / Vector4.Dot(clipPlane, b));

        projection[2]  = vector.x - projection[3];
        projection[6]  = vector.y - projection[7];
        projection[10] = vector.z - projection[11];
        projection[14] = vector.w - projection[15];
        return(projection);
    }