three.js SpotLight方向(方向)问题

Jul*_*0sS 4 javascript 3d three.js

嗯,这是问题所在,

实际上我试图实现的是在一些基本的三个例子中放置一些聚光灯.

以下是我尝试设置聚光灯目标位置的方法:

var light = new THREE.SpotLight(0xFFFFFF);
light.position.set(0,130,0);
light.target.position.set(200,-130,400);
scene.add(light);
Run Code Online (Sandbox Code Playgroud)

聚光灯(灯光)一直照亮点(0,0,0),即使在我调试target.log时,target.position.(x,y,z)它给了我正确的值......

这是我用完整的例子做的一个快速小提琴.

http://jsfiddle.net/1xfno37y/7/

Fal*_*ele 6

您必须light.target在更改后更新(例如设置位置):

light.target.updateMatrixWorld();

或者只是将您添加light.target到场景中:

scene.add( light.target );

Three.js r.71

http://jsfiddle.net/1xfno37y/19/

进一步阅读:spotLight.target.position#5555的严重错误

  • 因为```spotlight.target```是光的属性,但它不是场景图的一部分.因此,```target.matrix```和```target.matrixWorld```没有更新.我在答案中添加了更新. (2认同)