倾斜摄影测量成果三维模型数据文件格式分析

2023-06-21 09:28罗国夫孙永蒋荣龙范亚军
现代信息科技 2023年9期
关键词:倾斜摄影测量三维模型数据格式

罗国夫 孙永 蒋荣龙 范亚军

摘  要:倾斜摄影测量突破了常规摄影测量只从垂直角度对同一物体或地区拍摄影像的局限,通过同一台传感器在很短时间内(如1天或几天内)多次从不同的角度,或是在同一数据采集平台上同时搭载多台传感器,从竖直、前后左右等不同倾斜方向采集影像,将观察者引入符合人眼视觉的,与真实场景相似的虚拟场景。倾斜摄影测量最主要的成果是实景三维模型数据,三维模型数据有很多种数据格式,当前倾斜摄影测量成果常用的三维模型数据格式有OSGB、OBJ、FBX三种数据格式。文章对这三种数据格式进行简要的分析。

关键词:倾斜摄影测量;三维模型;数据格式;OSGB;OBJ;FBX

中图分类号:TP39;P231;P208 文献标识码:A  文章编号:2096-4706(2023)09-0103-04

Abstract: The tilt photogrammetry breaks through the limitation that conventional photogrammetry only takes pictures of the same object or area from the vertical angle, by using the same sensor in a very short period of time (such as a day or a few days) many times from different angles, or in the same data acquisition platform which is equipped with multiple sensors at the same time, and collects images from different oblique directions such as vertical, front, rear, left, and right, and introduces the observer into a virtual scene that conforms to human vision and is similar to the real scene. The most important result of tilt photogrammetry is real 3D model data. There are many data formats for 3D model data. At present, the 3D model data formats commonly used in tilt photogrammetry are OSGB, OBJ, FBX. This paper gives a brief description of these three data formats.

Keywords: tilt photogrammetry; 3D model; data format; OSGB; OBJ; FBX

0  引  言

傾斜摄影测量最主要的成果是实景三维模型数据。三维模型数据有许许多多种数据格式:3DS、OSGB、OBJ、FBX、3MX、STL、DAE等格式,当前测绘行业常用的倾斜摄影测量成果三维模型数据格式主要是OSGB、OBJ、FBX三种数据格式,下面就这三种数据格式进行简要的阐述。

1  OSGB格式数据

OSGB全称是Open Scene Gragh Binary,是OSG(Open Scene Graph)三维图形引擎数据Open Scene Graph Scene Data (OSG)格式的二进制版本。要了解OSG数据格式,我们先了解OSG引擎。

OSG(Open Scene Graph)是三维图形引擎,是一个开源图形引擎,以OSGPL协议(基于LGP协议修改)免费发布,在可视化仿真、三维重建、地理信息、虚拟现实、游戏、太空探索、石油矿产、科学计算等领域广泛应用。OSG引擎包括诸多与图形学相关的功能模块,OSG引擎的主要功能是提供图形图像应用程序场景管理以及优化图形渲染。OSG引擎以OpenGL为底层平台,使用C++编写而成,并使用OpenGL底层渲染API。

OSG引擎最重要的特性是分页数据管理,从最早期的OSG 0.9.5版本开始OSG引擎就具有分页数据管理特性,并且一直在不断地完善。倾斜摄影测量最主要的数据特征是数据瓦片化特征,即分页数据特征,而OSG引擎的分页数据管理特性几乎完美的契合了倾斜摄影的瓦片数据特征,而且瓦片的动态调度控制极为灵活。

OSG数据文件内部结构为树状结构,是一个多层级金字塔的模型数据集,是 Open Scene Graph三维引擎支持的三维模型格式,OSG数据的文件格式是公开的,OSG数据文件内容包括三维模型结构和纹理,三维模型纹理以图片形式保存为外部文件。

二进制版本的OSG数据文件OSGB,则将保存在外部的纹理图片打包进OSGB文件内,同时对OSG文件的数据进行压缩,一个OSGB数据文件里同时包含三维模型的几何结构和模型表面纹理,减小了文件的数据结构,应用软件在读取OSGB文件时,效率更高,传播、发布更加方便,非常适合网络发布。因此OSGB格式数据文件成为倾斜摄影测量实景三维模型数据文件的主要格式之一,如图1所示。一个完整的倾斜摄影测量实景三维模型OSGB数据包括Data根目录和metadata.xml文件。

1.1  Data文件夹

Data文件夹是倾斜摄影三维模型数据的文件夹,是模型数据的根目录。在Data目录下包含了一个一个分块的瓦片数据,由一个一个Tile分级文件夹构成,每个Tile文件夹下的数据是一个个细节层次LOD文件。LOD称为层次细节模型,是实时三维计算机图形的一种技术,1976年由Clark最先提出,它的工作原理是:当观察视点靠近被观察目标时,观察到的观察目标细节丰富,当观察视点远离被观察目标时,观察到的目标逐渐模糊。计算机的图形应用程序根据用户的观察视点、观察方向等条件判断,只选择相应的模型细节进行显示,与观察视点和观察方向不相关的模型细节不加载,不显示,提高了应用程序的运行效率。LOD层次细节模型还同时有效的协调了模型画面的连续性和模型分辨率的关系。

