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

Теперь вот проблема, с которой я сталкиваюсь, перевод, который я применил к автомобильному объекту, наследуется сетками, но наклейки остаются в том же положении. Я не могу понять, что могло пойти не так? Спасибо

0 ответов

Другие вопросы по тегам