CN113900797B - 基于虚幻引擎的三维倾斜摄影数据处理方法、装置及设备 - Google Patents
基于虚幻引擎的三维倾斜摄影数据处理方法、装置及设备 Download PDFInfo
- Publication number
- CN113900797B CN113900797B CN202111034334.7A CN202111034334A CN113900797B CN 113900797 B CN113900797 B CN 113900797B CN 202111034334 A CN202111034334 A CN 202111034334A CN 113900797 B CN113900797 B CN 113900797B
- Authority
- CN
- China
- Prior art keywords
- vertex
- information
- texture
- queue
- oblique photography
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种基于虚幻引擎的三维倾斜摄影数据处理方法、装置及设备,所述方法包括:将三维倾斜摄影数据所在平面坐标系的原点设置为虚幻引擎的内部坐标系的原点;将三维倾斜摄影数据导入虚幻引擎中;设置顶点显存池和纹理显存池,采用双队列机制将对应相机高度的LOD层级中相机视锥范围内的节点的顶点信息、纹理信息分别加载到顶点显存池、纹理显存池,并分别读取显示节点的顶点信息、纹理信息;利用显示节点的顶点信息绘制三角面模型,将显示节点的纹理信息映射至三角面模型。本发明能够大大提高三维倾斜摄影数据的加载和读取的速度,并借助虚幻引擎,启用独立线程对加载后的三维倾斜摄影数据进行延迟渲染,大大提高了渲染效率。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种基于虚幻引擎的三维倾斜摄影数据处理方法、装置及设备。
背景技术
随着智慧城市建设的不断推进,对于城市大规模的三维空间信息的表达、分析和管理的需求变得越来越迫切,而三维倾斜摄影数据是一种重要的地理信息数据,它基于精确的地理信息和丰富的影像纹理信息,是目前构建三维模型场景的主流技术手段之一。
本发明的发明人在对现有的三维倾斜摄影数据处理技术中发现,现有的数据结构在写入三维倾斜摄影数据时需要频繁读取硬盘和频繁操作内存申请释放,导致降低了对三维倾斜摄影数据加载和调度的速度。
发明内容
本发明提供一种基于虚幻引擎的三维倾斜摄影数据处理方法、装置及设备,以解决无法快速对三维倾斜摄影数据进行加载和调度的技术问题,能够基于虚幻引擎,采用双显存池与双队列的加载策略对三维倾斜摄影数据进行加载,大大提高了对三维倾斜摄影数据加载和调度的速度。
为了解决上述技术问题,本发明实施例第一方面提供了一种基于虚幻引擎的三维倾斜摄影数据处理方法,包括:使用平面坐标系对三维倾斜摄影数据进行加载,并将所述三维倾斜摄影数据所在平面坐标系的原点设置为虚幻引擎的内部坐标系的原点,以使所述虚幻引擎的内部坐标系对齐所述平面坐标系;
将所述三维倾斜摄影数据导入所述虚幻引擎中,识别得到所述三维倾斜摄影数据的顶点信息和纹理信息,并在所述虚幻引擎的内部坐标系中构建用于导入所述三维倾斜摄影数据的场景;
设置用于存储所述顶点信息的顶点显存池和用于存储所述纹理信息的纹理显存池,基于对应所述场景中显示不同精度的LOD层级,从所述三维倾斜摄影数据的顶点信息和纹理信息中,采用双队列机制将对应相机高度的LOD层级中相机视锥范围内的节点的顶点信息、纹理信息分别加载到所述顶点显存池、所述纹理显存池,并从所述顶点显存池、所述纹理显存池中分别读取显示节点的顶点信息、纹理信息;
利用所述显示节点的顶点信息绘制三角面模型,将所述显示节点的纹理信息映射至所述三角面模型,以获得待渲染的三角面模型。
作为其中一种改进,所述采用双队列机制将对应相机高度的LOD层级中相机视锥范围内的节点的顶点信息、纹理信息分别加载到所述顶点显存池、所述纹理显存池,并从所述顶点显存池、所述纹理显存池中分别读取显示节点的顶点信息、纹理信息的步骤,具体包括:
构建预设长度相同的队列A、队列B;
在开始加载所述三维倾斜摄影数据时,读取得到所述相机视锥范围内的节点的顶点信息、纹理信息的索引号,并根据所述索引号建立索引数组;
将所述索引号对应的节点的顶点信息、纹理信息分别加载至所述顶点显存池、所述纹理显存池,并将所述索引号加入队列A;
在任一次所述相机视锥范围发生改变后,读取得到当次相机视锥范围内的节点数据的索引号,并得到对应当次的索引号的索引数组;
将当次的索引号对应的节点的顶点信息、纹理信息分别加载至所述顶点显存池、所述纹理显存池;
根据所述队列A中数据的长度进行循环,将所述队列A中的索引号依次出队并与当次的索引数组中的索引号进行对比;其中,当所述队列A中的索引号存在于当次的索引数组中的时候,重新将所述队列A中存在于当次的索引数组中的索引号加入所述队列A,并从当次的索引数组中删除所述队列A中存在于当次的索引数组中的索引号,根据所述队列A中存在于当次的索引数组中的索引号,从所述顶点显存池、所述纹理显存池中分别读取所述队列A中存在于当次的索引数组中的索引号对应的节点的顶点信息、纹理信息;
当所述队列A中的索引号不存在于当次的索引数组中的时候,将所述队列A中不存在于当次的索引数组中的索引号加入队列B;
在根据所述队列A中数据的长度进行循环结束后,将当次的索引数组中的剩余索引号依次加入所述队列A;
根据所述剩余索引号,从所述顶点显存池、所述纹理显存池中分别读取所述剩余索引号对应的节点的顶点信息、纹理信息;
将所述队列B中的索引号依次加入所述队列A;其中,当所述队列A已满,所述队列B中存在尚未出队的索引号的时候,将所述队列B中尚未出队的索引号出队,并在所述顶点显存池、所述纹理显存池中将所述队列B中尚未出队的索引号对应的节点的顶点信息、纹理信息分别替换为当次的索引数组中的剩余索引号对应的节点的顶点信息、纹理信息;
根据当前的所述队列A中的索引号,从所述顶点显存池、所述纹理显存池中分别读取当前的所述队列A中的索引号对应的节点的顶点信息、纹理信息。
作为其中一种改进,所述利用所述显示节点的顶点信息绘制三角面模型的步骤,具体包括:
新建并初始化一个Mesh网格组件;
在所述Mesh网格组件中创建顶点数组;
根据调取的节点的顶点信息,调用StaticMeshCoponent类的绘制函数绘制所述三角面模型。
作为其中一种改进,所述将所述显示节点的纹理信息映射至所述三角面模型,以获得待渲染的三角面模型的步骤,具体包括:
将所述显示节点的纹理信息转换为材质信息;
利用纹理映射的方式将所述材质信息映射至所述三角面模型,以获得待渲染的三角面模型。
作为其中一种改进,所述将所述三维倾斜摄影数据导入所述虚幻引擎中,识别得到所述三维倾斜摄影数据的顶点信息和纹理信息,并在所述虚幻引擎的内部坐标系中构建用于导入所述三维倾斜摄影数据的场景的步骤,具体包括:
将所述三维倾斜摄影数据导入虚幻引擎;
输入参数,得到存储所述三维倾斜摄影数据的scp格式的描述文件,所述参数包括模型参考点和投影参数;
执行倾斜入库操作将所述三维倾斜摄影数据转为s3mb格式的数据文件;
在所述虚幻引擎的内部坐标系中新建场景,将执行倾斜入库操作后的描述文件添加至所述场景。
作为其中一种改进,在利用所述显示节点的顶点信息绘制三角面模型,将所述显示节点的纹理信息映射至所述三角面模型,以获得待渲染的三角面模型的步骤之后,所述方法还包括:
基于虚幻引擎,结合视锥剔除算法和遮挡剔除算法,启用独立线程对待渲染的三角面模型进行延迟渲染。
作为其中一种改进,在采用双队列机制将对应相机高度的LOD层级中相机视锥范围内的节点的顶点信息、纹理信息分别加载到所述顶点显存池、所述纹理显存池的步骤之前,所述方法还包括:
将所述三维倾斜摄影数据的纹理信息压缩成DirectXT3格式,并将压缩后的纹理信息存储在GPU内存中。
本发明实施例第二方面提供了一种基于虚幻引擎的三维倾斜摄影数据处理装置,包括:
坐标系对齐模块,用于使用平面坐标系对三维倾斜摄影数据进行加载,并将所述三维倾斜摄影数据所在平面坐标系的原点设置为虚幻引擎的内部坐标系的原点,以使所述虚幻引擎的内部坐标系对齐所述平面坐标系;
第一数据处理模块,用于将所述三维倾斜摄影数据导入所述虚幻引擎中,识别得到所述三维倾斜摄影数据的顶点信息和纹理信息,并在所述虚幻引擎的内部坐标系中构建用于导入所述三维倾斜摄影数据的场景;
第二数据处理模块,用于设置用于存储所述顶点信息的顶点显存池和用于存储所述纹理信息的纹理显存池,基于对应所述场景中显示不同精度的LOD层级,从所述三维倾斜摄影数据的顶点信息和纹理信息中,采用双队列机制将对应相机高度的LOD层级中相机视锥范围内的节点的顶点信息、纹理信息分别加载到所述顶点显存池、所述纹理显存池,并从所述顶点显存池、所述纹理显存池中分别读取显示节点的顶点信息、纹理信息;
三角面模型获取模块,用于利用所述显示节点的顶点信息绘制三角面模型,将所述显示节点的纹理信息映射至所述三角面模型,以获得待渲染的三角面模型。
作为其中一种改进,还包括:
延迟渲染模块,用于基于虚幻引擎,结合视锥剔除算法和遮挡剔除算法,启用独立线程对待渲染的三角面模型进行延迟渲染。
本发明实施例第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面任一项所述的基于虚幻引擎的三维倾斜摄影数据处理方法。
相比于现有技术,本发明实施例的有益效果在于,本发明提供的一种基于虚幻引擎的三维倾斜摄影数据处理方法、装置及设备,提出了双显存池与双队列的三维倾斜摄影数据加载策略,在游戏引擎中对三维倾斜摄影数据进行加载,大大提高了三维倾斜摄影数据的加载和读取的速度。
附图说明
图1是本发明提供的基于虚幻引擎的三维倾斜摄影数据处理方法的一个优选实施例的流程示意图;
图2是本发明提供的双队列机制的一个优选实施例的加载示意图;
图3是本发明提供的双队列机制的另一个优选实施例的加载示意图;
图4是本发明提供的双队列机制的又一个优选实施例的加载示意图;
图5是本发明提供的双队列机制的又一个优选实施例的加载示意图;
图6是本发明提供的双队列机制的又一个优选实施例的加载示意图;
图7是本发明提供的基于虚幻引擎的三维倾斜摄影数据处理装置的一个优选实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,是本发明提供的基于虚幻引擎的三维倾斜摄影数据处理方法的一个优选实施例的流程示意图。
本发明实施例第一方面提供了一种基于虚幻引擎的三维倾斜摄影数据处理方法,包括步骤S1至步骤S4,具体如下:
步骤S1:使用平面坐标系对三维倾斜摄影数据进行加载,并将所述三维倾斜摄影数据所在平面坐标系的原点设置为虚幻引擎的内部坐标系的原点,以使所述虚幻引擎的内部坐标系对齐所述平面坐标系。
需要说明的是,虚幻引擎中的倾斜摄影数据的加载首先需要对齐二者的坐标系。倾斜三维数据具备真实世界的坐标,带有地理坐标信息,而虚幻引擎的坐标系不具备真实地理意义,因此需要倾斜摄影数据所在坐标系的原点设置为虚幻引擎内部坐标系的原点(0,0,0)。
步骤S2:将所述三维倾斜摄影数据导入所述虚幻引擎中,识别得到所述三维倾斜摄影数据的顶点信息和纹理信息,并在所述虚幻引擎的内部坐标系中构建用于导入所述三维倾斜摄影数据的场景。
作为其中一种改进,所述将所述三维倾斜摄影数据导入所述虚幻引擎中,识别得到所述三维倾斜摄影数据的顶点信息和纹理信息,并在所述虚幻引擎的内部坐标系中构建用于导入所述三维倾斜摄影数据的场景,包括步骤S21至步骤S24,具体如下:
步骤S21:将所述三维倾斜摄影数据导入虚幻引擎。
步骤S22:输入参数,得到存储所述三维倾斜摄影数据的scp格式的描述文件,所述参数包括模型参考点和投影参数。
步骤S23:执行倾斜入库操作将所述三维倾斜摄影数据转为s3mb格式的数据文件。
步骤S24:在所述虚幻引擎的内部坐标系中新建场景,将执行倾斜入库操作后的描述文件添加至所述场景。
需要说明的是,描述文件和数据文件是空间三维数据模型的基础组成部分,描述文件以scp格式进行储存,包含了一个或多个瓦片树的根节点路径;数据文件通过瓦片树组织,瓦片树中每个瓦片对应一个s3mb格式的文件。
步骤S3:设置用于存储所述顶点信息的顶点显存池和用于存储所述纹理信息的纹理显存池,基于对应所述场景中显示不同精度的LOD层级,从所述三维倾斜摄影数据的顶点信息和纹理信息中,采用双队列机制将对应相机高度的LOD层级中相机视锥范围内的节点的顶点信息、纹理信息分别加载到所述顶点显存池、所述纹理显存池,并从所述顶点显存池、所述纹理显存池中分别读取显示节点的顶点信息、纹理信息。
需要说明的是,LOD(Level of Detail)是根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。通过在三维场景中显示不同精度的LOD层级,可以快速实现对同一个数据进行从清晰到模糊的查看。当屏幕视角距离某个地物近时(视锥范围大),引擎自动调用最清晰层的数据;当屏幕视角远离该地物时(视锥范围小),则自动切换为模糊层的数据。
s3mb数据文件中自带了多级金子塔的模型精度级别,可以通过对s3mb文件中所有子级进行索引编译后直接加载模型,读取其LOD级别和视锥范围信息,并将LOD层中相机视锥范围内的节点(node或patch)的顶点信息和纹理信息加载到显存。
视锥范围是一个金字塔形状,包含一个近端和远端裁切平面,定义了应在该空间内可见的最近和最远对象。所有其他视锥范围外的对象都被删除以节省处理时间。相机视锥是近端和远端裁切平面之间的可视查看区域的一个金字塔形状。近端裁切平面是能够看到的最接近相机的对象的点。远端裁切平面是能够看到的离相机最远的对象的点。
作为其中一种改进,所述采用双队列机制将对应相机高度的LOD层级中相机视锥范围内的节点的顶点信息、纹理信息分别加载到所述顶点显存池、所述纹理显存池,并从所述顶点显存池、所述纹理显存池中分别读取显示节点的顶点信息、纹理信息的步骤,具体包括:
如图2所示,构建预设长度相同的队列A、队列B;
如图3所示,在开始加载所述三维倾斜摄影数据时,读取得到所述相机视锥范围内的节点的顶点信息、纹理信息的索引号,并根据所述索引号建立索引数组;
将所述索引号对应的节点的顶点信息、纹理信息分别加载至所述顶点显存池、所述纹理显存池,并将所述索引号加入队列A;
如图4所示,在任一次所述相机视锥范围发生改变后,读取得到当次相机视锥范围内的节点数据的索引号,并得到对应当次的索引号的索引数组;
将当次的索引号对应的节点的顶点信息、纹理信息分别加载至所述顶点显存池、所述纹理显存池;
根据所述队列A中数据的长度进行循环,将所述队列A中的索引号依次出队并与当次的索引数组中的索引号进行对比;其中,当所述队列A中的索引号存在于当次的索引数组中的时候,重新将所述队列A中存在于当次的索引数组中的索引号加入所述队列A,并从当次的索引数组中删除所述队列A中存在于当次的索引数组中的索引号,根据所述队列A中存在于当次的索引数组中的索引号,从所述顶点显存池、所述纹理显存池中分别读取所述队列A中存在于当次的索引数组中的索引号对应的节点的顶点信息、纹理信息;
当所述队列A中的索引号不存在于当次的索引数组中的时候,将所述队列A中不存在于当次的索引数组中的索引号加入队列B;
如图5所示,在根据所述队列A中数据的长度进行循环结束后,将当次的索引数组中的剩余索引号依次加入所述队列A;
根据所述剩余索引号,从所述顶点显存池、所述纹理显存池中分别读取所述剩余索引号对应的节点的顶点信息、纹理信息;
如图6所示,将所述队列B中的索引号依次加入所述队列A;其中,当所述队列A已满,所述队列B中存在尚未出队的索引号的时候,将所述队列B中尚未出队的索引号出队,并在所述顶点显存池、所述纹理显存池中将所述队列B中尚未出队的索引号对应的节点的顶点信息、纹理信息分别替换为当次的索引数组中的剩余索引号对应的节点的顶点信息、纹理信息;
根据当前的所述队列A中的索引号,从所述顶点显存池、所述纹理显存池中分别读取当前的所述队列A中的索引号对应的节点的顶点信息、纹理信息。
需要说明的是,本发明实施例根据在指定屏幕分辨率下显示器上一次可显示的最细LOD层的节点个数,设置用于存储所述顶点信息的顶点显存池和用于存储所述纹理信息的纹理显存池,并构建预设长度相同的队列A、队列B。假设在指定屏幕分辨率下显示器上一次可显示的最细LOD层的节点个数为N,则两个显存池中可分别存放3N个节点的顶点信息和纹理信息,同时建立两个长度为3N的队列。
作为其中一种改进,在采用双队列机制将对应相机高度的LOD层级中相机视锥范围内的节点的顶点信息、纹理信息分别加载到所述顶点显存池、所述纹理显存池的步骤之前,所述基于虚幻引擎的三维倾斜摄影数据处理方法还包括:
将所述三维倾斜摄影数据的纹理信息压缩成DirectXT3格式,并将压缩后的纹理信息存储在GPU内存中。
需要说明的是,一个虚拟场景可能会载入数百幅纹理,而载入纹理会占用大量的GPU内存和磁盘空间。为解决这一问题,本发明实施例通过将这些纹理压缩成DirectXT3格式存储在GPU内存中,需要使用时再由GPU实时解压缩。
步骤S4:利用所述显示节点的顶点信息绘制三角面模型,将所述显示节点的纹理信息映射至所述三角面模型,以获得待渲染的三角面模型。
作为其中一种改进,所述利用所述显示节点的顶点信息绘制三角面模型,包括步骤S41至S43,具体如下:
步骤S41:新建并初始化一个Mesh网格组件。
步骤S42:在所述Mesh网格组件中创建顶点数组。
具体地,在所述Mesh网格组件中创建顶点数组包括:构建两个列表分别为顶点列表和顶点索引列表,顶点列表中存放即将绘制顶点的坐标信息,顶点索引列表中存放绘制顶点的索引顺序,此索引顺序应按三角面的顺时针方向排列。
步骤S43:根据调取的节点的顶点信息,调用StaticMeshCoponent类的绘制函数绘制所述三角面模型。
作为其中一种改进,所述将所述显示节点的纹理信息映射至所述三角面模型,以获得待渲染的三角面模型,包括步骤S44和步骤S45,具体如下:
步骤S44:将所述显示节点的纹理信息转换为材质信息。
步骤S45:利用纹理映射的方式将所述材质信息映射至所述三角面模型,以获得待渲染的三角面模型。
需要说明的是,材质决定了物体表面的外观,由此定义了五种物理属性:基色(表面的颜色或纹理,用于添加细节和颜色变化)、法线(材质表面法线信息,光影信息,表现材质凹凸感)、金属(表明是否具有金属观感)、环境光(环境光遮蔽,记录表面遮蔽效果)和粗糙度(具有最大粗糙度的表面不会有任何的光泽)。因此根据倾斜摄影纹理信息可以参照其物理属性使用三维图形引擎转化为对应的材质信息。
基础纹理映射可以看作是粘贴一个图像的局部到一个三角形上,这个动作通过在三角形的三个顶点上指定纹理坐标的方式完成,这些坐标“映射”每个顶点到纹理中的某个位置。纹理坐标随后***值,如此就针对每个像素给出了纹理坐标。碎片着色器随后抓取被纹理坐标所指向的纹理色彩,并且将其发送到帧缓存,最终形成映射后的图像。
作为其中一种改进,在利用所述显示节点的顶点信息绘制三角面模型,将所述显示节点的纹理信息映射至所述三角面模型,以获得待渲染的三角面模型的步骤之后,所述基于虚幻引擎的三维倾斜摄影数据处理方法还包括:
基于虚幻引擎,结合视锥剔除算法和遮挡剔除算法,启用独立线程对待渲染的三角面模型进行延迟渲染。
需要说明的是,本发明实施例所采用的虚幻引擎4的渲染过程通常包括以下几个步骤:(1)计算几何多边形(即Mesh);(2)决定表面材质特性,例如法线、粗糙度等等;(3)计算入射光照;(4)计算光照对表面的影响,并最终显示。
常规的前向渲染(Forward Shading)流程是将上述四个步骤依次执行完毕;而延迟渲染则将前两个步骤和后两个步骤分开到渲染管道中相互独立的两个部分来执行,具体的步骤如下:
Geometry阶段:将本帧所有的几何信息光栅化到G-buffer。G-Buffer通常由以下纹理信息构成:Diffuse,高光,法线和深度,高光因子存储在高光纹理的alpha通道。该过程对应虚幻引擎前向渲染的前两步。
Lighting阶段:以G-buffer作为输入(位置,法线)进行逐像素的光照计算。该过程对应前向渲染的后两步。
Composition阶段:将G-buffer中的贴图buffer和Lighting buffer融合,得到渲染结果。
在启用独立线程对所述第二三角面进行延迟渲染的过程中,结合视锥剔除算法和遮挡剔除算法优化渲染所需的时间。
具体地,视锥剔除是根据相机的视野(FOV)以及近裁减面(Near Plane)和远裁剪面(Far Plane)的距离,将可视范围外的物体排除出渲染,被剔除的物体将不会进入渲染的几何阶段(Geometry Stage)。视椎体剔除是减少渲染消耗的最有效手段之一,可以在不影响渲染效果的情况下大幅减少渲染涉及到的顶点数和面数。
遮挡剔除根据场景中物体的位置预先生成场景遮挡数据,运行时就可以剔除对应静态物体之后的其他物体。遮挡剔除是减少渲染消耗的有效手段之一,可以和视椎体剔除同时生效,进一步减少渲染的消耗。
遮挡剔除通常会使用深度缓冲器(Z-Buffer)。深度缓冲区原理就是把一个距离观察平面(近裁剪面)的深度值(或距离)与窗口中的每个像素相关联。在绘制每个像素之前,深度缓冲器的深度值和已经存储在这个像素的深度值会进行比较。新像素深度值小于原先像素深度值,则新像素值会取代原先的;反之,新像素值被遮挡,其颜色值和深度将被丢弃。
硬件遮挡查询是遮挡剔除的常用算法,其基本思想是,当和深度缓冲器中内容进行比较时,用户可以通过查询硬件来找到一组多边形是否可见的,且这些多边形通常是复杂物体的包围体。如果其中没有多边形可见,那么便可将这个物体裁剪掉。
本发明实施例提供的一种基于虚幻引擎的三维倾斜摄影数据处理方法,提出了双显存池与双队列的加载策略,在游戏引擎中对三维倾斜摄影数据进行加载,适合批量处理GB、TB级别的大数据,大大提高了三维倾斜摄影数据的加载和读取的速度,并且利用游戏引擎的延迟渲染结合视锥剔除算法和遮挡剔除算法对三维倾斜摄影数据进行渲染,解决了现有技术中由于海量数据的加载和计算而造成的渲染瓶颈的问题,大大提高了渲染的效率,为用户提供了快速和流畅的体验感。
参见图7,是本发明提供的基于虚幻引擎的三维倾斜摄影数据处理装置的一个优选实施例的结构示意图。
本发明实施例第二方面提供了一种基于虚幻引擎的三维倾斜摄影数据处理装置,包括:
坐标系对齐模块701,用于使用平面坐标系对三维倾斜摄影数据进行加载,并将所述三维倾斜摄影数据所在平面坐标系的原点设置为虚幻引擎的内部坐标系的原点,以使所述虚幻引擎的内部坐标系对齐所述平面坐标系;
第一数据处理模块702,用于将所述三维倾斜摄影数据导入所述虚幻引擎中,识别得到所述三维倾斜摄影数据的顶点信息和纹理信息,并在所述虚幻引擎的内部坐标系中构建用于导入所述三维倾斜摄影数据的场景;
第二数据处理模块703,用于设置用于存储所述顶点信息的顶点显存池和用于存储所述纹理信息的纹理显存池,基于对应所述场景中显示不同精度的LOD层级,从所述三维倾斜摄影数据的顶点信息和纹理信息中,采用双队列机制将对应相机高度的LOD层级中相机视锥范围内的节点的顶点信息、纹理信息分别加载到所述顶点显存池、所述纹理显存池,并从所述顶点显存池、所述纹理显存池中分别读取显示节点的顶点信息、纹理信息;
三角面模型获取模块704,用于利用所述显示节点的顶点信息绘制三角面模型,将所述显示节点的纹理信息映射至所述三角面模型,以获得待渲染的三角面模型。
作为其中一种改进,所述基于虚幻引擎的三维倾斜摄影数据处理装置还包括:
延迟渲染模块705,用于基于虚幻引擎,结合视锥剔除算法和遮挡剔除算法,启用独立线程对待渲染的三角面模型进行延迟渲染。
作为其中一种改进,所述第二数据处理模块703还用于:
构建预设长度相同的队列A、队列B;
在开始加载所述三维倾斜摄影数据时,读取得到所述摄像机视锥范围内的相机视锥范围内的节点的顶点信息、纹理信息的索引号,并根据所述索引号建立索引数组;
将所述索引号对应的节点的顶点信息、纹理信息分别加载至所述顶点显存池、所述纹理显存池,并将所述索引号加入队列A;
在任一次所述相机视锥范围发生改变后,读取得到当次相机视锥范围内的节点数据的索引号,并得到对应当次的索引号的索引数组;
将当次的索引号对应的节点的顶点信息、纹理信息分别加载至所述顶点显存池、所述纹理显存池;
根据所述队列A中数据的长度进行循环,将所述队列A中的索引号依次出队并与当次的索引数组中的索引号进行对比;其中,当所述队列A中的索引号存在于当次的索引数组中的时候,重新将所述队列A中存在于当次的索引数组中的索引号加入所述队列A,并从当次的索引数组中删除所述队列A中存在于当次的索引数组中的索引号,根据所述队列A中存在于当次的索引数组中的索引号,从所述顶点显存池、所述纹理显存池中分别读取所述队列A中存在于当次的索引数组中的索引号对应的节点的顶点信息、纹理信息;
当所述队列A中的索引号不存在于当次的索引数组中的时候,将所述队列A中不存在于当次的索引数组中的索引号加入队列B;
在根据所述队列A中数据的长度进行循环结束后,将当次的索引数组中的剩余索引号依次加入所述队列A;
根据所述剩余索引号,从所述顶点显存池、所述纹理显存池中分别读取所述剩余索引号对应的节点的顶点信息、纹理信息;
将所述队列B中的索引号依次加入所述队列A;其中,当所述队列A已满,所述队列B中存在尚未出队的索引号的时候,将所述队列B中尚未出队的索引号出队,并在所述顶点显存池、所述纹理显存池中将所述队列B中尚未出队的索引号对应的节点的顶点信息、纹理信息分别替换为当次的索引数组中的剩余索引号对应的节点的顶点信息、纹理信息;
根据当前的所述队列A中的索引号,从所述顶点显存池、所述纹理显存池中分别读取当前的所述队列A中的索引号对应的节点的顶点信息、纹理信息。
作为其中一种改进,所述三角面模型获取模块704还用于:
新建并初始化一个Mesh网格组件;
在所述Mesh网格组件中创建顶点数组;
根据调取的节点的顶点信息,调用StaticMeshCoponent类的绘制函数绘制所述三角面模型。
作为其中一种改进,所述三角面模型获取模块704还用于:
将所述显示节点的纹理信息转换为材质信息;
利用纹理映射的方式将所述材质信息映射至所述三角面模型,以获得待渲染的三角面模型。
作为其中一种改进,所述第一数据处理模块702还用于:
将所述三维倾斜摄影数据导入虚幻引擎;
输入参数,得到存储所述三维倾斜摄影数据的scp格式的描述文件,所述参数包括模型参考点和投影参数;
执行倾斜入库操作将所述三维倾斜摄影数据转为s3mb格式的数据文件;
在所述虚幻引擎的内部坐标系中新建场景,将执行倾斜入库操作后的描述文件添加至所述场景。
作为其中一种改进,所述延迟渲染模块705还用于:
基于虚幻引擎,结合视锥剔除算法和遮挡剔除算法,启用独立线程对待渲染的三角面模型进行延迟渲染。
作为其中一种改进,所述第二数据处理模块703还用于:
将所述三维倾斜摄影数据的纹理信息压缩成DirectXT3格式,并将压缩后的纹理信息存储在GPU内存中。
需要说明的是,本发明实施例所提供的一种基于虚幻引擎的三维倾斜摄影数据处理装置,能够实现上述任一实施例所述的基于虚幻引擎的三维倾斜摄影数据处理方法的所有流程,装置中的各个模块的作用以及实现的技术效果分别与上述实施例所述的基于虚幻引擎的三维倾斜摄影数据处理方法的作用以及实现的技术效果对应相同,这里不再赘述。
本发明实施例第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面任一实施例所述的基于虚幻引擎的三维倾斜摄影数据处理方法。
所述终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器、存储器。所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述终端设备的控制中心,利用各种接口和线路连接整个终端设备的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述终端设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (10)
1.一种基于虚幻引擎的三维倾斜摄影数据处理方法,其特征在于,包括:
使用平面坐标系对三维倾斜摄影数据进行加载,并将所述三维倾斜摄影数据所在平面坐标系的原点设置为虚幻引擎的内部坐标系的原点,以使所述虚幻引擎的内部坐标系对齐所述平面坐标系;
将所述三维倾斜摄影数据导入所述虚幻引擎中,识别得到所述三维倾斜摄影数据的顶点信息和纹理信息,并在所述虚幻引擎的内部坐标系中构建用于导入所述三维倾斜摄影数据的场景;
设置用于存储所述顶点信息的顶点显存池和用于存储所述纹理信息的纹理显存池,基于对应所述场景中显示不同精度的LOD层级,从所述三维倾斜摄影数据的顶点信息和纹理信息中,采用双队列机制将对应相机高度的LOD层级中相机视锥范围内的节点的顶点信息、纹理信息分别加载到所述顶点显存池、所述纹理显存池,并从所述顶点显存池、所述纹理显存池中分别读取显示节点的顶点信息、纹理信息;
利用所述显示节点的顶点信息绘制三角面模型,将所述显示节点的纹理信息映射至所述三角面模型,以获得待渲染的三角面模型。
2.如权利要求1所述的基于虚幻引擎的三维倾斜摄影数据处理方法,其特征在于,所述采用双队列机制将对应相机高度的LOD层级中相机视锥范围内的节点的顶点信息、纹理信息分别加载到所述顶点显存池、所述纹理显存池,并从所述顶点显存池、所述纹理显存池中分别读取显示节点的顶点信息、纹理信息的步骤,具体包括:
构建预设长度相同的队列A、队列B;
在开始加载所述三维倾斜摄影数据时,读取得到所述相机视锥范围内的节点的顶点信息、纹理信息的索引号,并根据所述索引号建立索引数组;
将所述索引号对应的节点的顶点信息、纹理信息分别加载至所述顶点显存池、所述纹理显存池,并将所述索引号加入队列A;
在任一次所述相机视锥范围发生改变后,读取得到当次相机视锥范围内的节点数据的索引号,并得到对应当次的索引号的索引数组;
将当次的索引号对应的节点的顶点信息、纹理信息分别加载至所述顶点显存池、所述纹理显存池;
根据所述队列A中数据的长度进行循环,将所述队列A中的索引号依次出队并与当次的索引数组中的索引号进行对比;其中,当所述队列A中的索引号存在于当次的索引数组中的时候,重新将所述队列A中存在于当次的索引数组中的索引号加入所述队列A,并从当次的索引数组中删除所述队列A中存在于当次的索引数组中的索引号,根据所述队列A中存在于当次的索引数组中的索引号,从所述顶点显存池、所述纹理显存池中分别读取所述队列A中存在于当次的索引数组中的索引号对应的节点的顶点信息、纹理信息;
当所述队列A中的索引号不存在于当次的索引数组中的时候,将所述队列A中不存在于当次的索引数组中的索引号加入队列B;
在根据所述队列A中数据的长度进行循环结束后,将当次的索引数组中的剩余索引号依次加入所述队列A;
根据所述剩余索引号,从所述顶点显存池、所述纹理显存池中分别读取所述剩余索引号对应的节点的顶点信息、纹理信息;
将所述队列B中的索引号依次加入所述队列A;其中,当所述队列A已满,所述队列B中存在尚未出队的索引号的时候,将所述队列B中尚未出队的索引号出队,并在所述顶点显存池、所述纹理显存池中将所述队列B中尚未出队的索引号对应的节点的顶点信息、纹理信息分别替换为当次的索引数组中的剩余索引号对应的节点的顶点信息、纹理信息;
根据当前的所述队列A中的索引号,从所述顶点显存池、所述纹理显存池中分别读取当前的所述队列A中的索引号对应的节点的顶点信息、纹理信息。
3.如权利要求1所述的基于虚幻引擎的三维倾斜摄影数据处理方法,其特征在于,所述利用所述显示节点的顶点信息绘制三角面模型的步骤,具体包括:
新建并初始化一个Mesh网格组件;
在所述Mesh网格组件中创建顶点数组;
根据调取的节点的顶点信息,调用StaticMeshCoponent类的绘制函数绘制所述三角面模型。
4.如权利要求1所述的基于虚幻引擎的三维倾斜摄影数据处理方法,其特征在于,所述将所述显示节点的纹理信息映射至所述三角面模型,以获得待渲染的三角面模型的步骤,具体包括:
将所述显示节点的纹理信息转换为材质信息;
利用纹理映射的方式将所述材质信息映射至所述三角面模型,以获得待渲染的三角面模型。
5.如权利要求1所述的基于虚幻引擎的三维倾斜摄影数据处理方法,其特征在于,所述将所述三维倾斜摄影数据导入所述虚幻引擎中,识别得到所述三维倾斜摄影数据的顶点信息和纹理信息,并在所述虚幻引擎的内部坐标系中构建用于导入所述三维倾斜摄影数据的场景的步骤,具体包括:
将所述三维倾斜摄影数据导入虚幻引擎;
输入参数,得到存储所述三维倾斜摄影数据的scp格式的描述文件,所述参数包括模型参考点和投影参数;
执行倾斜入库操作将所述三维倾斜摄影数据转为s3mb格式的数据文件;
在所述虚幻引擎的内部坐标系中新建场景,将执行倾斜入库操作后的描述文件添加至所述场景。
6.如权利要求1所述的基于虚幻引擎的三维倾斜摄影数据处理方法,其特征在于,在利用所述显示节点的顶点信息绘制三角面模型,将所述显示节点的纹理信息映射至所述三角面模型,以获得待渲染的三角面模型的步骤之后,所述方法还包括:
基于虚幻引擎,结合视锥剔除算法和遮挡剔除算法,启用独立线程对待渲染的三角面模型进行延迟渲染。
7.如权利要求1所述的基于虚幻引擎的三维倾斜摄影数据处理方法,其特征在于,在采用双队列机制将对应相机高度的LOD层级中相机视锥范围内的节点的顶点信息、纹理信息分别加载到所述顶点显存池、所述纹理显存池的步骤之前,所述方法还包括:
将所述三维倾斜摄影数据的纹理信息压缩成DirectXT3格式,并将压缩后的纹理信息存储在GPU内存中。
8.一种基于虚幻引擎的三维倾斜摄影数据处理装置,其特征在于,包括:
坐标系对齐模块,用于使用平面坐标系对三维倾斜摄影数据进行加载,并将所述三维倾斜摄影数据所在平面坐标系的原点设置为虚幻引擎的内部坐标系的原点,以使所述虚幻引擎的内部坐标系对齐所述平面坐标系;
第一数据处理模块,用于将所述三维倾斜摄影数据导入所述虚幻引擎中,识别得到所述三维倾斜摄影数据的顶点信息和纹理信息,并在所述虚幻引擎的内部坐标系中构建用于导入所述三维倾斜摄影数据的场景;
第二数据处理模块,用于设置用于存储所述顶点信息的顶点显存池和用于存储所述纹理信息的纹理显存池,基于对应所述场景中显示不同精度的LOD层级,从所述三维倾斜摄影数据的顶点信息和纹理信息中,采用双队列机制将对应相机高度的LOD层级中相机视锥范围内的节点的顶点信息、纹理信息分别加载到所述顶点显存池、所述纹理显存池,并从所述顶点显存池、所述纹理显存池中分别读取显示节点的顶点信息、纹理信息;
三角面模型获取模块,用于利用所述显示节点的顶点信息绘制三角面模型,将所述显示节点的纹理信息映射至所述三角面模型,以获得待渲染的三角面模型。
9.如权利要求8所述的基于虚幻引擎的三维倾斜摄影数据处理装置,其特征在于,还包括:
延迟渲染模块,用于基于虚幻引擎,结合视锥剔除算法和遮挡剔除算法,启用独立线程对待渲染的三角面模型进行延迟渲染。
10.一种终端设备,其特征在于,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的基于虚幻引擎的三维倾斜摄影数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111034334.7A CN113900797B (zh) | 2021-09-03 | 2021-09-03 | 基于虚幻引擎的三维倾斜摄影数据处理方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111034334.7A CN113900797B (zh) | 2021-09-03 | 2021-09-03 | 基于虚幻引擎的三维倾斜摄影数据处理方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113900797A CN113900797A (zh) | 2022-01-07 |
CN113900797B true CN113900797B (zh) | 2022-05-03 |
Family
ID=79188617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111034334.7A Active CN113900797B (zh) | 2021-09-03 | 2021-09-03 | 基于虚幻引擎的三维倾斜摄影数据处理方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113900797B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115103134B (zh) * | 2022-06-17 | 2023-02-17 | 北京中科深智科技有限公司 | 一种led虚拟拍摄切割合成方法 |
CN115409906B (zh) * | 2022-11-02 | 2023-03-24 | 中国测绘科学研究院 | 一种大规模倾斜摄影模型轻量化方法及装置 |
CN116168188B (zh) * | 2023-03-17 | 2024-02-02 | 易智瑞信息技术有限公司 | 大范围倾斜三维数据的融合方法、***及设备 |
CN116245710B (zh) * | 2023-05-11 | 2023-07-18 | 中国铁路设计集团有限公司 | 基于虚幻引擎和线程池的海量倾斜摄影模型动态调度方法 |
CN116958384A (zh) * | 2023-07-27 | 2023-10-27 | 威创软件南京有限公司 | 一种基于Unity引擎三维Gis异步加载算法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2546286B (en) * | 2016-01-13 | 2020-02-12 | Sony Interactive Entertainment Inc | Apparatus and method of image rendering |
CN108665536B (zh) * | 2018-05-14 | 2021-07-09 | 广州市城市规划勘测设计研究院 | 三维与实景数据可视化方法、装置与计算机可读存储介质 |
CN112365598B (zh) * | 2020-10-29 | 2022-09-20 | 深圳大学 | 倾斜摄影数据转换三维数据的方法、装置及终端 |
CN112785696A (zh) * | 2021-02-06 | 2021-05-11 | 招商局重庆交通科研设计院有限公司 | 基于游戏引擎和倾斜摄影数据的三维实景模型生成方法 |
-
2021
- 2021-09-03 CN CN202111034334.7A patent/CN113900797B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113900797A (zh) | 2022-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113900797B (zh) | 基于虚幻引擎的三维倾斜摄影数据处理方法、装置及设备 | |
US20230053462A1 (en) | Image rendering method and apparatus, device, medium, and computer program product | |
US11344806B2 (en) | Method for rendering game, and method, apparatus and device for generating game resource file | |
US10311548B2 (en) | Scaling render targets to a higher rendering resolution to display higher quality video frames | |
US10553013B2 (en) | Systems and methods for reducing rendering latency | |
US10529117B2 (en) | Systems and methods for rendering optical distortion effects | |
US10049486B2 (en) | Sparse rasterization | |
US10553012B2 (en) | Systems and methods for rendering foveated effects | |
CN108257204B (zh) | 运用于Unity引擎的顶点色绘制烘焙方法及*** | |
CN110047123B (zh) | 一种地图渲染方法、装置、存储介质及计算机程序产品 | |
US8416260B1 (en) | Sigma buffer for rendering small objects | |
WO2024148928A1 (zh) | 全局光照渲染方法、装置、计算机设备和存储介质 | |
EP4213102A1 (en) | Rendering method and apparatus, and device | |
CN112652046B (zh) | 游戏画面的生成方法、装置、设备及存储介质 | |
CN110841293B (zh) | 一种自动动态输出游戏贴图合适度的方法和*** | |
CN116152039B (zh) | 图像渲染的方法 | |
CN117710551A (zh) | 一种实体渲染方法、装置、电子设备及存储介质 | |
CN115526977B (zh) | 游戏画面渲染方法和装置 | |
Hertel et al. | A Hybrid GPU Rendering Pipeline for Alias-Free Hard Shadows. | |
CN108280887A (zh) | 一种阴影图确定方法及装置 | |
KR20230032826A (ko) | 멀티-프래그먼트 렌더링에서 가상 두께 기반 레이어 병합 방법, 이를 수행하는 장치 및 컴퓨터 프로그램 | |
CN115035231A (zh) | 阴影烘焙方法、装置、电子设备和存储介质 | |
CN116188552B (zh) | 基于区域的深度测试方法、装置、设备及存储介质 | |
Fu et al. | Dynamic shadow rendering with shadow volume optimization | |
CN116993894B (zh) | 虚拟画面的生成方法、装置、设备、存储介质及程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |