threejs场景打光

一、问题

        打光的时候总是很随机,要不就是场景全是黑的,要不就是打完光之后总是有的墙一整个照不到,然后黑黑的一面墙,虽然threejs中文文档里面有告诉我们具体可以打哪几种光,但是并没有告诉我们如何点亮一整个房间。

二、问题具体描述

原:

 用我的方法打完光之后:

 房间里面的每一个面都显示出来了,没有黑的面了。

三、解决方法

        主要思路:给三维坐标系的每个象限都打上光,那么整个场景就应该都被点亮了。

        下面是具体的打光代码,不需要环境光,直接设置我的光就可以看清场景里面的每一个角落了:

 

// 添加定向光
      var directionalLight0 = new THREE.DirectionalLight(0xffffff, 2); // 颜色和强度
      directionalLight0.position.set(1, 1, 1); // 光源位置
      this.scene.add(directionalLight0);

      var directionalLight1 = new THREE.DirectionalLight(0xffffff, 2); // 颜色和强度
      directionalLight1.position.set(-1, 1, 1); // 光源位置
      this.scene.add(directionalLight1);

      var directionalLight2 = new THREE.DirectionalLight(0xffffff, 2); // 颜色和强度
      directionalLight2.position.set(-1, 1, -1); // 光源位置
      this.scene.add(directionalLight2);

      var directionalLight3 = new THREE.DirectionalLight(0xffffff, 2); // 颜色和强度
      directionalLight3.position.set(1, 1, -1); // 光源位置
      this.scene.add(directionalLight3);

      var directionalLight4 = new THREE.DirectionalLight(0xffffff, 2); // 颜色和强度
      directionalLight4.position.set(1, -1, 1); // 光源位置
      this.scene.add(directionalLight4);

      var directionalLight5 = new THREE.DirectionalLight(0xffffff, 2); // 颜色和强度
      directionalLight5.position.set(-1, -1, 1); // 光源位置
      this.scene.add(directionalLight5);

      var directionalLight6 = new THREE.DirectionalLight(0xffffff, 2); // 颜色和强度
      directionalLight6.position.set(1, -1, -1); // 光源位置
      this.scene.add(directionalLight6);

      var directionalLight7 = new THREE.DirectionalLight(0xffffff, 2); // 颜色和强度
      directionalLight7.position.set(-1, -1, -1); // 光源位置
      this.scene.add(directionalLight7);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值