一、概述

倾斜摄影的基本原理是利用无人机、固定翼航测飞机或其他多传感器平台,从多个角度采集高分辨率影像数据,并结合摄影测量、计算机视觉等技术,进行点云重建、网格构建、纹理映射等处理,最终生成高精度的三维模型。该技术最初广泛应用于城市建模、测绘制图、智慧城市等领域,随着硬件性能提升和算法优化,其应用场景不断拓展至BIM(建筑信息建模)、应急救援、文物保护、数字孪生等方向。
早期,倾斜摄影生成的三维模型主要采用OSGB(OpenSceneGraphBinary)格式进行存储,并依托OpenSceneGraph(OSG)等专业图形库在PC端进行渲染。这种方式虽然在本地能够实现高效渲染,但开发门槛较高,缺乏标准化的Web端解决方案,使得大规模三维数据的共享和跨平台应用受到一定限制。代表性的商业软件包括SkylineTerraExplorer、SuperMapiDesktop、BentleyContextCapture等,它们能够高效处理倾斜摄影数据,并在本地提供高质量渲染支持。
随着WebGL、WebGPU等前端图形渲染技术的成熟,以及现代浏览器对大规模三维数据的支持能力不断增强,倾斜摄影模型的渲染从传统PC端逐渐向Web端转移。2016年,Cesium团队推出了3DTiles格式,这是一种基于流式加载优化的多层次瓦片(LOD,LevelofDetail)数据格式,能够在Web环境下高效加载和渲染大规模三维数据。2022年,该格式正式成为OGC(OpenGeospatialConsortium,开放地理空间联盟)标准,进一步推动了其在全球范围的应用。得益于3DTiles标准的普及,GoogleEarth、ArcGISEarth等平台开始提供基于Web的三维城市可视化解决方案。例如,GoogleEarth的3DTiles数据已覆盖全球主要城市,支持在浏览器中流畅查看高精度三维场景。

二、技术难点

● 数据规模庞大:高精度3D Tiles模型可达数十GB,对Web端内存管理和网络带宽提出极高要求。
● 硬件与网络瓶颈:浏览器内存限制和网络延迟导致大规模数据加载困难,需避免一次性全量加载。
● 渲染性能优化:在有限资源下需确保流畅交互,需解决模型抖动、浮点精度不足、动态细节控制等问题。
● 坐标系差异:3D Tiles基于WGS84球面坐标系,而平面场景(如CGCS2000)需坐标变换以实现精准融合。

三、技术思路

1.剖分与分层机制

3D Tiles的核心思想是将大规模三维模型分割为多个小块(Tile),并根据场景的视距和视角动态加载和渲染这些小块。具体来说,3D Tiles采用了以下剖分和分层机制:
空间剖分。将三维模型按照空间位置进行划分,通常采用四叉树(Quadtree)或八叉树(Octree)结构。这种剖分方式可以根据场景的复杂度和视距动态调整模型的细节层次。
分层组织。将剖分后的小块按照细节层次(LOD)进行组织,形成树状结构。每一层对应一个特定的细节级别,较高层的Tile包含更粗略的模型数据,而较低层的Tile则包含更精细的细节。
流式加载。在渲染过程中,系统根据当前视点的位置和视角,动态加载所需的Tile数据。这种机制避免了将整个模型一次性加载到内存中,从而显著减少了数据传输和内存占用。
通过上述机制,3D Tiles实现了高效的三维模型加载和渲染,尤其是在WebGL等资源受限的环境中,能够提供流畅的用户体验。
在这里插入图片描述

2.LOD机制:动态细节控制的核心

LOD(Level of Detail,细节层次)是3D Tiles中实现高效渲染的核心技术之一。LOD的基本原理是根据视点与模型的距离,动态调整模型的细节层次,从而在保证视觉效果的同时,减少渲染的计算量。
LOD技术通过为同一模型创建多个不同细节层次的版本,在渲染时根据视点的位置和视角选择合适的版本。具体来说:
多分辨率模型。为每个模型生成多个不同分辨率的版本,高分辨率版本用于近距离观察,低分辨率版本用于远距离观察。
动态切换。在渲染过程中,系统根据视点与模型的距离,动态切换不同分辨率的模型版本。这种切换通常基于屏幕空间几何误差(Screen Space Geometric Error)的标准。
屏幕空间几何误差是LOD切换的重要标准,它表示模型在屏幕上显示的几何误差大小。具体来说:
几何误差计算。对于每个Tile,系统计算其在屏幕上的投影误差。如果误差小于预设阈值,则使用当前Tile;否则,切换到更精细的Tile。
误差阈值设置。误差阈值通常根据场景的需求和设备的性能进行调整。较高的阈值可以减少Tile的切换频率,但可能导致渲染质量下降;较低的阈值可以提高渲染质量,但会增加计算开销。
屏幕空间几何误差计算代码如下:
在这里插入图片描述
error为几何误差
screenHeight为屏幕像素高度
distance为与相机的距离
fov为相机垂直视角
在3D Tiles中,LOD机制通过以下方式实现:
Tile树结构。3D Tiles将模型组织为树状结构,每个节点对应一个Tile,并根据LOD层次进行划分。
动态加载与卸载。系统根据视点的位置和视角,动态加载所需的Tile,并卸载不再需要的Tile。这种机制避免了不必要的资源浪费。
渐进式渲染。在加载Tile时,系统优先加载粗略的Tile,然后逐步加载更精细的Tile,从而实现渐进式渲染。通过LOD机制,3D Tiles能够在保证渲染质量的同时,显著降低计算和传输的开销,尤其适用于大规模三维模型的渲染。

