Допустим, v1 и v1n находятся в group1, а v2 и v2n находятся в group2. Если мы можем предположить, что обе группы начали с одинаковой векторной конфигурации, например (0,1,0) и (0,0,1), это кажется логичным:
Сначала переместите group1 в исходную ориентацию .
var qtmp1 = group1.quaternion.clone().conjugate();
group1.applyQuaternion(qtmp1);
Затем переместите group1 в положение group2.
var qtmp2 = group2.quaternion.clone();
group1.applyQuaternion(qtmp2);
За один поворот:
group1.applyQuaternion(qtmp2.multiply(qtmp1));
Предположение может быть неверным.
РЕДАКТИРОВАТЬ: Проще:
group1.quaternion.slerp(group2.quaternion, 1);