vue2+three.js做出一个精美的3D地图——4.在地图上添加模型或者精灵sprite

本文介绍了如何在three.js中引入外部模型(如故宫模型),使用GLTFLoader加载并定位模型,添加精灵(Sprite)以及设置光源,以实现3D地图的丰富内容展示。


前言

代码地址 : https://gitee.com/txcst/3-dmap.git 只想好好做开源。

上一期我们已经把地图构建好了,现在我们给地图添加一些模型和精灵

一、如何引入外部模型

1.three.js想要使用模型,需要使用加载器,它本身内置了很多加载器,在 ‘three/examples/jsm/loaders/’ 地址下,可以根据自己的需要去找,简单介绍几个常用的加载器,

  • TextureLoader(),纹理加载器,加载一张图片,返回的是纹理
  • GLTFLoader(),gltl模型加载器,会返回一个gltf模型对象,
  • FileLoader(),文件加载器,返回字符串

2.加载模型,打算在北京放置一个故宫的模型,在sketchfab白嫖了一个免费的模型,我们把他下载到本地,现在我们要开始处理两件事

  1. 获取北京的地图坐标
  2. 引入模型放置到北京的坐标上
先获取坐标

我们来到generateGeometry方法,再循环坐标处,增加一个筛选,添加到special数组里

 jsondata.features.forEach((elem) => {
   
   
          if (
            elem.properties.name == "陕西省" ||
            elem.properties.name == "北京市"
          ) {
   
   
            let obj = {
   
   
              name: elem.properties.name,
              arr: [projection(elem.properties.center)],
            };
           special.push(obj);
          }
引入模型
import {
   
    GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader";

注意,gltf模型的scene是我们要使用到,我们调整模型的坐标轴和角度和大小,使他贴到地图上,然后加到地图的map对象里,记住要加到地图的对象里,不要直接加在scene里,这样会使坐标对不上

  • position:模型坐标方位
  • rotation:模型的角度
  • scale:模型的大小
  //获取故宫的模型
    GetGLTFLoader
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值