Ton*_*ony 1 javascript graphics lighting three.js
我有一个应用程序,我使用three.js渲染对象.我正在使用定向照明和轨迹球控制.我知道有了控制器,我正在移动相机,并且灯光位置是静止的.
然而,在移动时,我希望光与相机一起移动,使得在每个视点处,照明条件看起来相同.这样,悬挂物体就会旋转,而不是相机.
目前我有:
camera = new THREE.PerspectiveCamera(45, width / height, 0.01, 1000);
camera.position.z = 3;
light = new THREE.DirectionalLight(0xAAAAAA, 1);
light.position = camera.position;
scene.add(light);
Run Code Online (Sandbox Code Playgroud)
我尝试过的:
产生的效果是光线位于物体的另一侧并且是静止的,这是没有意义的.我想,由于光线位置相同,它会指向同一个方向.
更新:
所以使用后:
light.castShadow = true;
light.shadowCameraVisible = true;
Run Code Online (Sandbox Code Playgroud)
我可以观察一下框架,勾勒出正在投射的灯光.我可以看到光的位置发生了变化,但光本身并没有从原来的位置重新绘制.是否需要启用某些东西才能重绘光线?
任何帮助表示赞赏.
如果您想创建对象旋转的错觉,请执行以下操作:
使用a PointLight并将其添加为相机的子项,而不是场景的子项:camera.add( light );,并将点光源偏移,如下所示:light.position.set( 10, 10, 0 );
在这种情况下,您还需要将相机添加为场景的子项: scene.add( camera );
three.js r.66