从物体发出光

Thé*_*ion 4 three.js

我正在制作一个 Three.js 场景,其中有星星对象,我希望能够使它们“发光”。

我所说的发光是指让它们真正发光,而不仅仅是在它们周围施加“光环”效果。

我尝试将一个PointLight物体放在与星星相同的位置,这会使物体发出光,但正如您所看到的,它不会使物体“发光”,从而产生奇怪的效果。 在此输入图像描述

我当前的代码如下所示:

class Marker extends THREE.Object3D {
  constructor() {
    super();
    // load obj model
    const loader = new OBJLoader();
    loader.load(
      "https://supersecretdomain.com/star.obj",
      object => {
        object.traverse(child => {
          if (child instanceof THREE.Mesh) {
            // child.material.map = texture;
            child.material = new THREE.MeshLambertMaterial({
              color: 0xffff00
            });
            child.scale.set(0.01, 0.01, 0.01);
          }
        });
        this.add(object);
      }
    );
    const light = new THREE.PointLight(0xffff00, 0.5, 5);
    this.add(light);
  }
}
Run Code Online (Sandbox Code Playgroud)

知道如何做到这一点吗?;)

Jav*_*ave 5

为星星添加点光源是让其他物体受到其光线影响的正确方法。为了使星星本身发光,您可以将emissive材质的颜色设置为黑色以外的颜色(为了获得最佳效果,您可能希望它与光的颜色相同)。