当前位置: 首页 > news >正文

OSM+three.js打造3D城市

对于我在 Howest 的研究项目,我决定构建一个 3D 版本的 Lucas Bebber 的“交互式讲故事的动画地图路径”项目。我将使用 OSM 中的矢量轮廓来挤出建筑物的形状并将它们添加到 3js 场景中,随后我将对其进行动画处理。

一、开发环境

为了使用 Node 和 npm 包,我选择使用 Vite.js。 Vite 是一款构建工具,旨在为现代 Web 项目提供更快、更精简的开发体验。 它由两个主要部分组成:

  • 开发服务器提供比本机ES 模块丰富的功能增强,例如极快的热模块替换(HMR)。
  • 将代码与Rollup 捆绑在一起的构建命令,预先配置为输出高度优化的静态资源以用于生产。

选择 Vite 是因为我过去在一些 Vue.js 项目中使用过它,因此对它很熟悉,事实证明它快速且可靠。鉴于其受欢迎程度,Three.js 被选为该项目的首选框架,因为这种受欢迎程度催生了大量的文档和教程。

因为我希望以后能够将这个研究项目集成到我自己的网站中,所以我决定将其开发为 npm 包。 这涉及到制作两个独立的项目——第一个用于实际的 3D 应用程序,另一个用于实现该应用程序的测试网站。

在项目文件夹中,npm init 命令用于创建 package.json 文件,其中包含包的元数据,例如名称、版本、依赖项、入口点和其他信息。 Index.js 将作为包的入口点,其中 src 文件夹包含代码,示例文件夹包含默认资源。

计划是将功能拆分为单独的 JavaScript 模块,以提高清晰度和可维护性,最终被初始化、全局、城市、动画和路径。

二、初始化模块

从初始化模块开始。 initialize() 函数创建并配置场景、相机、灯光和渲染器对象࿰

http://www.lryc.cn/news/165047.html

相关文章:

  • 02JVM_垃圾回收GC
  • ARM Linux DIY(八)USB 调试
  • 编程小白的自学笔记十四(python办公自动化创建、复制、移动文件和文件夹)
  • MySQL使用Xtrabackup备份到AWS存储桶
  • (高阶)Redis 7 第11讲 BIGKEY 优化篇
  • 一阶差分和二阶差分概念及其举例
  • 使用自定义注解和SpringAOP捕获Service层异常,并处理自定义异常
  • Kotlin(六) 类
  • 蓝桥杯官网练习题(灌溉)
  • 数据结构:树的概念和结构
  • 【GIS】栅格转面报错:ERROR 000864输入栅格: 输入不在定义的属性域内。 ERROR 000863: 无效的 GP 数据类型
  • 32 WEB漏洞-文件操作之文件下载读取全解
  • Linux之history、tab、alias、命令执行顺序、管道符以及exit
  • vcomp100.dll丢失怎样修复?5个靠谱的修复方法分享
  • Vue3自定义指令(directive)
  • 大数据课程L9——网站流量项目的实时业务处理代码
  • 【2023最新B站评论爬虫】用python爬取上千条哔哩哔哩评论
  • mysql设置max_sp_recursion_depth,sql_mode
  • 论文阅读:SERE: Exploring Feature Self-relation for Self-supervised Transformer
  • 遥感数据与作物模型同化应用:PROSAIL模型、DSSAT模型、参数敏感性分析、数据同化算法、模型耦合、精度验证等主要环节
  • Navicat15工具连接PostgreSQL15失败
  • 开源AI家庭自动化助手-手机控制家庭智能家居服务
  • 解决CSS定位错乱/疑难杂症的终极绝招==》从样式污染开始排查
  • 【笔记】《C++性能优化指南》Ch3 测量性能
  • 2023大数据面试总结
  • udev自动创建设备节点的机制
  • 访问局域网内共享文件时报错0x80070043,找不到网络名
  • Java定时器
  • 科普js加密时出现的错误
  • MYSQL优化——B+树讲解