Skip to content

一、基类Light和Object3D

看文档SpotLightDirectionalLight、环境光AmbientLight等光源对象都有一个共同的基类Light, 光源Lightt也有一个基类Object3D。也就是说three.ts环境光、点光源等子类光源可以继承LightObject3D两个父类的属性和方法。

light-4

1. 光源位置属性

  • 光源对象继承父类Object3D的位置属性.position
  • 以点光源PointLight为例,PointLight的基类是LightLight的基类是Object3D,点光源自然继承对象Object3D的位置属性.position
    javascript
      const point = new THREE.PointLight(0xffffff);//点光源
      // 设置点光源位置  
      // 光源对象和模型对象的position属性一样是Vector3对象
      point.position.set(400, 200, 300);
  • 光源对象的.add()方法同样继承自基类Object3D
    javascript
      // 环境光对象添加到scene场景中
      scene.add(ambient);
      // 点光源对象添加到scene场景中
      scene.add(point);

2. 光源颜色属性.color和强度属性.intensity

  • 查看光源光源Light文档,可以看到该类定义了光源颜色属性.color和强度系数属性.intensity
  • 光源颜色属性.color默认值是白色0xffffff,强度属性.intensity默认1.0,光照计算的时候会把两个属性值相乘。
  • 比如环境光颜色设置为0xffffff,强度系数设置为0.5,把0.5设置为0.8three.ts场景中模型会变得更明亮。调节环境颜色你可以直接设置不同颜色值,比如0x444440xddddddd, 也可以使用更为方便的强度系数去调节。对于点光源、聚光源和环境光一样继承基类Light强度系数属性.intensity
    javascript
      // 环境光:颜色设置为`0xffffff`,强度系数设置为0.5
      const ambient = new THREE.AmbientLight(0xffffff,0.5);
      scene.add(ambient);

Released under the MIT License.