如图2所示,每个瓦片Tile分级文件夹下,规定必须有一个和目录名同名的OSGB文件,作为LOD细节模型的主瓦片,也是每个LOD细节模型金字塔层级最顶端的OSGB,否则无法识别根节点。这个主瓦片也可以看作是一个主节点,主节点下以树结构组织整个LOD细节模型数据。

倾斜摄影测量实景三维模型OSGB格式的瓦片数据存储在一个个由Tile和分块编号、层级编号等构成的目录。Tile目录是倾斜摄影测量实景三维模型OSGB格式瓦片数据的基本单元。一个Tile文件夹存储一个分块瓦片完整的OSGB格式数据,一个Tile文件夹就是一个完整的层级金字塔。每一个OSGB数据文件就是一个完整独立的三维模型数据,包括模型表面结构信息和贴图,模型表面结构信息以三角网形式存储。

1.2  metadata.xml文件

metadata.xml文件是元数据文件,是描述数据的数据(data about data),元数据文件主要是描述数据属性(property)的信息,如图3所示。倾斜摄影测量实景三维模型数据的元数据文件描述的是倾斜摄影实景三维模型数据的坐标系和中心点坐标值的信息。

很多免费的倾斜摄影OSGB三维浏览器,比如OSGBLab Viewer,DasViewer以及瞰景Smart3D Viewer,都可以不创建索引文件,直接把数据目录拖进去即可进行三维浏览,但是像ContextCapture Viewer等一些浏览工具浏览多个瓦片(分块)的大型倾斜摄影测量实景OSGB格式三维模型时,需要创建一个索引文件才能对整个三维场景数据进行浏览。这需要构建一个S3C索引文件,通过S3C索引文件将模型整体加载。

2  OBJ格式数据

OBJ格式数据文件是一种标准3D模型文件格式,由Alias|Wavefront公司开发,是Alias|Wavefront公司旗下3D建模和动画软件AdvancedVisualizer的标准3D模型文件格式。OBJ格式数据文件非常适合用于3D软件模型之间的互导,Autodesk公司的三维动画和视觉特效软件Maya也非常方便的读写。

倾斜摄影测量实景三维模型需要进行模型修饰时,很多倾斜摄影测量实景三维建模软件,如美国bentley公司的ContextCapture可以输出OBJ格式。如需要导入到Autodesk公司的三维建模和渲染软件3dsMax中进行处理或者建一个模型,然后调到Maya里面进行渲染或将倾斜摄影测量实景三维模型作为动画场景等,输出OBJ文件是一个非常好的选择。

OBJ文件结构与OSGB文件的树状结构(块结构)不同,OBJ文件只是很单纯的使用了字典状结构。只用简单易懂的表意字符来表示而没有使用块ID来表征名字,OBJ这样的文件结构优化了存储但劣化了读写。

OBJ3.0格式数据文件支持直线(Line)、自由形态曲线(Free-form Curve)、多边形(Polygon)和表面(Surface)。直線和多边形使用它们的通过点位置来描述,OBJ数据的曲线和表面的定义是通过它们的控制点和依附于曲线类型的额外信息来定义的,这些信息支持规则和不规则的包括那些基于B样条(B-spline)、贝塞尔曲线(Bezier)、基数(Cardinal/Catmull-Rom)和泰勒方程(Taylor equations)的曲线。OBJ数据的曲线和表面支持法线和贴图坐标。

如图4所示,一个完整的倾斜摄影测量实景三维模型OBJ数据包括Data目录和metadata.xml文件。Data目录下存放分块三维模型OBJ数据,每一分块模型数据存放在一个分块目录,分块目录内存放OBJ数据的obj、mtl、jpg三个文件。元数据文件metadata.xml文件与OSGB格式类似。

OBJ格式数据一般包括三个子文件,分别是obj、mtl、jpg文件,如图5所示。

2.1  OBJ文件

如图6所示,OBJ文件由一行行文本组成,以符号“#”开头的是注释行,为了增加文件的可读性,文件中可以随意添加空格和空行,可以直接用写字板打开进行查看和编辑修改。数据行以一两个标记字母作为关键字(Keyword)开头,约定关键字作为说明这一行是什么样的数据。关键字根据数据类型排列,每个关键字有一段简短描述。多行可以连接在一起表示为一个逻辑行,要将一行连接下一行为一个逻辑行,只需在行尾添加一个连接符号“\”,连接符“\”后面不能出现空格或Tab格等其他字符,否则将导致文件出错。

2.2  Mtl文件

如图7所示,Mtl文件是OBJ数据文件的材质库信息文件,也是一行行的文本文件,用于描述多边形的可见属性存储文件。材质库中包含材质的光泽(specular)、环境(ambient)、漫射(diffuse)的RGB(红绿蓝颜色)的定义值,以及折射(refraction)、反射(specularity),透明度(transparency)等其他特征。一个OBJ文件可能会引用超过一个的mtl文件。mtl文件可能包含一个或者多个不同命名的材质定义。

2.3  Jpg文件