3.LRU缓存机制

LRU(Least Recently Used,最近最少使用)缓存是一种常见的缓存淘汰策略,在3D Tiles的渲染中,LRU缓存被广泛应用于Tile数据的存储和管理。LRU缓存的基本原理是优先淘汰最近最少使用的数据,从而为新数据腾出空间。具体来说:
缓存数据结构。LRU缓存通常采用哈希表和双向链表结合的数据结构。哈希表用于快速查找数据,双向链表用于记录数据的访问顺序。
数据淘汰策略。当缓存空间不足时,系统会淘汰链表中最近最少使用的数据,并将其从缓存中移除。
在3D Tiles的渲染中,LRU缓存主要用于Tile数据的存储和管理。具体应用包括:
Tile数据缓存。将加载的Tile数据存储在LRU缓存中,避免重复加载相同的数据。
动态缓存管理。根据Tile的访问频率,动态调整缓存中的数据。频繁访问的Tile会被保留在缓存中,而较少访问的Tile则会被淘汰。
内存优化。通过LRU缓存,系统可以有效管理内存资源,避免内存占用过高。
通过缓存Tile数据,系统可以避免重复加载相同的数据,从而减少加载时间。LRU缓存能够动态管理内存资源,避免内存占用过高,从而提高系统的稳定性。

4.坐标变换

在3D Tiles中,模型数据通常定义在WGS84坐标系下,而在WebGL渲染中,模型一般需要转换到平面坐标系下,以提高渲染精度和效率。要实现这种需求,需要引入ENU矩阵概念,即WGS84球面上某点的模型矩阵,X轴指向东,Y轴指向北,Z轴指向上。通过该点的三个轴我们就可以构建出对应的ENU矩阵,比使用该矩阵的逆将3DTiles数据变换到平面坐标系原点附近,这样可以更见方便与原有平面场景融合同时也能提高3D Tiles数据的渲染精度。
坐标变换的必要性:
浮点精度优化。WebGL单精度浮点数在处理远距离WGS84坐标时,仅能保持6-7位有效数字,导致模型顶点抖动(Jittering)。将坐标原点移至局部ENU坐标系,可将坐标值范围缩小至米级,显著提升浮点计算精度
场景融合需求。平面坐标系下的建筑、道路等模型通常基于2000国家大地坐标系(CGCS2000),需通过坐标变换实现与3D Tiles数据的对齐
在3D Tiles渲染流程中,将WGS84坐标系下的球面模型数据转换为平面坐标系,是提升渲染精度与效率的关键步骤。通过引入ENU(东-北-天)坐标系及其逆矩阵变换,可实现模型与现有平面场景的无缝融合。
以下是技术实现路径的深度解析,ENU矩阵的构建与逆矩阵应用:
计算ENU坐标系原点。提取3D Tiles根节点的包围盒中心点,将其作为ENU坐标系原点。经纬度转笛卡尔坐标公式如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
公式中参数分别为:
纬度 ϕ(北纬为正,南纬为负)
经度 λ(东经为正,西经为负)
海拔高度 h
第一偏心率平方:在这里插入图片描述
a为赤道半径6378137m,b为极半径6356752.3142m。
卯酉圈曲率半径 N:
在这里插入图片描述
构建ENU变换矩阵。首先以3D Tiles根节点包围盒的中心点作为原点,分别计算出指向正东(X轴)、正北(Z轴)和正上(Y轴)的单位向量;接着,利用这三个单位向量作为正交基构造ENU坐标系的旋转矩阵;最后,将中心点的坐标融合到该旋转矩阵中,得到最终的ENU矩阵。
应用逆矩阵实现坐标平移。利用ENU矩阵的逆矩阵,对3DTiles数据根节点进行平移和旋转变换,将其调整至坐标原点附近进行渲染。

5.Easytwin中加载3D Tiles数据:

EasyTwin基于上述技术方案,实现了3DTiles数据的高效渲染。用户无需依赖其他第三方库,即可将3DTiles数据加载至三维场景中。借助EasyTwin场景配置面板,用户不仅可以轻松设置3DTiles数据地址,还能选择单独加载该数据或与影像数据同时加载显示。
EasyTwin 倾斜摄影三维模型和影像数据叠加显示

易知微最近发布了最新的2025数字孪生与智能算法白皮书,白皮书内容包括数字孪生和智能算法的融合应用、企业数字化转型的最新技术成果以及重点行业的解决方案,感兴趣的朋友可以前往官网下载了解详情~
《2025数字孪生与智能算法白皮书》下载地址:​easyv.cloud/references/detail/125.html/?t=yzwsm

易知微基于多年在数字孪生及数据可视化领域丰富实践,沉淀了诸多经验成果,欢迎大家互相交流学习:
《数字孪生世界白皮书》下载地址:https://easyv.cloud/references/detail/51.html/?t=yzwsm
《数字孪生行业方案白皮书》下载地址:https://easyv.cloud/references/detail/120.html/?t=yzwsm
《港口数智化解决方案》下载地址:https://easyv.cloud/references/detail/121.html/?t=yzwsm

想申请易知微产品免费试用的客户,欢迎点击易知微官网申请试用:https://easyv.cloud/?t=yzwsm

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