一听到3D Object feature class相信您首先想到的是ArcGIS中的多面体要素类,也就是Multipatch feature class,Multipatch是比较早的类型了,我在这里要向大家介绍的是ArcGIS Pro 2.7版本中新增加的用于表达三维的数据类型,就是3D Object 要素类。本文主要讲解什么是3D Object要素类?如何创建3D Object要素类?3D Object要素类支持哪些功能?3D Object和Multipatch间的异同点是什么?下面一一为大家介绍。
什么是3D Object 要素类?
3D Object要素类存储在地理数据库中,包含已定义的地理位置和对3D模型的引用。所引用的3D模型支持多种模型格式,包括COLLADA (.dae), Autodesk Filmbox (.fbx), Wavefront (.obj), GL Transmission Format (.glTF), and Binary GL Transmission Format (.glb) files.
3D对象要素类中关联了一些表,用来支持高级材质,如PBR(physically based rendering) 材质,这些材质可以展示出物体表面的反光和阴影效果,如玻璃和金属。
如何创建3D Object 要素类?
创建的方式有两种:
一、直接点击GDB,右键新建要素类的方式创建,几何类型处选择3D Object:
创建过程如下:
二、执行Data Management tools ->3D Objects->Add 3D Formats To Multipatch工具将已有的Multipatch要素类转为3D Object要素类:
操作如下:
3D Object要素类会在GDB中多出来下面表和连接,用来支持高级材质:
接下来以第一种方式为例详细介绍后面的操作流程。创建完3D Object要素类之后,我们可以按照编辑Multipatch一样的流程编辑3D Object要素类,如动图,添加了两个球体:
接下来需要执行Add 3D Formats To Multipatch工具选择要对其添加的三维模型类型,我这里选择的.glb格式:
然后在C:\Users\admin\3D Objects\ESRI3DO\MyProject10\zxy\D3Object 文件夹下会多出两个文件夹,其中admin是用户名,MyProject10是工程名称,zxy是FileGDB的名称,D3Object是3D Object要素类的名称,而两个子文件夹则是要素的FID:
如果无法找到3D Object文件夹的话,需要在控制面版->打开或关闭Windows功能中开启Windows Projected File System:
生成了3D模型,接下来我们可以在第三方的建模软件中编辑该模型,我这里使用了免费的3D Builder建模软件简单的为该球体赋予金属光泽:
注:需要将编辑之后的模型放在原始的文件夹下,并且模型名称要和Pro自动生成的模型名称相同,Pro会自动获取该模型进行显示,效果如下:
在Pro中浏览该要素,可以发现是有金属光泽的,这样就完成了对3D Object要素类的简单编辑。
注:更新的过程中需要Pro中全程打开该工程文档,不然模型所在的文件夹路径会消失。更新完了保存之后可以关闭。
有同学会问了,那么我如何将3D Object要素类转为Multipatch要素类呢?Pro中执行Data Management tools ->3D Objects->Remove 3D Formats From Multipatch即可,可以获取到3D Object要素类附加的模型类型,勾选即可删除:
remove之后,GDB中的四个关联表也会跟着删除,并且图上可见金属光泽就丢失了。
3D Object 要素类支持哪些功能?
3D Object要素类支持任何支持multipatch的分析功能,如Near 3D, Intersect 3D Line with Multipatch, and Multipatch Footprint等,同时也支持exploratory 3D analysis tools的实时分析功能。
此外,该图层可以通过Create 3D Object Scene Layer Package工具打包成slpk,并且上传至Protal发布为场景服务,可以在Scene Viewer、ArcGIS Earth、ArcGIS Runtime中使用,但是其3D材质属性,如金属色这些会丢失。
Portal中效果:
注:该图层可以共享为web scene或者生成slpk后发布,但无法直接在该图层右键->Sharing->Share As Web Layer发布成场景服务。
3D Object 和 Multipatch间的异同点是什么?
相同点:两者具有相同的编辑、渲染、空间分析功能,并且可以通过Add 3D Formats To Multipatch和Remove 3D Formats From Multipatch工具相互转换。
不同点:几何类型不同,一个是Multipatch类型,一个是3D Object类型;显示上的不同,3D Object可以表达高级的材质,如PBR材质,展示三维模型的反光和阴影效果,简单一张图就是:
3D object 要素类作为一种新兴的数据类型,相信会发展的越来越完善。欢迎有问题的小伙伴给我留言哦。