随着倾斜摄影技术的发展,在土地调查、农村地籍测绘、古建筑保护、不动产确权、工程测量、建筑施工、农业林业、智慧城市、交通规划、GIS信息系统等各领域都有了广泛的应用。其中不同场景所用的格式又不尽相同,不同格式的应用特点和转换成了一个让人头疼的难题,这篇文章就来梳理下我们常见的倾斜摄影格式以及他们之间如何转换。

日常中会经常使用到的格式主要为以下几种:OSGB、OBJ,FBX,STL、3Dtiles等。

1、OSGB

目前市面上生产的倾斜模型OSGB占了大部分,尤其是ContextCapture(Smart3D)处理的倾斜摄影三维模型, OSGB是国际通用三维场景格式,数据的组织结构如下:Data目录为数据入口目录,“Data” 目录同级放置一个 metadata.xml 文件用来记录模型的位置信息。Data目录下包含很多子目录,如下,每个子目录为一个根块,每个根块是一个树形结构,是一个LOD层级结构。Data目录下的每个瓦片目录下,必须有个和目录名同名的 osgb 文件,否则无法识别根节点。简单理解,每一个osgb文件就是一个三维切片。

此类数据的特点是文件碎、数量多、体积大,很难高效的进行网络发布,这也导致它在应用方面受到很多限制。Osgb也是OSG引擎的自有格式,OSG可以直接读取osgb文件,但是OSG引擎是桌面端三维地球开源引擎,无法进行现在主流的web端应用,所以osgb格式的数据在web引擎应用领域中一直存在很大的使用难题,主要是其它引擎中对osgb倾斜数据直接进行加载非常困难。因此,一些主流的web三维引擎都不支持直接加载osgb,需要转换成3dtiles、FBX或者OBJ才可以应用。

osgb转3dtiles借助ceciumlab即可完成转换。

Osgb转FBX可以通过专业的格式转换软件,比如FME,但是需要收费。

Osgb转OBJ也可以用FME,也可以基于OSG引擎提供的格式转换工具插件,将OSGB格式转换为OBJ格式。

Osgb和gltf无法直接转换,先转换成obj,再利用Cesium的obj2gltf工具转为gltf格式。gltf为三维GIS通用格式。

2、OBJ

OBJ文件最早是"AdvancedVisualizer"的一种标准3D模型文件格式,现在很多三维软件都支持打开OBJ,所以OBJ逐渐成为了不同格式文件转换的媒介,经常用于用于3D软件模型之间的互导,比如Smart3D里面生成的模型需要修饰,可以输出OBJ格式,之后就可以导入到3dsMax进行修模。

OBJ文件一般包括三个子文件,分别是.obj、.mtl、.jpg,obj文件表示模型网络文件,mtl文件表示模型材质,jpg为纹理文件。目前几乎所有知名的3D软件都支持OBJ文件的读写,比如3dmax、blender、maya。现在主流的web三维引擎也支持OBJ的直接加载,比如Three.js、UE4、Unity3D等。

3、FBX

FBX是FilmBoX这套软件所使用的格式,后改称Motionbuilder。因为Motionbuilder是一款三维动作软件,所以游戏开发者和动画师经常使用FBX文件。FBX格式是一种通用模型格式,支持所有主要的三维数据元素以及二维、音频和视频媒体元素,包含了动画、材质特性、骨骼动画、灯光、摄像机等信息,贴图以及坐标信息也可以存入FBX文件中,文件导入后不需要手动指认贴图以及调整贴图坐标。最大的用途是用在诸如在3dsMax、Maya、softimage(专业动画设计软件)等软件间进行模型、材质、动作和摄影机信息的互导,这样就可以发挥Max和Maya等软件的优势。可以说,和OBJ一样,FBX也是很好的一种互导方案。FBX和OBJ的区别是,OBJ文件不包含动画、材质特性、贴图路径、动力学、粒子等信息。

利用Autodesk FBX转换器可以将.OBJ、.DXF、.3DS和.DAE(COLLADA)文件转换为FBX格式。Three.js、UE4、Unity3D也都支持FBX格式的读写。

4、STL

STL文件格式(stereolithography,光固化立体造型术的缩写)是由3D SYSTEMS 公司于1988 年制定的一个接口协议,是一种为快速原型制造技术服务的三维图形文件格式。STL文件是在计算机图形应用系统中,用于表示三角形网格的一种文件格式。说白了,就是用三角形表示实体的一种文件格式,stl是一个非常简单的格式,只有点,三角形,体几种元素。格式简单,只能描述三维物体的几何信息,不支持颜色材质等信息。

正因为它的文件格式非常简单,应用很广泛,比如在快速成型、3D打印和计算机辅助制造方面都在广泛使用STL格式文件,它是计算机图形学处理,数字几何处理如CAD,数字几何工业应用,如三维打印机支持的最常见文件格式。在数字孪生应用中,可以把STL当作一种3D CAD文件格式。Three.js、Babylon.js可以加载STL格式。

5、3DS

3DS格式是旧版Autodesk 3D Studio使用的3D图像格式, 在新版3dsMax也可以使用,是3dsMax建模软件的衍生文件格式,做完MAX的场景文件后可导出成3DS格式,可与其他建模软件兼容,也可用于渲染。3ds格式存储了3D对象的所有重要信息,除了模型之外,还包括网格数据、材质属性、位图参考、平滑组数据、视口配置、摄影机位置和照明信息,可能包含对象动画数据。

目前支持3DS格式的引擎不算多,Unity 3D可以直接打开3DS格式文件。

6、3d tiles

3D Tiles是Cesium于2016年3月定义的一种三维模型瓦片数据格式,目前已经是OGC标准之一,3D Tiles将海量三维数据以分块分层的形式组织起来,大大减轻了浏览器和GPU的负担,大大提高了数据加载效率。3D Tiles专为流式传输和渲染3D地理数据而设计的,如倾斜摄影测量、BIM、点云、建筑数据等。

3D Tiles是在glTF的基础上,加入了分层LOD的结构后得到的产品,降低海量数据可视化过程中的浏览器负担,减少WebGL绘制请求的数量。是专门为大量地理3D数据流式传输和海量渲染而设计的一种格式,是目前大火的开源WebGL框架Cesium的御用格式。

这个格式可以从CC直接导出,也可以通过OSGB转化获得,利用cesiumlab直接转换。 返回搜狐,查看更多

责任编辑: