关于threejs天空盒子的使用

31 篇文章 0 订阅
8 篇文章 1 订阅

创建场景添加天空盒子相关代码如下:

var scene = new THREE.Scene() //创建场景
    var path = 'static/surround/'
    //注意加载的图片是有顺序的,分别是:右 => 左 => 上 => 下 => 前 => 后 六张宽高、格式相同的图片
    //我们可以想象一下一个正方体盒子,而我们的模型就位于正方体盒子内部一样。
    var urls = [
    path + '4.jpg',
    path + '3.jpg',
    path + '5.jpg',
    path + '6.jpg',
    path + '1.jpg',
    path + '2.jpg'
  ]
var textureCube = new THREE.CubeTextureLoader().load(urls)
textureCube.encoding = THREE.sRGBEncoding
scene.background = textureCube //添加天空盒子环境贴图 做背景使用

加载模型相关代码

var loader = new THREE.GLTFLoader() //实例化 gltf 加载器
    loader.load('static/threeD/screen/bengfang.gltf', obj => { //加载模型
    obj.scene.scale.set(0.06, 0.06, 0.06)
      obj.scene.traverse(gltf => {
      	if (gltf.isMesh) { //模型材质相关设置
          // 此处设置为scene.background 模型材质将和背景相同
          gltf.material.envMap = textureCube //天空盒子只对模型起作用
          // gltf.material.emissive = gltf.material.color
        }
     })
    scene.add(obj.scene) //场景中添加模型文件
})

效果图如下:
在这里插入图片描述

我们可以你看到天空盒子 环境贴图对模型和背景都起到了作用

有些场景下我们不需要天空盒子当背景使用,但依然对模型起作用该怎么实现呢? 很简单,去掉天空盒子当背景使用的相关代码就OK 了

// 添加天空盒子环境贴图 做背景使用
scene.background = textureCube

在这里插入图片描述

此时我们可以看到天空盒子环境贴图已经去掉了,但依然对模型起作用。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值