如图8所示,jpg文件是模型贴图的纹理图片。当前,绝大多数知名的3D软件都支持OBJ文件的读写,但是相当一部分软件不支持直接读写,需要通过插件才能实现。

3  FBX格式数据

FBX文件格式是一种流行于3D模型编辑器和游戏引擎之间进行3D数据交换的数据格式。最初由著名的加拿大实时三维动画软件Kaydara公司创建,是实时动画软件Filmbox保存的三维模型数据格式,FBX数据格式的名称和扩展名源自该应用程序名称FilmBox。Filmbox最终更名为 MotionBuilder。2006年,美国Autodesk公司收购了加拿大Kaydara公司。

FBX文件数据格式原本是封闭和专有的,2005年,Kaydara公司为了鼓励FBX 文件数据格式作为不同3D工具之间进行高质量的3D数据交换格式,Kaydara公司为 FBX 文件数据格式发布了一个公共 SDK,并参与了一项协调一致的公关活动,使 FBX 文件数据格式成为各种3D数据格式的黄金标准。

FBX文件数据支持3D模型、材质特性、贴图、骨骼动画、动画、蒙皮、场景层次、混合形状、灯光、材质照明、摄像机等信息;支持多边形(Polygons)游戏模型、表面(Surfaces)、曲线(Curves)、点组材质(Point Group Materials);支持法线和贴图坐标。贴图、贴图坐标信息都存在FBX文件中,文件导入后,贴图不再需要手动指认,贴图坐标不需要调整。

FBX有两种文件模型,一种是ASCII文本文件,另外一种是二进制文件。二进制文件的文件大小和加载速度上具有天然的优势,但是不如ASCII文本文件具有可读性和易于集成。

倾斜摄影测量实景三维模型FBX数据包括Data目录和metadata.xml文件,如图9所示。Data目录下存放分块三维模型FBX数据,每一分块模型数据存放在一个分块目录,分块目录内存放FBX数据的fbx、jpg两个文件,jpg文件是贴图文件。元数据文件metadata.xml文件与OSGB格式类似。

FBX文件格式有强大的SDK,开发人员使用SDK支持的语言,可以非常方便的将FBX文件格式集成到应用程序中。在应用程序中,FBX文件格式导入和导出过程的添加是一件非常简单而直接的过程,只需要链接 SDK,然后使用FBX SDK 的API将数据流进出即可。对于集成SDK的软件开发人员,FBX隐藏了FBX数据文件格式的复杂性。

FBX具有良好的兼容性。如果SDK支持一个FBX 功能,它会支持FBX的所有功能,因为它是官方的且唯一的FBX SDK。所有以前版本的FBX文件数据格式FBX SDK都确保可以读取,其他软件FBX数据生成工具生成的FBX数据文件,现行版本的大多数FBX SDK工具都可以正确读取。FBX SDK通过SDK用户透明的不同代码路径来读取FBX 格式数据文件,即使FBX旧格式和新格式的数据文件格式发生变化,FBX SDK也能确保可以正常读取。因此,困扰程序员类似于复杂格式(如COLLADA(.dae))的兼容性问题在FBX上不存在。如果FBX正确支持某个功能,它能在应用程序之间传输该数据而无须担心。

FBX文件数据格式是一种封闭的文件数据格式,除了它的所有者Autodesk之外,其他人都不能够发展这种格式。

4  结  论

以上分析了常见的三种实景三维模型数据格式,旨在抛砖引玉,在进行倾斜摄影测量时,可根据实景三维模型数据的具体应用场景选择合适的成果数据格。

参考文献:

[1] 李安福,曾政祥,吴晓明.浅析国内倾斜摄影技术的发展 [J].测绘与空间地理信息,2014,37(9):57-59+62.

[2] 杨国东,王民水.倾斜摄影测量技术应用及展望 [J].测绘与空间地理信息,2016,39(1):13-15+18.

[3] 王凯松,刘增良,邢晨.OSGB三维模型数据切割与修平编辑工具的设計与实现 [J].北京测绘,2019,33(6):679-682.

[4] 侯庆明,吕扬,李兵,等.生产级倾斜实景三维建模方法比较分析 [J].北京测绘,2018,32(4):390-393.

[5] 耿中元,王凤,刘飞,等.倾斜航空摄影实景三维模型技术研究及应用 [J].北京测绘,2017(6):28-32.

作者简介:罗国夫(1977—),男,壮族,广西天峨人,高级工程师,本科,研究方向:测绘应用研究。

猜你喜欢
倾斜摄影测量三维模型数据格式
在智能交通系统中PLC数据格式转换方法的研究
基于无人机倾斜摄影的城市三维建模方法研究
面向城市规划的倾斜摄影三维建模技术探讨
倾斜摄影测量在城市三维建模中的应用
基于无人机倾斜摄影技术测绘大比例尺地形图的可行性研究
矿山虚拟环境三维模型系统优化方法研究
汽车虚拟驾驶培训系统的设计开发
基于DIMINE软件地质模型建立
论子函数在C语言数据格式输出中的应用
DWG与SHP数据格式互转换方法研究——以龙岩规划测绘数据为例