自发光光源不影响其他物体的阴影 三.js



我正在从事一个太阳系项目,该项目涉及行星和围绕太阳运行的火箭飞船。目前有一个主光源,代码如下

// add subtle ambient lighting
var ambientLight = new THREE.AmbientLight(0x0c0c0c);
scene.add(ambientLight);
// add spotlight for the shadows
var spotLight = new THREE.PointLight(0xffffff);
spotLight.position.set(-200, 50, 150);
spotLight.castShadow = true;
scene.add(spotLight);

我创建了一个太阳物体,并尝试赋予它一个自发光属性,这样它就可以向其他行星发光。虽然它似乎在某种意义上使行星发光,但它更多的只是物体被照亮而不是阴影,而不是真正成为光源。太阳对象的代码如下

 function createSunMesh(geom) {
     var loader = new THREE.TextureLoader();
     var planetSunTexture = loader.load("../assets/textures/planets/sun.jpg");
     //var normalSunTexture = loader.load("../assets/textures/planets/moonbump.jpg");
     var planetSunMaterial = new THREE.MeshLambertMaterial({map: planetSunTexture, emissive: 0xac3d25});
     //bumpMap: normalMoonTexture
     // create a multimaterial
     var planetSunMesh = THREE.SceneUtils.createMultiMaterialObject(geom, [planetSunMaterial]);
     planetSunMesh.visible = false;
     return planetSunMesh;
 }

所以我的问题是,有没有办法使光的自发光特性更强/强度足以影响其他物体?我尝试使用两种Lambert/Phong材料,但它们似乎具有相同的效果。

我最终重新定位了主聚光灯,使其位于我的太阳对象内,这给了它与我一直在寻找的相同的效果。此外,我增加了强度并减少了衰减,以使光线具有更逼真的效果。

最新更新