基于WebGL的历史文化名城三维可视化研究

2022-07-19 09:53刘叶伟
信息记录材料 2022年5期
关键词:文化名城单体可视化

刘叶伟

(江西理工大学 江西 赣州 341000)

0 引言

历史文化名城是指由国务院批准公布的具有重大历史价值或革命纪念意义、保存文物特别丰富的城市[1]。经过多年的探索,对于历史文化名城的保护意识也在不断提高,随着现代技术手段的发展,传统的CAD技术难以实现对大量的时空数据进行管理和分析[2]。历史文化名城的文化遗产体系量大面广,数字化信息保护极其复杂多样,想要完整地保存所有建筑遗产的二维图纸、三维模型、历史规划等信息是极其困难的,缺少一个完善的、能够整合所有信息的平台。

王茹等[3]比较早地基于BIM平台针对明清古建筑进行数字化建模研究,设计了明清古建筑构件信息模型系统,但该系统只针对建筑的构件,无法完整还原古建的原本面貌;也有学者针对历史建筑三维模型的建立和CAD图纸的绘制做出了系统化研究[4-5],2021年,杨开等[6]分析中国的历史文化名村名镇,提出了构建全国名城镇村保护管理信息化“一张图”概念。

国内对古建筑的精细化建模和信息管理平台的构建开展了大量的研究,但是针对历史文化名城进行Web端的可视与数据管理一体化的研究较少,主要原因在于:历史文化名城内建筑遗产的分布不集中,每一个区域的建筑和文化遗产特点也不相同,传统对地理空间进行划分常用的是网格索引,建筑遗产不集中分布会导致很多网格内没有任何空间数据,造成查询效率降低[7-8]。

本文以国家历史文化名城桐城作为研究对象,针对上述出现的问题,提出了针对历史文化名城多维数据的通用搜索树(Generalized Search Trees,GiST)索引方法,实现了海量数据的快速检索;在此基础之上,研究了古建筑三维模型的格式标准化转换方法,然后改进倾斜摄影单体化技术,实现了Web端的三维实景模型与数据信息的集成交互,从时空层次完成历史文化名城三维模型的可视化与渲染。

1 索引构建方法

1.1 历史文化名城数据需求分析

本文以桐城市为例进行研究,桐城是安徽省著名的历史文化名城之一,也是中国文学史上最大的散文流派“桐城派”的故乡[9]。通过对桐城市文物保护单位和住房与城乡建设局等部门的走访调研,该地区历史遗产的数字化信息主要包括三维激光点云数据、图像数据、工程图纸与属性信息。

三维激光点云数据是无序且海量的,需要通过一定的方法进行精简并建立高精度的建筑模型,然后转换为标准格式存储;图像数据同样作为建筑遗产的重要资料,以二进制的形式存储在数据库中并展示,提高视觉效果,无人机用倾斜摄影方法拍摄的像片将建立倾斜模型,作为Web端的底层数据;工程图纸包括平立剖图、施工图等,一般为dug、dxf格式存储;属性信息是对建筑遗产的信息的描述,包含建筑现状、建筑类型、建筑功能等,与单体建筑进行关联然后存储在不同的数据表中,便于对建筑遗产的全方位认识和保护。

1.2 多维度数据索引构建方法

历史文化名城多层次的数据索引的快速构建不仅要能够解决海量数据的查询问题,还要针对三维模型来提升模型的定位、访问和存储效率。本文从时间、空间和单体建筑3个层次上进行历史文化名城数据索引的构建,将单体建筑关联到空间分布特征和时间特征关系中,实现了面向时空的数据查询和分析需求。多层次数据索引构建内容见图1。

(1)基于R树构建多维度空间数据索引。本文基于GIST框架应用R树算法构建空间索引,以每一栋建筑遗产的位置作为R树的数据单元构建R树,整个中国的版图作为根节点,查询时以“缩小范围”的查询思想,从上往下按照国家-城市-行政区-建筑遗产单体,一层一层查找。R树索引有利于提高对维空间数据的实时流畅渲染,从而保证了快速的空间查询和分析。

(2)基于建筑属性的时空数据关联。以单栋建筑为基础构建的时间索引,既能与空间索引的最小数据单元相对应,又能实现通过时间查询建筑和通过建筑查找年代信息的双向查询。

2 基于WebGL的历史文化名城三维可视化

