矢量面拉伸生成模型瓦片处理思路及流程


使用说明

SuperMap iDesktopX 支持将数据源中的矢量面数据拉伸生成模型瓦片文件。在场景中,能够大幅度提升模型浏览性能与显示效果。

本文从以下几个方面进行说明:

    1. 数据检查与处理;
    2. 发布服务;
    3. 在SuperMap iClient3D for WebGL/WebGPU中加载

其中涉及的产品有:SuperMap iDesktopX、SuperMap iServer、SuperMap iClient3D for WebGL/WebGPU。

操作流程

下面以240万个矢量面数据为例,进行介绍。

1、数据检查与处理

1.1数据检查

在SuperMap iDesktopX中打开矢量面数据集的属性表,分别依据层高和层数的字段值对数据进行排序,删除无效以及明显错误的面数据。

对属性表的详细操作,请参考 SuperMap iDesktopX 帮助文档浏览属性表。

1.2数据处理

(1)层高预处理:层高字段是作为后续对拉伸模型数据进行分层的参数,如果拉伸模型数据不分层,可以跳过此步骤。如果数据中自带了楼高、层高、层数,桌面会自动根据这三个参数进行拉伸分层,也可以跳过此步骤。

  • 新建层高字段:选中矢量面数据集,右键选择属性,单击右侧属性面板中的属性表,点击添加按钮,将字段名称和别名改为层高,类型选择双精度,点击应用按钮。
  • 添加层高字段值:层高字段值的设置可分为两类
    • 统一设置层高为指定的高度,具体操作如下:
    • 矢量面数据集,右键选择浏览属性表。选中层高字段,右键选择更新列。例如统一设置为3米。

    • 层高根据楼层高度/楼层数获得,具体操作如下:
    • 待更新字段选择层高字段,数据来源设置为双字段运算,第一运算字段选择楼高字段,运算方式选择除(/),第二运算字段选择层数字段。

      说明:HEIGHT为楼高,FLOORS为层数,两者相除即为层高。

(2)贴图预处理:矢量面拉伸后设置纹理贴图,需要在字段中添加侧面及顶部纹理图片字段、贴图模式字段、UV字段。

  • 纹理字段:相对路径(相对数据源所在位置)。
  • 贴图方式:提供实际大小、重复次数两种模式。重复次数即贴图重复放置的次数。实际大小指按照指定的尺寸大小进行贴图。
  • UV字段:贴图的实际尺寸(米)/ 贴图的重复次数(次);U:水平方向、V:垂直方向。

(3)面拉伸生成模型瓦片:选择三维数据-生成瓦片-面拉伸生成模型瓦片。其主要参数如下:

    基础参数

  • 拉伸高度字段:面对象拉伸的高度值,支持通过下拉菜单选择字段作为拉伸高度,也支持输入数值设置面拉伸的高度值,单位为米。
  • 底部高程字段:拉伸对象的底部高程值,支持通过下拉菜单选择字段作为底部高程值。
  • S3M版本:支持pbr材质需选择S3M 2.0及以上版本
  • 属性存储类型:ATTRIBUTE支持下载指定字段(属性不需要全部下载,下载指定字段,提升性能)
  • 瓦片参数

  • LOD层级数:通过输入指定数值作为LOD层级数,可对建筑模型实现分层简化。
  • 过滤阈值:可过滤掉粗糙层较小的子对象,从而提升大场景数据的性能。 例如,过滤阈值设为2,则在最粗糙层过滤掉最长边小于2米的子对象,次粗糙层过滤掉小于1米的子对象,以此类推。最精细层子对象不过滤。
  • 材质参数

  • 贴图模式:支持真实大小,贴图的实际尺寸(米);重复次数两种模式,贴图的重复次数(次)
  • 贴图字段:通过下拉菜单选择选择包含贴图文件路径信息的字段,从而获取贴图文件。

设置完成后,单击生成按钮,执行瓦片生成操作。详细操作,请参考 SuperMap iDesktopX 帮助文档面拉伸生成模型瓦片。

2、发布服务

  • 在SuperMap iDesktopX的工作空间管理器中,在场景下右键点击新建球面场景。
  • 图层管理器选中普通图层,右键点击添加三维瓦片图层,选择上一步骤生成的*.scp文件。
  • 添加瓦片图层后,保存场景和工作空间,该工作空间文件将用于发布工作空间类型的三维服务。
  • 保存工作空间后,在 %SuperMap iServer_HOME%/bin 目录下,点击startup.bat批处理文件,启动SuperMap iServer服务。
  • 打开浏览器,地址栏输入http://localhost:8090/iserver/manager 进入服务管理页面,点击快速发布一个或一组服务按钮。
  • 弹出快速发布服务-选择发布的数据来源对话框,在数据来源处选择工作空间,点击下一步。
  • 弹出快速发布服务-配置数据对话框,点击远程浏览按钮选择前述所保存的工作空间,点击下一步。
  • 弹出快速发布服务-选择发布的服务类型对话框,勾选REST-三维服务,点击下一步。

详细操作,请参考 SuperMap iServer 帮助文档发布文件型工作空间。

3、在SuperMap iClient3D for WebGL/WebGPU中加载

  • 获取三维数据url地址,按照如下顺序进行操作:

    进入服务列表页面(http://localhost:8090/iserver/services),找到并点击上一步骤所发布的三维服务;

    进入根目录页面,点击realspace;复制整个地址,如:“http://localhost:8090/iserver/services/3D-白模/rest/realspace”

  • 进入SuperMap iClient3D for WebGL/WebGPU产品包,在webgl文件夹下,以文本方式打开矢量范例。打开场景代码修改为:

    var promise = scene.open(‘http://localhost:8090/iserver/services/3D-BaiMo/rest/realspace’);

加载效果如下:

版权所有 © 2000-2025 北京超图软件股份有限公司 京ICP备11032883号-8 京公网安备11010502008721 甲测资字11002074