我有一些平面,以空的Object3D为父级。这些平面像精灵一样一直面对着相机。除非我旋转父母,否则它工作正常。 Three.js文档说。lookAt doesn't support transformed parents 所以我试图找出如何手动解决它。 这是我现在拥有的:
plane.onBeforeRender = function( renderer, scene, camera,
geometry, material, group ){
var worldCamPos = new THREE.Vector3();
camera.getWorldPosition(worldCamPos);
this.worldToLocal(worldCamPos);
this.lookAt(worldCamPos);
// this.quaternion.copy(camera.quaternion);//this one rotates in local space of the container
};
因此,我试图将相机的位置转换为飞机所在的空间,并将其用作lookAt
目标。
问题是,飞机有点像在看着相机,但它不断闪烁,好像在默认情况下来回旋转所需的旋转。我什么都没连接,所以我不明白为什么会发生。
如果有人可以指出更优雅的解决方案,例如四元数,我将不胜感激。