Three.js 为什么我的聚光灯投射出一个完美的圆圈?
我很难弄明白为什么我的three.js SpotLight会这样。我想做一个游戏用的手电筒。我将聚光灯添加到场景中,如下所示:Three.js 为什么我的聚光灯投射出一个完美的圆圈?,three.js,Three.js,我很难弄明白为什么我的three.js SpotLight会这样。我想做一个游戏用的手电筒。我将聚光灯添加到场景中,如下所示: flashLight = new THREE.SpotLight( 0xffffff, 1 ); scene.add( flashLight ); flashLight.position.copy(player.body.position); flashLight.target.position.set(flashLight.position.x + player.
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();
然后更新手电筒,使其与播放器同步,如下所示:
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();
出于某种原因,手电筒在其照射的表面上投射出一个完美的圆圈:
展示了预期的行为
谢谢 在演示中,您可以看到它采用相机位置,但偏移了一点
flashLight.position.copy(camera.position);
flashLight.position.x += 2;
flashLight.position.y -= 3;
flashLight.position.z -= 1;
我觉得你看到的是一个完美的圆,因为你从与光源相同的角度观察光束。在演示中,你可以看到它占据相机位置,但偏移了一点
flashLight.position.copy(camera.position);
flashLight.position.x += 2;
flashLight.position.y -= 3;
flashLight.position.z -= 1;
我觉得你看到的是一个完美的圆,因为你从与光源相同的角度观察光束。你是从闪光灯相同的角度观察光束的吗?可能会将闪光灯偏移,就好像它偏离了播放器的中心一样。我想你的问题是
手电筒。位置。复制(玩家。身体。位置)代码>你的位置是1:1,你完全正确。有点尴尬。非常感谢。你可以试着用一个触发器,当它产生你的手电筒时,把它固定在那些坐标上,然后让你的玩家在它周围移动,从不同的角度看它。每次将其关闭/打开时,请设置方向,以便可以尝试从不同的视点查看其梁。注意:我从未使用过three.js,我真的很喜欢你的问题,很有趣!你是从闪光灯的同一角度看的吗?可能会将闪光灯偏移,就好像它偏离了播放器的中心一样。我想你的问题是手电筒。位置。复制(玩家。身体。位置)代码>你的位置是1:1,你完全正确。有点尴尬。非常感谢。你可以试着用一个触发器,当它产生你的手电筒时,把它固定在那些坐标上,然后让你的玩家在它周围移动,从不同的角度看它。每次将其关闭/打开时,请设置方向,以便可以尝试从不同的视点查看其梁。注意:我从未使用过three.js,我真的很喜欢你的问题,很有趣!