Matrix Three.js旋转移动Object3D内的对象,使其始终面向摄影机

Matrix Three.js旋转移动Object3D内的对象,使其始终面向摄影机,matrix,camera,rotation,three.js,Matrix,Camera,Rotation,Three.js,我对Threejs有些陌生,只是想知道如何使移动网格在场景中始终面对摄影机。我在一个容器Object3D中有100个网格,我正在x轴和y轴上旋转这个容器。有没有办法强制容器内的网格始终面向摄影机 下面是一些示例代码,我还在 如果对象具有旋转的父对象,则(var k=0;kObject.lookAt()将无法正常工作 解决此问题最简单的方法是固定父对象,然后围绕该对象旋转摄影机 这样,Object.lookAt()将按预期工作 更新小提琴: three.js r.57我有没有办法不用移动相机就可以

我对Threejs有些陌生,只是想知道如何使移动网格在场景中始终面对摄影机。我在一个容器Object3D中有100个网格,我正在x轴和y轴上旋转这个容器。有没有办法强制容器内的网格始终面向摄影机

下面是一些示例代码,我还在

如果对象具有旋转的父对象,则(var k=0;k
Object.lookAt()
将无法正常工作

解决此问题最简单的方法是固定父对象,然后围绕该对象旋转摄影机

这样,
Object.lookAt()
将按预期工作

更新小提琴:


three.js r.57

我有没有办法不用移动相机就可以做到这一点?就像某种全球色彩转换一样?理论上是的,但“向上”的感觉会改变。因此对象会看着相机,但不会是正面朝上。你可以尝试
three.SceneUtils.detach()
,然后是
lookAt()
,然后对每个对象使用
THREE.SceneUtils.attach()
,但这样做效率极低,我不推荐使用。好的,谢谢!我会尝试你的第一个建议。我认为@WestLangley的解决方案(分离、查看、附加)实际上是一个很好的解决方案,特别是如果你不必在每个渲染/更新周期都这样做的话。需要记住的一件事是:你必须在附加之前更新对象的矩阵,如下所示:1)分离2)查看3)更新矩阵4)attach@ViktorBenei对的3.js r.61
for(var k = 0; k<numMeshes; k++){
     meshes[k].lookAt( camera.position );   
}