基于的三维模型平移旋转实现
0 引言
随着计算机技术的不断发展,B/S框架下的三维地理信息正逐渐完善,所能展现的功能也越来越丰富,随着国家“实景三维中国建设”项目的启动,三维地理信息产业得到了发展的机遇。而传统桌面端的三维可视化已经不能满足互联网世界的需求,通过网页进行三维模型与三维地形的三维可视化与模型管理正火速崛起。
目前国内外基于Cesium进行三维可视化的研究有:乐世华等基于Cesium框架,综合使用ajax技术与nginx反向代理技术等实现了流域的虚拟场景搭建,能够实现三维浏览、信息查询等功能[1];马洪成等基于Cesium、PostgreSQL、Tomcat、
GeoServer等实现了大数据平台的计算模型与数据挖掘结果三维展示的任务[2];周文辉等以Cesium为三维开发框架,针对倾斜摄影三维模型进行功能开发,将倾斜摄影萨内模型转为3D Tiles格式,并实现了数据浏览、属性查询和绘制等功能,扩展了Cesium的应用面[3];韩昕熠等基于Cesium进行功能开发,设计了违建电子沙盘的系统框架与数据处理流程,实现了多媒体信息展示[4]。此外,还有许多优秀的应用[5-7]。本文在之前学者研究的基础上,以开源三维地理框架Cesium为基础,进行三维模型平移转换关键技术的研究,实现了三维模型的平移旋转等功能。
1 简介
Cesium 是一个开源的三维地理信息代码库,其基于JavaScript语言,具有跨浏览器、跨平台、高精度、高性能、支持CZML数据等特性。Cesium基于WebGL底层框架进行开发,并在WebGL的基础上做了许多算法优化,能够更加流畅地海量加载三维模型数据与全球的遥感影像数据和地形数据,能够实现真正的二三维一体化。因为其优秀的特性,Cesium在全球获得了广泛的关注,Cesium API内容丰富详尽,拥有不少优秀的应用,像国内超图的WebGL引擎也是基于Cesium改造。
3D Tiles是一种专门应用于大规模三维地理数据的流式传输大规模异构和海量渲染而设计的一种格式,由Cesium在2016年推出。3D Tiles是在gltf格式的基础上,使用LOD(Levels of Detail)技术,具有适应性强、灵活度高等优点,能够流畅地展示大规模三维模型、点云数据、地形数据等。
2 关键技术研究
2.1 坐标转换
在Cesium中,需要进行地理坐标系与笛卡儿空间直角坐标系(Cartesian3)之间的转换才能在前端进行可视化展示。地理坐标系以地球质心为坐标原点、以经纬度为单位表示,Cesium 中的地理坐标为WGS-84 坐标系(World Geodetic System 1984),如图1(a)所示;笛卡儿空间直角坐标系的单位以米表示,如图1(b)所示。
图1 坐标系示意图
在Cesium中没有具体的经纬度对象,将地理坐标转换为笛卡儿空间直角坐标系(Cartesian3),其原理为将地理坐标系中的经度(longtitude)、纬度(latitude)以及高度(altitude)转换为笛卡儿空间直角坐标系的x、y、z。
2.2 转换矩阵
三维模型平移转换原理为:根据前后经纬度和高度计算变换矩阵——平移矩阵;根据三维模型的边界球体中心点的笛卡儿坐标得到经纬度坐标;根据经纬度和高度0,得到地面笛卡儿坐标;根据经纬度和需要的高度,得到偏移后的笛卡儿坐标;计算坐标变换,得到新的笛卡儿坐标。旋转原理为:通过转换矩阵,将原始坐标值与变换矩阵相乘,得到旋转后新的坐标值。(x,y,z)为初始点坐标,a、b、c为模型在X轴、Y轴、Z轴上平移的距离,得到的结果为(x′,y′,z′)。三维模型平移转换矩阵如公式(1)所示。
β为模型旋转角度,三维模型绕X轴旋转矩阵如公式(2)所示,绕Y轴旋转矩阵如公式(3)所示,绕Z轴旋转矩阵如公式(4)所示。
3 平移旋转实现
将三维模型进行切片处理,转换为3D Tiles格式数据,通过Cesium的Marix4下的multiply方法进行矩阵计算,具体调用为(left,right,result),其中left为第一个矩阵,right为第二个矩阵,计算结果存储到result中,平移旋转结果如图2所示。
图2 平移旋转效果图
4 结语
本文通过研究三维坐标系统下经纬度转换原理与三维模型平移转换关键技术,使用开源三维地理信息框架Cesium实现了三维模型的平移转换功能,能够将三维模型进行位置的微调,提高可视化的效果与显示精度,在三维模型展示、卫星遥测等方向有着广泛的应用前景。
[1]乐世华,张煦,张尚弘,等.基于Cesium的WebGIS流域虚拟场景搭建[J].水利水电技术,2018,49(5):90-96.
文章来源:《测绘地理信息》 网址: http://www.chdlxx.cn/qikandaodu/2021/0225/472.html