返回介绍

基类 Light 和 Object3D

发布于 2021-07-10 20:14:16 字数 1554 浏览 996 评论 0 收藏 0

前面课程对光源的介绍主要是从认识光源的角度介绍的,本节课主要从编写代码角度介绍,根据类的继承关系设置光源对象的相关属性。

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

光源位置属性

光源对象继承父类Object3D的位置属性.position

以点光源PointLight 为例,PointLight的基类是Light,Light的基类是Object3D,点光源自然继承对象Object3D的位置属性.position

var point = new THREE.PointLight(0xffffff);//点光源
//设置点光源位置  
//
//光源对象和模型对象的position属性一样是Vector3对象
point.position.set(400, 200, 300);

光源对象的.add()方法同样继承自基类Object3D

//环境光对象添加到scene场景中
scene.add(ambient);
//点光源对象添加到scene场景中
scene.add(point);

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

你查看光源光源Light文档,可以看到该类定义了光源颜色属性.color和强度系数属性.intensity

光源颜色属性.color默认值是白色0xffffff,强度属性.intensity默认1.0,光照计算的时候会把两个属性值相乘。

比如环境光颜色设置为0xffffff,强度系数设置为0.5,把0.5设置为0.8,threejs场景中模型会变得更明亮。调节环境颜色你可以直接设置不同颜色值,比如0x444440xddddddd,也可以使用更为方便的强度系数去调节。对于点光源、聚光源和环境光一样继承基类Light强度系数属性.intensity

//环境光:颜色设置为`0xffffff`,强度系数设置为0.5
var ambient = new THREE.AmbientLight(0xffffff,0.5);
scene.add(ambient);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文