Мне нужно повернуть и перевести объекты. Я могу сделать оба, но после того, как вращающаяся ориентация потеряна - объекты перемещаются в ориентации, с которой они сталкиваются.Вращение и перевод объектов
if(keyboard.pressed("up"))
objects[movementControls.translate].translateX(1);
if(keyboard.pressed("down"))
objects[movementControls.translate].translateX(-1);
if(keyboard.pressed("left"))
objects[movementControls.translate].translateZ(-1);
if(keyboard.pressed("right"))
objects[movementControls.translate].translateZ(1);
if(keyboard.pressed("x"))
objects[movementControls.rotate].rotation.x+=0.1;
if(keyboard.pressed("y"))
objects[movementControls.rotate].rotation.y+=0.1;
if(keyboard.pressed("z"))
objects[movementControls.rotate].rotation.z+=0.1;
есть способ поворота только объекта, а не оси?
Все вращения и трансляции операции применяются вокруг начала координат (0,0,0). Если вы хотите сохранить перевод при вращении, вам нужно сохранить текущую позицию объекта, сначала перенести объект на (0,0,0), повернуть, а затем перевести назад. Возможно, стоит посмотреть на [график сцены] (https://en.wikipedia.org/?title=Scene_graph) для управления сложными объектами и сценами - один для WebGL - [SceneJS] (http://scenejs.org/). –