Если вы сложите формулу, которая у вас есть, по всем вершинам (а затем поделите на количество вершин), вы рассчитаете среднюю процентную ошибку в положении для всех вершин.
Однако эта процентная ошибка, вероятно, не совсем та, которую вы хотите, потому что вершины, расположенные ближе к началу координат, будут иметь большую «процентную ошибку» для того же смещения, поскольку их величина меньше.
Если вы вообще ничего не делите, у вас будет средний дрейф в мировых единицах, который может быть именно тем, что вы хотите:
average_drift = sum(1->numvertices, |actual - reference|) / numvertices
Вы можете разделить на что-то более подходящее для вашей конкретной ситуации, чтобы получить значимое число без единиц. Если вы поделите Average_drift на высоту вашей модели, у вас будет ошибка в процентах от размера модели, что может быть полезно.
Если отдельные вершины, вероятно, будут иметь больше ошибок, если они находятся на большом расстоянии от вершины, "связанной" с ними, как это может быть в случае, если они являются вершинами объединенной модели, вы можете разделить каждую ошибку на длину их родительский сустав, чтобы получить среднюю ошибку, нормализованную для ориентации сустава - то есть, какой был бы средний дрейф, если бы каждый сустав имел единицу длины:
orientation_drift = sum(1->numvertices, |actual - reference| / jointlength) / numvertices