APP下载

无缝集成AutoCAD的倾斜实景模型渲染系统研究

2022-10-11南宁市勘测设计院集团有限公司王威梁昊

中国建设信息化 2022年18期
关键词:实景结点纹理

文|南宁市勘测设计院集团有限公司 王威 梁昊

引言

随着数据采集技术及计算机图形处理技术的不断提高,三维空间数据的获取和表达得以实现[1],三维空间信息逐渐替代二维空间数据作为新一代空间信息基础建设框架重要的数据内容,成为近年来测绘、地信与遥感领域内的一个研究热点[2-3]。

倾斜摄影实景建模技术可通过专业的数据采集设备和快速处理流程获取大量的地理空间数据,满足人们对三维信息的需求,节省了大量的人力、物力。使用倾斜摄影实景建模技术获取的空间信息与真实地物的误差可达到毫米级别,从而得到高精度的倾斜摄影实景三维模型,能够真实地反映地物的实际情况。目前,倾斜摄影三维实景建模技术由于其建模时效性高、模型覆盖范围光、模型精细高、模型真实化等特点,在住宅、规划设计、大比例尺测绘等实际生产实践中运用愈发广泛。通过倾斜摄影三维实景建模技术生成的模型也被广泛应用于智慧旅游、应急救援、城市规划、环境保护等领域[4-5]。

倾斜摄影实景模型的数据处理技术和方法是实景模型应用于各个领域的桥梁。尽管现在市面上拥有众多倾斜摄影测量数据处理软件,但倾斜摄影测量数据处理方法仍遇到许多技术难点,一直限制着倾斜摄影技术的推广,尤其是针对特殊部门的需求,如国土、建设、规划等。在国土、建设、规划部门中常规的做法是利用 AutoCAD 的插件技术[6],结合三维引擎实现倾斜实景与 CAD 的协同作业。采用这种方式的软件包括清华三维的 ESP 系列软件。该方式能够满足三维场景中的测量工作,但存在一定问题,即其所有功能需要第三方插件和CAD 协同完成,不能充分利用 CAD 自身的功能。对于习惯CAD操作的测绘、市政、规划行业从业人员而言,这种方式增加了学习成本。同时,在对接小行业领域软件如湘源控规、鸿业等CAD插件时具有天然的缺陷。因此,有必要把倾斜摄影测量数据集成到 AutoCAD 中转为三维 DWG 文件,以生成带有纹理图像的三维模型,并支持CAD中实景三维LOD渲染,进而实现二者的无缝集成。

1.倾斜数据模型数据解析

实现倾斜实景模型无缝集成第一个环节是对倾斜数据模型数据解析。主要包括几何信息提取及处理、纹理数据提取及处理、DWG三维实体构建及索引信息提取,其转换流程如图1所示。

图1 模型转换流程

1.1 几何信息提取及处理

本文利用文件读写库(osgDB)读取OSGB数据[7],通过遍历其各个节点进行几何信息提取,在此过程中主要分为以下四个步骤:

(1)从外部存储器中读取OSGB到内存中。osgDB提供了文件I/O的函数接口,用户通过“#include ”头文件定义接口,再通过调用osgDB::readNodeFile()函数读取模型文件。

(2)节点访问器需要设置,运用它的遍历模式游历所有的OSGB节点。抽象访问者(Visitor)、具体访问者(Concrete Visitor)和节点(Node)构成一个访问器。OSG中的NodeVisitor类的结构如下列所示:

NodeVisitor(TraversalModetm):TraversalMode为节点树的遍历模式,OSG中定义了如表1中的四种遍历模式。

表1 节点树的遍历模式

void traverse(Node& node):遍历节点。

void apply(不同节点类型):对不同类型的节点进行访问,并且执行其自定义的操作,如获得或修改节点属性等。

NodeVisitor要使用访问器执行它的功能时,还需要设计相应的具体的顶点访问器和纹理访问器来用于继承于NodeVisitor类并重写apply(…)函数。在执行accept函数的时候当前的节点自动调用apply(...)函数,将一个对象传递给下一个节点,实现访问各种节点的各种操作;随后执行traverse函数,调用 accept函数,游历所有场景函数并调用子节点的函数,如Node、Group、LOD、Geode等节点。

(3)遍历几何体获取几何信息。模型的实体数据通常以向量的形式来表示,在OSG中就定义了大量用于保存这些数据的类, Geometry对象中的顶点坐标和法线数据就存储在Vec3Array数组中。通过OSG可以从节点下获取Drawable类,然后遍历Drawable类下的Geometry对象获取Vec3Array数组中的几何信息。

(4)原始OSGB模型数据中的顶点坐标值不实际的坐标值,而且DWG模型为独立的坐标系统,为了在模型标注时显示区域模型的实际坐标值,需要将模型各顶点进行偏移,计算方式是根据倾斜摄影三维数据的空间参考和坐标原点信息来计算。

1.2 纹理数据提取及处理

对OSGB纹理数据提取方法[8-10]与对几何信息的提取相似,只不过管理纹理数据的“容器”与几何信息的不大相同。根据OSG中纹理映射的方法可知,在遍历模型节点时,调用OSG中关函数可以从Vec2Array、Texture2D、Image这几个“容器”中提取出模型的纹理数据。

OSGB纹理坐标和DWG坐标的参考点是不一样的,两者的对应关系为:

其中Xd、Yd为DWG的纹理坐 标,Xo、Yo为OSGB的纹理坐标。

