2016-03-21 18 views
0

私はTHREE.Meshオブジェクトのグループを持っています。私の目標は、 group.applyMatrix(new THREE.Matrix4().makeRotationX(Math.PI/2));のようなものを使うことです。次に、結果をグループのデフォルトのマトリックスにして、アニメーションでmatrixUpdate()を使用できるようにしたいと思います。マトリックス変換を適用してThreeJSのデフォルト状態として結果を設定する方法は?

ThreeJSドキュメントでは、「updateMatrixを呼び出すと、手動によるマトリックスの変更が破棄され、位置、スケールなどからマトリックスが再計算されます。」

手作業で変更を加えて、結果をグループのデフォルト状態のように設定する方法はありますか?

+0

はあなたの構造の上に別のObject3Dを作成し、そこに行列を設定します。 – gaitat

+0

関連:http://stackoverflow.com/questions/27022160/three-js-can-i-apply-position-rotation-and-scale-to-thegeometry/27023024#27023024 – WestLangley

+0

@WestLangley私の場合、私は3つのグループがあります。メッシュ、1つだけではありません。私のケースにどのように適応できますか? –

答えて

1

@WestLangleyに関連するanswerに基づいて、ここに私の問題の解決策があります!私がしたいすべての行列変換を実行した後、私はちょうど行うために必要な:

group.children.forEach(function(mesh) { 
    mesh.geometry.applyMatrix(group.matrix); 
}); 
group.updateMatrix(); 
+0

これはジオメトリの頂点を更新しています。たぶんあなたが望むものは、 'mesh.applyMatrix(group.matrix);'です。 – WestLangley

+0

@WestLangley目的のためにジオメトリを更新する必要があった...この場合、メッシュのグループで作られたオブジェクトの回転を修正したい –

関連する問題