ThreeJS:使用枢轴对象

时间:2016-07-05 18:29:12

标签: html5 three.js rotation decal

我正在尝试使用来自组中心的枢轴对象旋转一组对象。假设我的一组物体是一堆汽车零件,如底盘,车身,车轮,发动机,每个都是一个三维网格。

每个网格都有一个贴花,我使用以下内容添加:

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 个答案:

没有答案