如何导入三维模型

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ceibake/article/details/80932363

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文件)。

此工具可以指定模型的坐标系,如果不知道模型的坐标系是什么,建议设置Web Mercator坐标系。如果不指定坐标系,结果Multipatch的坐标系是Unknown,Pro场景中不能显示Unknown坐标系的数据。

不论三维模型的实际位置是否正确,导入到Pro后,Multipatch都在(0,0)的位置。

这是一个已知问题。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 模型的名称,批量导入时可以将模型放置到与之匹配的点上,点的高程值是地面的实际高程值。

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

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

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

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

2、编辑状态下替换模型

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

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

  7. 定义图层高度特征

  8. 加载模型到Pro中,有时模型不容易被找到,已确认为2.2版本的内部Bug,将在2.3版本中修复。

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页