使用three.js/webgl开发智慧城市场景的一些总结

本文介绍了基于three.js开发地图引擎的过程,包括城市建筑的批量生成、浮动标注的实现、图标告警闪烁、城市流光效果、区域轮廓绘制、告警动画圈和热力图的制作。作者分享了各种技术细节,如使用geojson解析建筑数据、合并mesh以优化性能、创建浮动标注的两种方法等,并探讨了扫描效果和后期泛光的实现策略。文章适合three.js初学者和三维可视化开发者阅读。

最近在做自己的地图引擎,基于three.js,站在巨人的肩膀上,稍等补充地址出来,大家有兴趣的可以体验一下,在线地址
城市场景、小场景,我觉得是未来三维可视化的重点方向,市场上基于three.js的三维引擎也不少,比如蜂鸟云地图、thing.js、木棉树,本篇博客主要介绍一些基本场景的实现方式,目的是让初学者只使用three.js也能轻松构建简易的城市场景。
一、城市建筑
城市建筑是城市场景中不可缺少的部分,城市建筑因为其海量性的特点,因此只能批量生成。我们需要先获取城市的建筑面数据,即底部为任意多边形,包含高度属性的面数据,大部分的做法是面数据保存于geojson(地理格式的json)中,然后前端进行解析。
我们根据基础面数据和高度,构建底部面、侧面以及顶部面,并使用earcut将底面、侧面、顶面切成一个个绘制需要的三角形的顶点和索引的组合,关于方法,我此前已经做过介绍,需要补充的是城市建筑常会进行贴图展示,所以我们计算三角面的时候需要对三角面的纹理坐标uv(用于映射贴图到多边形中的位置)进行计算,最终赋值到Geometry的faceVertexUvs[0]中。

var geometry = new THREE.Geometry();
geometry.
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

evomap

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

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

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

打赏作者

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

抵扣说明:

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

余额充值