Three.js实战项目 智慧城市(二)

概述

如有不明白的可以加QQ:2354528292;wx: aichitudousien
更多教学视频请访问:https://space.bilibili.com/236087412

我们接着上一篇文章接着向下做,此时我们已经成功创建了场景,现在我们来加载模型和天空盒
先看效果

智慧城市项目录制视频

科技风版本:

智慧城市二期视频

加载模型

  1. 在ZThree类中加入loaderObjModel方法用来加载模型
// 加载obj模型
  loaderObjModel(path, objName, mtlName) {
    return new Promise(resolve => {
      new MTLLoader()
        .setPath(path)
        .load(mtlName + '.mtl', function (materials) {
          console.log(materials)
          materials.preload();

          // 加载obj
          new OBJLoader()
            .setPath(path)
            .setMaterials(materials)
            .load(objName + '.obj', function (object) {
              resolve(object)
            });
        });
    })
  }
  1. 在vue文件中调用此方法
    模型是我随便在网上找的,各位可以随意在网上找一个obj模型来测试即可
	cityModel = await app.loaderObjModel(
        "model/city/",
        "CityIslands",
        "City_Islands"
      );

      scene.add(cityModel);

此时我们可以在页面上看到的效果是
在这里插入图片描述
此时有些小伙伴可能会比较奇怪的是为什么初始化进来时看不到模型或是只能看到模型的一小部分,那是你的相机设置的位置不对,教给大家一个小技巧,我们把app对象给挂载到window对象上,然后我们在调整控制器到视角最好的位置,此时打开控制台,输入app.camera.position和app.controls.target
在这里插入图片描述
此时我们就可以看到对应的参数,然后我们在设置一下就ok了

camera.position.set(18, 364, 397);
controls.target = new THREE.Vector3(2, 44, -32);

模型下载链接:https://download.csdn.net/download/qq_39503511/20044899
此时看到的应该就和上面的效果图是一样的了

创建天空盒

  1. 在ZThree类中加入loaderSky方法用来加载模型
// 加载天空盒
  loaderSky(path) {
    let skyTexture = new THREE.CubeTextureLoader()
      .setPath(path)
      .load([
        "px.jpg", //右
        "nx.jpg", //左
        "py.jpg", //上
        "ny.jpg", //下
        "pz.jpg", //前
        "nz.jpg" //后
      ]);

    this.scene.background = skyTexture;
    this.renderer.setClearAlpha(1);
  }
  1. 在vue文件中调用此方法
app.loaderSky('texture/sky/');

在这里插入图片描述
此时我们就已经成功的创建了天空盒,天空盒图片素材命名规则
在这里插入图片描述
现在创建好模型和天空盒了,接着我们来给场景中添加点车流,让小车在该城市中行驶
智慧城市(三): 地址

  • 15
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃土豆丝嗯z

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值