1.3 DWG三维实体构建

DWG图形的本质是在AutoCAD数据库中储存的对象。符号表、实体和对象字典是AutoCAD数据库对象基本分类[11]。其中,符号表是一种容器对象,包括层表、块表和其他符号表;实体本质上是AutoCAD中的一条记录,存储格式伟链表形式。在AutoCAD中创建实体,则可以调用ObjectARX函数在相应的AutoCAD数据库中添加一条记录。对象字典与符号表相似,若要向图形本身追加用户定义的纹理信息,则可以使用对象字典。其组织结构如图2所示。

图2 AutoCAD数据库

根据DWG模型和材质的要求,创建几何对象和材质对象,然后将实体添加到块表记录中,将材质存储材质字典中。

在结构上AutoCAD的AcDbSubDMesh与OSGB纹理映射极其相似。在ObjectARX中,对于一个三维几何实体,AcDbSubDMesh实体是一个容器和接口,它可以创建纹理映射三维模型。

由于AutoCAD中是将纹理是存储在AutoCAD数据库的AcDbDictionary材质字典中的,所以还需要将纹理添加到材质字典里作为一种材质,然后利用AcDbMaterial类添加用于定义、存储和显示阴影实体的材质属性。

2.倾斜数据模型的LOD化渲染

上述解析工作仅针对单个OSGB文件,针对LOD形式的OSGB文件组织方式,本文提出AutoCAD中LOD结构OSGB数据格式的渲染方法。

利用OSGB文件解析程序,建立对应的AcDbSubDMesh实体数据,然后依据中心点的经纬数值,校正模型顶点的坐标的偏移量。最后,在磁盘中持久化,形成了OSGB到DWG的数据转换。在由OSGB到DWG的数据转换的基础上进行构建索引[12]。在文本索引中把包围盒坐标与文件路径写入。与此同时,将合并的最顶层包围盒坐标写入文本索引。在LOD节点构建中,首先要进行分类,有些是叶节点,有些是组结点,一个LOD结点包含同一个文件夹下的所有结点。LOD结点下是组结点,组结点下是叶结点,从而关联形成一个LOD逻辑树。因此,对于倾斜实景模型,同样可以按照LOD的层次结构进行解析和数据存储。

AutoCAD中LOD化渲染时,需要先获取三维视图中获取可视范围和下视距。渲染是分层级的,通常通过视距来确定。首先根据相机焦距距离以及视椎体在世界坐标下投影位置来确定LOD的层数以及显示的数据块[13]。进一步选择刷新的结点并对结点进行渲染,将DWG中的模型复制到当前的文档,完成渲染。当进行数据显示时,对树状结点进行遍历,根据当前相机焦距距离和视椎体对所有叶子结点进行筛选,然后根据“ARX显示模块”完成对筛选后的结点渲染。

3.应用

基于上述提出的无缝集成AutoCAD的倾斜数据模型方法,本文设计和实现了倾斜实景模型LOD化渲染、坐标拾取、土方计算等功能,具体操作如下:

(1)倾斜实景模型LOD化渲染

在 AutoCAD 中显示倾斜摄影测量数据,需要综合考虑 AutoCAD 中三维显示的规则以及其三维模型构建的机制。对倾斜摄影测量的数据显示不仅仅是显示三维模型,其中还包括对视图操作,对事件处理,对事件响应机制的设置等一系列功能。最终完成倾斜摄影测量数据在 AutoCAD 中的LOD 显示。

(2)坐标拾取

系统实现三维坐标拾取,通过捕捉鼠标射线,将三维坐标以SNAP点提示出来,用户可以直接选择该点,支持CAD中各种线段操作,实现倾斜数据模型与CAD数据编辑的无缝集成。

(3)土方计算

借助LOD渲染系统实现了场地平整的土方计算,效果如图3中红色数字代表场地标高,蓝色数字代表设计标高,单元网格中的绿色数字代表每个单元网格的填挖方量。

图3 土方量计算模型

4.总结

随着倾斜摄影处理系统的迅猛发展,其处理技术带给了人们一些便利,因此,对人们倾斜摄影实模型的需求也逐渐增高。这其中就包括规划、建设、国土等部门对倾斜摄影实景模型的需求,但由于庞大的倾斜摄影实景数据量和大规模三维场景的渲染功能欠缺。在如今基于AutoCAD的倾斜摄影实景数据处理系统仍面临巨大机遇和挑战。

本文结合AutoCAD软件自身特点及倾斜摄影实景数据处理理论,基于OSG三维开源引擎及ObjectARX二次开发技术,设计了无缝集成AutoCAD的倾斜实景模型渲染系统。可实现对倾斜摄影实景数据的加载、存储、显示、编辑及应用,满足规划、国土部门的实际需求,更好的扩展、深化实际生产中的倾斜摄影数据处理及应用领域,具有一定应用前景和广阔的空间。

猜你喜欢

实景结点纹理
金湖县创新“实景式”培训 提升精准执法水平
数字博物馆 线上实景游
基于BM3D的复杂纹理区域图像去噪
使用纹理叠加添加艺术画特效
Ladyzhenskaya流体力学方程组的确定模与确定结点个数估计
TEXTURE ON TEXTURE质地上的纹理
论山水实景剧与山水实景演出的区别
消除凹凸纹理有妙招!
基于Raspberry PI为结点的天气云测量网络实现
一种基于可量测影像的实景导航数据组织模型