Pav*_*ton 8 javascript camera three.js
我真的很喜欢这个东西.我想制作一个简单的3D场景,我可以用PointerLockControls飞来飞去,但我也想要一些手电筒.因此,聚光灯应指向与相机相同的方向.
我已经成为人们关注相机的焦点,但它的目标必然是0,0,0.
实现这一目标的最佳方法是什么?
谢谢.
Wes*_*ley 12
该SpotLight目标是一个Object3D,而不是一个Vector3.
spotlight.target = myObject;
Run Code Online (Sandbox Code Playgroud)
在您的情况下,最好的解决方案是使用PointLight替代,并使用此模式:
scene.add( camera );
camera.add( pointLight );
Run Code Online (Sandbox Code Playgroud)
如果您仍想使用聚光灯,请执行以下操作:
scene.add( camera );
camera.add( spotLight.target );
spotLight.target.position.set( 0, 0, -1 );
spotLight.position.copy( camera.position ); // and reset spotlight position if camera moves
Run Code Online (Sandbox Code Playgroud)
通常不需要将摄像机添加为场景的孩子,但是在这种情况下需要将摄像机作为孩子添加.
three.js r.69
Tim*_*Tim 11
我有同样的问题,我解决如下:
flashlight = new THREE.SpotLight(0xffffff,4,40);
camera.add(flashlight);
flashlight.position.set(0,0,1);
flashlight.target = camera;
Run Code Online (Sandbox Code Playgroud)
由于Spotlight的.TARGET需要有一个对象(而不是位置),我发现它精神更容易简单地直接将手电筒背后的摄像头,然后瞄准它的相机.因此,光线照在相机上,照亮前方的东西.
如果您使用手电筒效果,手电筒靠近胸部(身体的中央)而不是一侧关闭,这种方法很好.