本文从两方面开展基于WebGL的历史文化名城三维可视化研究:(1)研究高效的建筑三维模型格式转换方法,能够快速转换为3D Tiles格式;(2)基于WebGL实现历史文化名城多源数据的可视化。

2.1 格式转换方法

本文基于三维激光点云通过Sketchup软件建立了SU格式的高精度三维模型。无论是SU格式的模型还是通过3dmax建立的mx模型,均无法直接通过GPU渲染显示在浏览器上,因此需要对模型进行格式转换,为保证转换后模型属性的完整性,避免纹理丢失(图2),并且符合建筑的实际组成,应根据既定规则进行模型拆分。

SU格式的模型包含大量的建筑语义信息,而OBJ文件仅包含几何信息和材料属性,因此,OBJ文件是最佳的转换媒介。具体来说,在转换过程中,将遍历SU文件中的所有对象,并根据模型分割的原则将模型的几何信息和材料属性导出到较小的OBJ文件中,有关对象语义属性的信息由JSON文件保留,再将由OBJ文件转换得到的二进制gltf(glb)嵌入到B3dm数据中。最终,3D Tiles数据由B3dm数据和tileset.json文件组成。这种转换过程见图3。

将三维模型从SU转换到3D Tiles的过程不仅包含几何信息、语义信息、材料属性的转换,还包括坐标系转换,SU模型中的构件是局部坐标系,而3D Tiles显示的数据是全局坐标系,3D Tiles中的所有对象都有精确的位置坐标世界坐标系,所以必须转换坐标系。在本文使用的可视化引擎Cesium中使用的3D数字地球框架对应于全局笛卡尔坐标系,其中地心是坐标的原点[10],使用Cesium Ion完成两种坐标的转换。

2.2 单体化技术

针对倾斜三维模型的单体化方法,主要根据是否对模型进行切割来进行分类,将单体化方法主要分为切割单体化、ID单体化、动态单体化[11-12]。本文改进动态单体化方法,针对建筑密集、结构复杂的建筑,基于Cesium结合数据库研究出一种能够快速建立单体化矢量面然后录入建筑信息,与数据库实时交互的方法。

本文基于Cesium的动态单体化方法根据点、线、面、体之间的关系,主要依靠Cesium API中ClassificationPrimitive对象实现的。主要的流程思想见图4。

本文通过建筑物轮廓点在ClassificationPrimitive对象中创建PolygonGeometry多边形,该多边形可自定义凸出面与椭球面之间的距离,本文定义为30 m,由于ClassificationPrimitive对象是创建在地形或者三维模型上的,本文设置其ClassificationType属性为3D-Tiles,即对象贴着模型,则对象中的多边形跟随ClassificationType属性,使得原本高出建筑物的凸出面贴在建筑物上,完成单体化矢量面的创建,再定义鼠标移动事件,判断鼠标位置是否有对应的建筑并高亮显示。图5为通过本方法进行数据录入时的界面,图6为鼠标移动事件触发时建筑高亮显示。

2.3 三维可视化渲染

本文选择Cesium作为历史文化名城三维可视化的渲染引擎,Cesium是一个用于三维虚拟地球仪和地图的开放源代码库,它支持跨平台使用,而且不需要任何插件即可实现跨设备的动态可视化,该引擎使用LOD多细节层次渲染技术,减少了加载时间和内存占用,在大范围三维场景渲染中有很好的利用。图7为桐城市孔城老街的实景三维模型渲染图,该地区建筑合计400余栋,加载速度不足2 s,完全满足历史文化名城三维可视化的需求。

3 结语

本文首先研究了针对历史文化名城数据需求,提出了基于通用搜索树多维度数据索引方法,然后研究了三维模型的格式转换方法,实现了建筑模型到3D Tiles的快速转换,最后改进单体化技术用于建筑信息录入数据库,在Cesium引擎下实现了可视化渲染。

本文的研究在多个历史文化名城获得了成功应用,能够满足现阶段相关文保部门对历史遗产可视化的需求。未来将从对象和数据类型进行兼容实验等方面开展研究,提升普适性。

猜你喜欢
文化名城单体可视化
基于CiteSpace的足三里穴研究可视化分析
自然资源可视化决策系统
基于城市发展机制的历史文化名城保护研究
思维可视化
锂离子电容器自放电检测方法研究
液压单体支柱井下现场修复技术应用
自然资源可视化决策系统
走进文化遗存 一座底蕴深厚的历史文化名城:山西平遥古城
聚力打造“三城三都” 建设世界文化名城
美国 风暴