ThreeJS: вращать группу объектов с надписями вокруг центра, используя объект поворота
Я пытаюсь повернуть группу объектов, используя объект поворота из центра группы. Предполагая, что моя группа объектов - это куча деталей автомобиля, таких как шасси, кузов, колеса, двигатель, каждая из которых представляет собой трехмерную сетку.
Каждая сетка имеет наклейку, которую я добавляю, используя следующее:
var geometry = new THREE.DecalGeometry(mesh,worldPosition,...);
var decal= new THREE.Mesh(geometry,material)
// Convert decal world transform to mesh local transform
decal.applyMatrix(new THREE.Matrix4().getInverse(mesh.matrixWorld)
mesh.add(decal)
Чтобы вращать машину вокруг центра ее ограничительной рамки, я сначала помещаю все сетки в групповой объект.
var car = new THREE.Object3D();
for (var i=0; i < meshes.length; i++)
{
car.add(meshes[i])
}
затем переведите объект автомобиля и добавьте его в опорный пункт
car.position.set(carlength/2,carwidth/2,carheight/2);
var pivot = new THREE.Object3D();
pivot.add(car);
scene.add(pivot)
Чтобы повернуть объекты, я применяю вращение к объекту поворота при движении мыши, используя аналогичную логику.
pivot.rotation.x+=1
pivot.rotation.y+=1
pivot.rotation.z+=1
Теперь вот проблема, с которой я сталкиваюсь, перевод, который я применил к автомобильному объекту, наследуется сетками, но наклейки остаются в том же положении. Я не могу понять, что могло пойти не так? Спасибо