public static Matrix4x4 OrthogonalizeMatrix(Matrix4x4 m)
{
Matrix4x4 identity = Matrix4x4.identity;
Vector3 column = (Vector3) m.GetColumn(0);
Vector3 lhs = (Vector3) m.GetColumn(1);
Vector3 normalized = m.GetColumn(2).normalized;
column = Vector3.Cross(lhs, normalized).normalized;
lhs = Vector3.Cross(normalized, column).normalized;
identity.SetColumn(0, column);
identity.SetColumn(1, lhs);
identity.SetColumn(2, normalized);
return identity;
}