如何清除加载模型的旋转

时间:2014-12-08 21:47:05

标签: three.js

我有一个模型,正确显示在Three.js中。顶部位于顶部,底部位于底部。但是,模型在X轴上具有-1.57的预设旋转。这意味着如果我向场景添加任何新对象,则对象轴将与模型轴不同。如何清除或重置此预设旋转,以便模型轴和世界轴匹配,顶部仍然位于顶部?我希望我能清楚地解释清楚。谢谢。

1 个答案:

答案 0 :(得分:0)

如何将您的模型旋转一次1.57,"刻录"此方向返回模型的顶点,然后将其保存到新文件。

   // reset mesh rotation
   mesh.rotation.y = 1.57;

   // make current oreintation, the base of the model
   applyMeshTransformation(mesh);

   // export the model to new blob file (can saved from this to new file)    
   exportObject(mesh)

   function applyMeshTransformation(mesh) {

        // apply local matrix on geometry
        mesh.updateMatrixWorld();
        mesh.geometry.applyMatrix(mesh.matrixWorld);

        // reset local matrix
        mesh.position.set(0,0,0);
        mesh.rotation.set(0,0,0);
        mesh.scale.set(1,1,1);
        mesh.updateMatrixWorld();

   };

   function exportObject(mesh)  {

        var objExporter = new THREE.ObjectExporter();
        var output = JSON.stringify( objExporter.parse( mesh ), null, '\t' );
        output = output.replace( /[\n\t]+([\d\.e\-\[\]]+)/g, '$1' );

        var blob = new Blob( [ output ], { type: 'text/plain' } );
        var objectURL = window.URL.createObjectURL( blob );

        window.open( objectURL, '_blank' ); 

   };