如何导入三维模型

3
分享 2018-07-18
ArcGIS软件支持导入的三维模型格式

高级版CityEngine支持导入 .dae、.dxf、.gdb、.kml、.kmz、.obj、.osm、.fbx、.shp。
ArcMap和ArcGIS Pro支持导入.3ds、.wrl、.skp、.flt、.dae。
了解软件支持导入的格式很重要,很多用户将数据导出为.3ds格式,ArcMap和ArcGIS Pro支持导入,但是CityEngine不支持。DAE是非常有用的格式,因为它是建立在一个开放的标准XML模式之上的,支持网格几何元和纹理。
如果要在ArcGIS平台中使用这些格式的模型,制作时需要注意以下几点:

  • 基于物体的轮廓建立真实大小的模型,以避免模型导入后的比例缩放操作。
  • 每个物体保存成单个的文件,导入后便于单个模型的移动。
  • 所有模型“贴图”尺寸要保证是“2N次方”的尺寸,如(256×256,512×512 等)。
  • 尽量不要使用“镜像”物体,镜像容易导致数据丢失。
  • 树木、建筑等模型的中心点需要在模型底部中心位置。
  • 需要记录模型的坐标系及中心位置。在导入到ArcGIS平台时,可以直接输入模型的坐标系及中心点位置。



ArcGIS平台中不能直接读取这些格式的模型,需要先将这些模型转为Multipatch(多面体)或Shapefile格式。Multipatch可以保存模型纹理信息,Shapefile格式不支持存储纹理。点击这里查看Multipatch的详细介绍。
将三维模型转换为Multipatch,有三种方法:

  • 直接转为Multipatch。适合于处理大量的具有正确位置的三维模型。
  • 编辑状态下替换模型。适合于新内容的创建或现有多面体的交互式更新。
  • 将符号化点转为Multipatch。适用于数量较少的不具有正确位置的三维模型。还适用于使用重复符号进行 3D 渲染的图层,例如包含少量住宅模型的计划建筑区域。




1、将模型直接转为Multipatch

最快的方法是直接使用GP工具Import 3D Files(导入3D文件)。

0.jpg


此工具可以指定模型的坐标系,如果不知道模型的坐标系是什么,建议设置Web Mercator坐标系。如果不指定坐标系,结果Multipatch的坐标系是Unknown,Pro场景中不能显示Unknown坐标系的数据。
不论三维模型的实际位置是否正确,导入到Pro后,Multipatch都在(0,0)的位置。

1.jpg


这是一个已知问题。NIM099771 -Using the Import 3D Files tool with the placement points parameter to define a spatial reference places all models at 0,0 instead of on the points.
使用Import 3D Files导入模型时,可以使用点要素类指定模型的实际位置。如果点要素类的坐标系是Web Mercator,那么此工具中的坐标系参数就定义Web Mercator,也就是坐标系参数需要和点要素的空间参考相匹配。点要素类中还需要有个文本型字段,存储各点相关联的 3D 模型的名称。点的高程值是地面的实际高程值。

2.jpg


结果有一半模型被埋在地下了。这个和图层的高程类型有关。

3.jpg



修改Multipatch图层的高程类型为On the Ground(地面上)就可以了。地面上,适用于坐落在地面上的要素,如路灯、树等。 

8.jpg

 
如果图层的高程类型选择是相对于地面的,一种方法是使用Move to修改Multipatch的Z值。

6.jpg

另一种方法是修改点要素类的高程值。然后再使用Import 3D Files导入。

4.jpg





2、编辑状态下替换模型

Replace Multipatch从工具名就可以看出,只适用于多面体要素。

7.jpg



3、将符号化点转为Multipatch

详细可参考ArcGIS Pro中如何将点替换为3D模型


关于纹理

很多问题都是关于纹理丢失,先说几点注意事项:
  • 1)模型需导出为Multipatch格式存储在.gdb(文件型地理数据库)中,才能保留纹理信息。
  • 2)3ds不能存储纹理,纹理图片需要和3ds放在同一文件夹中。
  • 3)wrl的纹理数据要放在wrl上层目录的maps文件夹中,使用Import 3D Files导入时,需勾选Y is Up。10.1及10.2.1导入wrl不能保留纹理是已知问题。Bug NIM098234 Import 3D File does not import textures from wrl file created using Geomagic. 10.5.1版本中测试已修复。
  • 4)obj及其贴图的路径及文件名尽量避免中文、特殊符号。



常见问题汇总:

sketchup模型导入CityEngine中部分纹理丢失
模型自3ds Max导出成OBJ纹理丢失或发生变化
ArcGIS Pro2.0打开3D模型显示很模糊
如何使用ArcScene导入.3ds(3ds Max导出文件)才能正常显示?
10.2版本导入3Dmax模型异常
有3dsmax源文件,想发布成服务,让别人来调用
ArcGIS Pro中发布3ds模型后,在Portal中丢失纹理


最后一句,ArcGIS Pro2.2版本中支持贴图啦,欢迎围观。



参考及扩展阅读:
  1. CityEngine支持导入的格式
  2. Import 3D Files
  3. 如何将现有 3D 模型导入到多面体要素类中
  4. FAQ: How do I Import existing 3D modeling data
  5. 根据模型创建带纹理的建筑物
  6. Apply textures to a multipatch feature


文章来源:https://blog.csdn.net/ceibake/article/details/80932363

5 个评论

请问用Import 3D Files工具导入后,位置与实际偏移很大,是什么原因?
指定位置了吗?
没有指定,没有点要素类数据
那位置不对是正常的啊。可以编辑状态下,移动到正确的位置
路过

要回复文章请先登录注册