我有一个盒子几何,
我想定义几何体的正面,设置一个框:
var materialArray = [];
materialArray.push(new THREE.MeshBasicMaterial( { map: THREE.ImageUtils.loadTexture( 'test/Three.js/images/xpos.png' ) }));
materialArray.push(new THREE.MeshBasicMaterial( { map: THREE.ImageUtils.loadTexture( 'test/Three.js/images/xneg.png' ) }));
materialArray.push(new THREE.MeshBasicMaterial( { map: THREE.ImageUtils.loadTexture( 'test/Three.js/images/ypos.png' ) }));
materialArray.push(new THREE.MeshBasicMaterial( { map: THREE.ImageUtils.loadTexture( 'test/Three.js/images/yneg.png' ) }));
materialArray.push(new THREE.MeshBasicMaterial( { map: THREE.ImageUtils.loadTexture( 'test/Three.js/images/zpos.png' ) }));
materialArray.push(new THREE.MeshBasicMaterial( { map: THREE.ImageUtils.loadTexture( 'test/Three.js/images/zneg.png' ) }));
var MovingCubeMat = new THREE.MeshFaceMaterial(materialArray);
var MovingCubeGeom = new THREE.BoxGeometry( 100*meter, 50*meter, 300*meter, 1, 1, 1, materialArray );
myMesh = new THREE.Mesh( MovingCubeGeom, MovingCubeMat );
scene.add( myMesh );
当我使用myMesh.lookAt(myTarget)
瞄准目标时,纹理“zneg.png”(应该是对象的前面)的一侧位于背面,对象面向“zpos.png”面向到了目标。
如何定义对象的正面和底部,或顶部和背面,以便简单地使用旋转?
谢谢。
答案 0 :(得分:2)
当一个物体处于默认方向时,它被认为是在其内部正z轴的方向上看。 (例外是相机,它在内部负z轴的方向上看。)
当您致电object.lookAt( target )
时,旋转对象使其内部z轴指向目标方向。
如果希望几何体的另一面朝向内部正z轴,请在创建几何体后立即对其应用变换。
geometry.applyMatrix( new THREE.Matrix4().makeRotation( 0, Math.PI, 0 ) );
编辑:您也可以使用其中一种内置方法。例如,
geometry.rotateY( Math.PI );
three.js r.100