为什么我的SpotLight投射出完美的圆圈?

时间:2019-08-02 05:24:54

标签: three.js

我很难弄清楚为什么我的three.js SpotLight表现得如此。我正在尝试为游戏制作手电筒。我将SpotLight这样添加到场景中:

flashLight = new THREE.SpotLight( 0xffffff, 1 );
scene.add( flashLight );

然后更新手电筒,使其与播放器同步移动,如下所示:

flashLight.position.copy(player.body.position);

flashLight.target.position.set(flashLight.position.x + player.lookDirection.x,
                             flashLight.position.y + player.lookDirection.y,
                             flashLight.position.z + player.lookDirection.z);

flashLight.target.updateMatrixWorld();

由于某种原因,手电筒会在发光的表面上投射出一个完美的圆圈:Image

here证明了预期的行为

谢谢!

1 个答案:

答案 0 :(得分:0)

在演示中,您可以看到它占据了相机的位置,但是稍微偏移了

        flashLight.position.copy(camera.position);
        flashLight.position.x += 2;
        flashLight.position.y -= 3;
        flashLight.position.z -= 1;

我觉得您看到的是一个完美的圆圈,因为您正以与光束源相同的角度查看光束。