必须将辅助工具直接添加到场景中吗?

时间:2014-12-01 18:46:48

标签: three.js

以下添加光助手的方法可以正常工作:

var light = new THREE.SpotLight( 0xFFFFFF );
light.position.set(100,100,100);
scene.add(light);
var helper = new THREE.SpotLightHelper( light );
scene.add(helper);

但是以下会导致助手离开位置:

var wrapper = new THREE.Object3D();
wrapper.position.set(100,100,100);
var light = new THREE.SpotLight( 0xFFFFFF );
wrapper.add(light);
var helper = new THREE.SpotLightHelper( light );
wrapper.add(helper);
scene.add(wrapper);

似乎辅助位置是从绝对光位置到场景,但是从它的包装中应用,这意味着它实际上被应用了两次,因此不匹配光的实际位置。在此示例中,帮助程序将出现在(200,200,200)上。同样适用于PointLight和其他可能的灯光类型。

是否可以将辅助工具与光一起放入包装中并避免位置问题?

在此处演示:http://jsfiddle.net/wfpxdw37/24/

1 个答案:

答案 0 :(得分:1)

Light Helpers就是那个 - 助手。

必须将它们添加为场景的孩子。

考虑该要求是一项功能。 : - )

three.js r.69