保持物体看着相机

时间:2015-10-20 04:47:36

标签: camera three.js

我知道这个问题已被问过好几次,有几种不同的方式,但我只是可以让它发挥作用。基本上我有2d clouds,但我希望相机围绕漂浮在云层上方的物体旋转。问题是,当我看不到云的脸时,你可以说它们是2d。 Soooo我希望云能够看到"看起来"在相机的任何地方。我相信我的问题源于如何将云几何调用到飞机上,但这里看一看。我在我的animate函数中放了一个lookAt函数。我希望你至少可以指出我正确的方向。

Three.js rev。 70 ...

src

3 个答案:

答案 0 :(得分:3)

只是第一个猜测: lookAt函数需要Vector3作为参数。尝试在animate函数中使用camera.position。

cloud.lookAt( camera.position );

答案 1 :(得分:2)

首先,要在始终面向相机的场景中构建2D对象,您应该使用Sprite对象,这样您就不必做任何事情来获得此效果。 (并且有更好的表现:))

THREE.org的定义:Sprite - 精灵是3d场景中的一个平面,它始终朝向相机。

var map = THREE.ImageUtils.loadTexture( "sprite.png" );
var material = new THREE.SpriteMaterial( { map: map, color: 0xffffff, fog: true } );
var sprite = new THREE.Sprite( material );
scene.add( sprite );

请查看此示例:http://threejs.org/examples/#webgl_points_sprites

答案 2 :(得分:1)

我绝对同意,我会使用Sprite,甚至是Points,但是,如果为它指定一个纹理,它将呈现为方形大小。我的精灵是动画的,框架不能用方形瓷砖包装,因为它会占用大量空间。我可能会制作一个网格并使用这个lookAt函数。