首页 > 解决方案 > Three.js:父级旋转的 LookAt

问题描述

我有一些飞机,它们是空 Object3D 的父级。这些飞机总是像精灵一样面向相机。除非我旋转父级,否则它工作正常。Three.js 文档说 . lookAt 不支持转换的父母 所以我想弄清楚如何手动解决它。这是我现在拥有的:

     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目标。问题是,这架飞机有点像在看相机,但它不断闪烁,好像从默认旋转到所需旋转,来回交换。我没有在这里连接任何东西,所以我不明白为什么会这样。如果有人能指出更优雅的解决方案,我将不胜感激,也许是四元数。

标签: javascriptthree.js

解决方案


推荐阅读