Маркиззо, в этом и заключается суть: 3-й пиксель следует за 2-м, поэтому я все еще поворачиваю направо, но вращение внезапно переворачивается (снова, когда вращение y достигает -PI).Во всяком случае, я исправил это, не пытаясь напрямую изменить значение revolution.y, а играя с матрицей.Просто нужно время, чтобы понять, что и для чего.
Для тех, кто может столкнуться с подобным pb, вот мое временное решение, пока я не найду стинг более производительным:
this.meshes.matrix.identity();
if (Math.abs(driftAmount) > 0)
{
this.driftAxis.copy(this.driftDirection);
this.driftValue = js.Utils.lerp(this.driftValue, Math.sign(driftAmount) * 0.4, 0.05);
this.meshes.matrix.makeRotationAxis(this.driftAxis, this.driftValue);
}
else if (Math.abs(this.driftValue) > 0)
{
this.driftAxis.copy(this.driftDirection);
this.driftValue = js.Utils.lerp(this.driftValue, 0, 0.1);
if (Math.abs(this.driftValue) < 0.001)
{
this.driftValue = 0;
}
this.meshes.matrix.makeRotationAxis(this.driftAxis, this.driftValue);
}
this.meshes.applyMatrix(this.collider.matrix);
Я должен был добавитьось смещения по оси смещения, которая является моей осью для моего вертикального вращения.Для исх.Я думаю, что этот предмет +/- связан с проблемой, с которой я столкнулся: https://github.com/mrdoob/three.js/issues/1460
Теперь у меня есть еще одна проблема, как добавить еще один поворот в this.meshes на другой оси, вперед, для вращенияэффект, потому что, если я просто добавлю еще один makeRotationAxis в этот код, он пропустит первый.Но это звучит не так сложно понять, должен существовать эквивалент чего-то combMatrix ...