通过数字孪生城市实验室参与团队的努力,目前数字孪生城市开源社区已经完成了基础开发,开始引入无人驾驶等新型功能,以提升数字孪生城市平台作为新一代智慧城市的核心作用和价值。按照计划,数字孪生城市开源社区目前重点解决点云技术的引入和完善等需求。
点云模型(Point Clouds Model)是3D Tiles规范中定义的基础模型之一。点云一般用于动态建模、反向建模,特别是高精度的点云模型,是实现关键位置监测、自动驾驶的基础。
上周(2021.7.12-2021.7.17)重点开发Cesium 3D Tiles格式数据文件读写功能,实现点云切片模型读写,初步实现了点云模型的读写与逐点创建功能,相关代码已经发布到开源社区。
简单地讲,点云是将大批量点数据组织在一起,在视觉效果上看起来像是一团云。3D Tiles定义了点云切片模型的点数据组织方式。点云模型使用了与b3dm、i3dm切片模型类似的数据组织方法,在3D Tiles规范中,每个点就是一个要素,切片中每个点都要保存相同的数据项。
数字孪生城市开发团队完成了点云模型基本读写功能的开发,可以为模型逐点增加数据。由于点云数据的规模一般都是很大的,点数据会非常多,存储时应该进行压缩,减小文件,更有利于网络传输。
3D Tiels规范定义了点数据的压缩方案,使用了开源项目Draco进行压缩和解压。
Draco是Google开发的一个C++库,用于压缩和解压缩 3D 几何网格(geometric mesh)和点云(point cloud)。Draco可以显著缩小 3D 图形文件的大小,同时对 3D 图形的观看者来说又不会严重影响视觉效果,经过Draco压缩的文件可以在网络上更快捷的传输。Draco还提供了JavaScript代码。
目前需要采用C#实现Draco,暂有三种方案:C++/CLI、JavaScript引擎、WebAssembly引擎。
为了吸引优秀的人才参与,数字孪生城市实验室把C#实现Draco的需求开放出来,作为揭榜挂帅的第2个题目,请大家参考数字孪生城市实验室公众号发布的揭榜挂帅系列。
上周分享了点云技术的一些知识,本周仍然给各位做一个知识分享。
附录:Point Clouds with 3D Tiles
欢迎更多开发人员参与数字孪生城市开源社区。
CesiumSharp项目地址:
https://openii.cn/digitalcity/cesiumsharp
按照数字孪生城市开源社区计划,研发团队将继续围绕数字孪生城市平台开源项目的开发和开源社区的建设展开,目标是设计数字孪生城市场景,开发场景数据化所需的工具。
加入数字孪生城市开源社区说明:
https://openii.cn/digitalcity/community
评论