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