第39卷第1期 注 為 科 修 Vol. 39 No. 1
2021 年 2 月
JIANGXI SCIENCE Ub. 2021
doi :10.13990/j. B q 1001 -3679.2021.01.028
三维WebGIS 中三维模型格式的研究与应用
胡昊,夏元平*
收稿日期:2020 -11 - 16;修订日期:2020 - 12-26
作者简介:胡昊(1996—),男,硕士研究生,主要研究方向为地理信息系统应用与开发。 基金项目:国家自然科学基金项目(41962018);江西省科技厅星火计划项目(2016BBB29002)。
*通信作者:夏元平(1982—),男,副教授,主要研究方向为InSAR 技术及应用、GIS 应用开发。E - mail :20432xyp@
163. com,
(东华理工大学测绘工程学院,330013,南昌)
摘要:针对现阶段三维WebGIS 系统在浏览器端无法加载传统的桌面端大数据量三维模型文件的问题,提出
了一种利用新型的glTF 文件格式,借助生成转换工具,将原始的模型文件转换为新的模型格式,实现在浏览 器端有效快速加载的方法。这一方式实现了快速生成glTF 模型的需求,并且传统的三维建模人员即可独立 完成,较好地平衡了转换效率与人员成本之间的矛盾,同时能够保证与原始模型文件的一致性和完整性。这
种转换方法是基于开源的转换插件,与传统的创作工具相结合,提高三维复杂模型的加载效率,使三维复杂模 型在三维WebGIS 系统应用中发挥更大作用。
关键词:三维WebGIS ;glTF 模型;三维建模;GIS 系统应用中图分类号:P208;TP391.41
文献标识码:A 文章编号:1001 -3679(2021)01 - 150 -06
Research and Application of 3D Model Format in 3D WebGIS
HU Hao , XIA Yuanping
(Flculty of Geomatics, East China University of Technology, 330013, Nanchang , PRC)
Abstract : Aiming ai the curreni problem thai the 3D WebGIS system ccnnoi load the traditional
deskiop 一 side larRe 一 data 一 volume 3D model file on the browser tide , a new glTF file foanat it proposed to conveR the oaginal model file into a new one with the help of a generation conversion tool. Model foanat , which realizee effective and fast loading method on the browser site. Thie meti- od realizes the requirement of quickly generating glTF model , and traditional 3 D modeling personnel
con complete it independently , which beter balances tie contradiction between conversion rffciencc
and personnee cost , whiee ensuang consistency and consistency with the original model ffe oomplete-
ncss. This conversion method is based on open sourco conversion peug 一 ins, combined with tradi-
tiona authoring tools , te improvv the loading effciency of 3D complex models , and make 3D com plex modeT play a greates c I c in the application of 3D WebGIS sysim.
Key word :3D WebGIS ; glTF modE; 3D modeling ; GIS system application
0引言
随着计算机技术的发展,三维技术的不断进
步以及“全息三维”等概念的提出推进,传统的地
理信息科学面对着新的发展与挑战⑴,承载在互
联网上的三维GIS 正朝着数字化、智能化的方向
发展。在计算机技术迅猛发展的背景下,传统的
浏览器已经过渡到WebGL 时代,借助编程语言以
第1期胡昊等:三维WebGIS中三维模型格式的研究与应用-151-
及数字可视化技术,桌面端的三维GIS系统逐渐向Web网页端过渡⑵。为了解决传统的三维模型数据量巨大无法直接应用在Web网页端,一种新的模型数据格式—
—glTF被越来越多的相关专家学者使用并加以研究。
但是gTF作为一个中间层的三维模型文件结构,无法直接通过传统建模工具直接生成,需要通过原始的数据格式如objrDAE等格式转换而来。现阶段存在一些转换的方法,本文借助开源引擎库Babylon,js与3dsMax相结合,直接在软件内进行模型文件生成,减少转换过程步骤,增加工作效率,并且与原始模型文件保持完整性与一致性。
1GIS三维模型的应用与发展
1.1传统的三维模型在桌面端的应用
随着计算机科学技术的发展和GIS应用的不断深入,在很多领域如地质、矿山、环境、海洋、气象、数字城市等,传统的二维地理信息系统受制于表现形式,无法做到空间的、立体的三维效果展示⑶。三维GIS是在二维GIS的基础之上,通过加载三维模型作为新的数据展示层⑷,并通过开源的软件与现有的GIS系统相结合,从而提供一个更加直观的实景三维可视化环境⑸。实景三维GIS可以真实地反应现实环境中的地理信息,如水系、地势、气候变化以及城市规划等⑷o 利用三维GIS技术和DEM、三
维模型可以实现现实世界的无缝漫游,并且可以在DEM数据以 及三维模型上叠加多个数据格式源,应用到不同的案例中。其中应用较多的生成方法一般是利用无人机进行超低空拍摄,获取大量影像信息,导入建模软件中,通过计算机影像识别匹配功能,生成OSGB格式的模型文件,最后叠加上现场采集的影像数据,将真实贴图赋予到模型上。现阶段,传统的三维GIS桌面平台大多是基于专业软件平台,如ArcScene、Skyline、SuperMap等进行二次开发,其优点是显示效果好、空间分析功能强大,但成本费用高,只能适用于单机。以ArcScene为例,支持导入的数据格式有这几种:3ds、skp、wrl、flt、DAE,均是通过3DsMax或者SketchUp等专业建模软件进行生成的模型格式,制作成本较高且数据量巨大。
1.2Web端的三维模型需求
与传统的桌面端三维GIS平台相比,在Web 端构建三维GIS系统应用的成本要小得多,并且
用户可以直接通过计算机浏览器进行无插件浏
nodejs工作流引擎开源览,依靠实时网络带宽进行数据传输切,因此在
一些需要实景操作的行业里,如机场三维示意图、博物馆3D展示、智慧城市等方面应用广泛。现阶段,三维空间模型的可视化技术主要是采用B/
S架构作为支撑载体,以支持WebGL的现代浏览器作为客户端⑷,便于用户实时浏览和数据交互。随着WebGL技术的不断完善,基于WebGL 引擎渲染的3D WebGIS已成为目前的发展趋势。
在诸多支持WebGL的开发库中,如Cesium、
Three、Unity3D等,近年来被学者较多地用于三维场景构建的研究和应用中。使用这些前端引擎进行开发时,往往也会借助一些可视化的3D建
模工具,比如SolidWorks、Blender、C4D、3Dmax。使用这些前端引擎进行开发时,虽然它们也都支
持生成简单的三维模型,但是需要大量的代码编
写,因此在实际项目开发中,通常会借助一些专业
的3D建模工具,比如SoedWorks、Blender、C4D、
3DsMAX o应用在不同领域的三维模型通常支持
的导出文件格式也有所不同,比如通常使用虚幻
4或者Unit3D来进行游戏开发,Blender以及SolidWorks用在工业设计、机械设计等领域⑼。但是传统
的三维实景模型的加载受制于浏览器的性能限制,加载时响应速度过长,甚至浏览器直接崩溃;遇到复杂的实景三维模型加载时,浏览器界面卡顿,鼠标响应失灵也是经常发生的情况。传统三维模型无法直接应用在Web端是制约三维WebGIS发展的重要原因。
1'新的模型标准的提出
现阶段有超过70种不同的文件格式的3D
数据,服务于不同目的和应用案例,并且可以使用
创作工具创建更复杂的3D场景。这些工具以自
己的自定义文件格式存储此信息。例如,Blender
将场景存储在.blend文件中,LightWave3D使
用.lws文件格式,3DsMAX使用.max文件格式,
Maya使用.ma文件。为了渲染来源不同的三维
模型,Web浏览器需要能够读取加载这些个数不
同的3D数据文件,由于不同格式的三维模型往
往携带着与渲染无关的冗余数据,包含了很多无
用信息,因此这一加载过程通常步骤繁琐并且耗
费时间很长。Khronos Group(创建开发标准的开源组织)在2015年9月提出glTF格式「冋,一种可以减少3D格式中与渲染无关的冗余数据并且
-152-江西科学2021年第39卷
更加适合WebGL加载的一种3D文件格式。这种新的文件格式使用JSON来描述场景结构,可以方便地被应用程序分析处理,以一种可以被大多数图形API直接使用的方式进行存储,不需要应用程序进行解码或预处理操作。
对于Cesium、Threejs这些3D Web渲染引擎来说,它们对于模型数据量的大小十分敏感,glTF 格式的提出很大程度上解决了这一问题,只需要很少的代码就可以顺利地载入各种模型。在构建三维WebGIS平台时,传统的三维实景模型无法直接加载在Web的问题得到了解决,但是glTF 格式的三维模型无法直接生成,需要采用一些方法进行格式转换。
2gTF模型制作的方式
G1TF作为一种中间的三维模型格式,无法通过Blender、3dsMax这些工具直接制作,需要通过obj、fbx格式或者3dsMax开源的插件进行转换生成。文中所使用的原始模型为obj模型文件、mtl 贴图文件以及模型贴图图片3种文件类型。obj 文件是一种3D模型文件格式,适合用于3D软件模型之间的互导,也可用于创作工具直接创作加工;obj文件不包括任何颜贴图定义信息,颜纹理等材质库信息储存在一个后缀是“-mtl”的独立文件中;三维模型中的贴图文件以png、jpg格式为主,其中png格式可用于构建透明材质通道。
2.1官方转换工具0BJ2GLTF转换
Cesium官方开发人员推荐使用obj2glTF插件将obj模型转换成glTF格式模型,在安装obj2glTF插件前,需要先安装nodejs环境。在nodejs根据系统需求下载,然后执行运行EXE安装,直接下一步,安装至默认位置即可。安装后输入以下参数检验是否安装成功:node-v;npm-v,若有版本号输出则显示证明安装成功。完成nodejs环境安装后,再进行obj2glTF插件的安装:以管理员身份运行cmd,建议首先设置下npm镜像(国内淘宝镜像)以加速项目的构建,如下:npm config see registry https registry.npm. o在npm路径执行:cnpm instal l一savv obj2glTF,完成后可看到输出信息,如图1所示。
将模型文件放置到obj2glTF所在的文件夹下,进行模型格式转换,完成后可通过加载glTF 模型进行模
型浏览查看,图2为cmd命令行输入,图3为结果模型展示:node bin\obj2glTT.js-i model/station.obj-o station.glTF o
(a)安装nodejs环境
J'S3ncxi3T J
nbcmci:[扳本1QJ0L1W4I5721
底I3CE0聾ecW C保呂所首第11.
ebjlgl寸
pV JLZ辺£(3G jna-r,-aacJ71
J ZEZMBi'i,jta艺啊]gZsH19.7ZMB)'
图1前期转换环境准备
(b)切换国内镜像源
图2CMD命令行输入转换代码
图3obj2gltt工具转换结果
2.23dsMax插件OpenCollada转换
Opencollada插件是基于3dsMAX和Maya设计的一组插件,可以将动画文件导入到软件中同时保留材质,在多数影视动画的制作中比较常用,起到一个3dsMAX和Maya之间的DAE格式模型
第1期胡昊等:三维WebGIS中三维模型格式的研究与应用-153-
的桥接作用,再通过DAE格式转换为glTF格式。
1)在3DsMax中加入COLL A DA插件(图4): C O LLADAMaxNew.dle o
2)将原始模型文件导入到3DsMax中,并将模型设置到坐标轴原点(图5)。
3)导出OpenCOLLADA格式的DAE文件。
4)下载COLLADA2GLTF-v2.1.5-windows -Release-x64。
5)使用COLLADA2GLTF将DAE转换为glTF 格式,如图6所示。
图43DsMax加载COLL A DA插件
图53DsMax加载模型文件
图6DAE模型转换glTF格式输出
2.3在线网页转换如高德地图控制台
以高德开放平台的模型格式转换工具(ht-tps:^/1T s.amap/dev/3o W glTF)为例,图7为高德地图在线转换工具框。具体步骤如下:1)上传包含.obj文件的zip包;2)输入或拖动地图以调整模型位置;3)调整模型缩放比例、高度、旋转角度等信息;4)下载glTF文件/查看示例代码。
图7高德地图在线转换
上传完成后,点击下载glTF文件,可获得转换格式后的三维文件。由图8可知,因为上传的为zig格式的压缩包,进行格式转换时,不到相对路径的贴图文件,导致模型贴图丢失。前文中所提到的m3后缀文件是构建obj模型与贴图图片的桥梁,其中部分代码为图片存储位置的相对路径,在线网页进行转换格式时,无法识别模型贴图本地路径与相对路径的区别,因此转换之前需要对m3文件进行重新编译改写。
图8在线网页转换输出模型
2.43DsMAX建模,babyTn插件导出
Babylon,js是一款基于WebGL的3D图形引擎,也是目前处于该领域世界领先水平的引擎之O
1)通过百度等搜索引擎搜索下载对应版本的Babylon,js插件,图9为对应多个版本的3DMAX和Maya软件的插件压缩包。
2)3ds Max安装Babylon,js插件。解压zip 文件,打开3ds Max的安装目录,确保3ds Max不在运行,复制插件解压后的所有.di e文件到3d Max的安装目录。
3)接下来启动3ds Max,会出现一个新的Babylon菜单项,同时Babylon插件会自动启用,
-154-江西科学2021年第39卷
就可以点击此菜单项导出glTF格式的3D模型文件了,图10为导出时具体参数设置。
4)输出的结果文件为bin格式和glTF格式的模型文件,需要同时加载所有文件即可运行,图11为glT文件,bin文件与贴图文件同时加载时展示效果。
图9对应各版本的Babylon,js插件
图103ds Max导出glTF模型文件
图11所有文件加载效果图
3实验结果分析
通过上述4种方法生成了4个同一模型的glTF格式文件,如图12所示。由图12可知,在通过网页在线转换过程时,由于无法调整贴图文件与模型文件的相对路径,导致模型文件缺失,转换生成的glTF模型缺失贴图信息;通过COLLADA 插件转换时,不包含原始文件格式的灯光场景等信息,加载时需要通过代码或者软件控制,重新生成灯光或者场景信息;obj2gltf工具与Babylon直接生成的模型文件与原始模型保持一致。
(a)obj2glT工具转换结果(b)COLLADA插件转换
(c)在线网页转换(d)3dsMAX软件与Babylon
直接生成
图124种生成结果模型图
3.1时间性上
由于4种转换过程前期准备工作流程以及操作人员熟练程度均不相同,因此无法比较前期准备工作所耗费时间,在比较耗费时长上,默认前期准备工作均已完成,只对转换过程耗时进行对比分析。第1种通过obj2glTF插件进行转换用时很短,仅需要通过nodejs安装插件后,输入cmd命令行完成转换,完成后的时间耗费为295.261ms;第2种方法需要安装opencollada插件后,再使用COLLADA2GLTF工具转换生成glTF模型,完后输出信息显示耗时为206ms;第3种通过在线网页转换,查询后台Network进程可知生成信息耗时为5.91s;第4种通过Babylon,js插件直接在3dsMax中进行输出转换,通过信息输出可知所用时间为158ms。
3.2处理能力上
通过obj2glTF、COLLADA2GLTF进行glTF格式转换时,同时只能处理单个文件,并且处理过程完全依靠Windows或macOS系统本身的处理数据能力,无法调用GPU显卡的图像处理功能。通过在线网页转换只能借助浏览器本身的编译转换功能,处理大文件时经常出现卡死崩溃等情况,无法真正应用到实
际项目开发中。通过3dsMax安装Babylon,js插件,直接生成glTF文件,软件调用cpu和gpu同时对转换过程进行加速转换⑴],处理能力最强。
3.3文件量上
对生成的4个glTF文件数据量进行横比,单
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论