SuperMap精模数据处理流程及注意事项


前言

本文主要是针对城市级精细模型数据。为了使数据在前端使用调度更合理,加载速度更快,显示层次更鲜明,本文主要讲述数据生成缓存的参数设置及生成缓存前数据整理的建议。


一、精模数据特点

精模是面面俱到,所有的四面结构、造型、门窗、物体都要按比列构建的模型,是三维城市构建器的基底图层,支持独立的样式和数据配置,包括精模的阴影设置和精模的动态效果等。

二、常用优化方式

2.1 数据合理分类

一般精模数据在建模时都是将不同类别的数据建在一个文件里面的,导致我们后续在使用过程中不太好针对某种类型的数据做操作,因此可以将模型数据进行分类,不同类型的数据对应不同的图层:
●精模数据需按照地板(道路和水系也可以归到地板里)、建筑、小品、植被几大类进行区分,并单独存放数据集。
数据分类时,需要把小品中明显是地块部分的放到地板类型中;把栏杆、围墙等长条状(长超过10米的对象)的对象摘出来放到地板中;把大型的对象(比如建筑施工的吊塔、跨度大的天桥、大型雕塑等)放到建筑分类中。
可以在SuperMap iDesktop中打开模型数据集的属性表,找到模型对象的标识字段(如下图模型的标识字段为name),然后筛选出想要单独分类的数据,另存为新的模型数据集:
在这里插入图片描述
●每份数据大小应在100平方公里左右,且每份数据都是连续的,不要跨区域存放。比如,现有数据160平方公里左右,可以先大块的分成两部分,A部分100平方公里左右,B部分60平方公里左右。
●根据第一项的分类原则,将数据分成地板、建筑、小品、植被四个数据集,这样整个数据就会有8个模型数据集。

2.2 模型优化

2.2.1 移除重复点、重复面、重复子对象

由于模型本身具有一定的复杂性,我们拿到一个模型的时候并不知道该模型在建模过程中是否有产生冗余数据,此时我们可以使用iDesktop【三维数据】-【模型工具】-【模型校正】中的【移除重复点】、【移除重复面】、【删除重复子对象】功能去除模型中存在的冗余数据。
在这里插入图片描述

2.2.2 模型检查

通过【三维数据】-【模型工具】-【模型检查】对模型进行检查,判断是否有过多的顶点或是三角面。一个单独对象的三角面数不要超过3万个,若超过3万个三角面,则应该分成2个或多个对象。
在这里插入图片描述
检查完成之后在iDesktop输出窗户会输出相应的模型信息:
在这里插入图片描述

2.2.3 顶点数提取

模型检查可以看到对应数据集是否需要进行简化,并不能具体到某个对象,可以使用【三维数据】-【模型工具】-【属性提取】工具提取到每个模型对象的顶点数量:
在这里插入图片描述
提取完成之后可以在模型属性表中找到VertexCount字段,我们去筛选出对象定点数大于10w的对象进行处理,与此同时检查模型中是否有顶点数小于等于4的,并检查小于等于4的对象是否为正确数据,如果为错误数据通过【删除行】删除掉即可。

2.2.4 三角网简化

通过上面的检查,我们可以知道哪些是三角面(顶点数)过多的对象,从而进行针对性的简化。使用【三维地理设计】-【模型编辑】-【三角网简化】功能去简化模型:
在这里插入图片描述
根据模型实际情况进行简化对比,窗口会自动创建两个场景左侧场景为原始数据,右侧场景为简化后数据。根据调整简化信息中的状态条进行简化。如果模型本身过于精细,通常可以拉到50%的状态进行查看,如果模型出现明显形变,则再向右侧进行调整。以实现对整体的三角网进行简化操作。注:如果场景中存在顶点数跨度较大的模型,如一个对象80个顶点而另一个对象1万个顶点的情况,可以在简化时设置简化过滤三角面数(顶点数)的范围,适当增大左侧范围值,只简化复杂模型。
在这里插入图片描述

2.2.5 子对象三角网简化

通常一个模型中可能会包含有很多个子对象,在整体简化的过程中可能会出现有的子对象以及简化得过多,发生形变,而某些子对象则还需要进一步简化的情况,此时【三角网简化】就不再适用与这类模型了,需要通过【三维地理设计】-【模型编辑】-【操作子对象】进行简化。
在这里插入图片描述
找到图层中顶点数(三角面)较多的对象,选中时候即可查看到当前选中的对象的数值,以及ID,根据实际情况进行简化即可。

2.2.6 模型拆分

拆分原因:
在实际的应用中,当我们做完上面几步操作之后还有可能会出现某些图层加载过慢或者场景卡顿的情况,此时可能是因为部分模型在建模时,创建的族类型较为复杂,在最终的模型中单个对象存在较多对象。
拆分步骤:
我们可以使用【三维地理设计】-【模型编辑】-【模型拆分】功能将模型拆分成多个对象:
在这里插入图片描述

2.2.7 模型切分

针对道路或者桥梁等模型,存在单个对象很长的情况,此时模型就较于复杂,不利于使用,对此类型数据的优化通常采用模型切分的方式,将长的模型切分成多段小模型。使用【三维地理设计】-【模型编辑】-【模型切分】工具。
在这里插入图片描述
同样也是根据实际情况进行切分,同样尽可能减小单个对象三角网数量,使其三角面不超过3w,顶点数不超过10w。

2.3 贴图优化

2.3.1 纹理格式

JPG、PNG、TIF。为了减少数据量,不建议使用TIF贴图。

2.3.2 纹理大小

纹理长、宽均为2的n次幂像素值;建筑物纹理尺寸控制在1024×1024以内,地形纹理尺寸控制在512×512以内。

2.3.3 纹理色调

纹理色调统一采用上午10点钟有阳光的地物表面的色调,要求纹理清晰,色调均衡、和谐统一,色彩美观、明亮、柔和。

三、生成三维切片缓存

●对模型数据集生成缓存,使用数据集右键-【生成缓存】功能。
●对数据生成缓存,设置缓存参数,可以参考下述中的参数设置:
下面参数设置主要以【三维数据】-【生成缓存】-【模型】以及【右键数据集生成缓存】参数设置为主,场景缓存中同样包含以下参数,但缺少部分参数设置。
【数据集】:显示了用于生成三维切片缓存的数据集名称。
【数据源】:显示了用于生成三维切片缓存的数据集所在的数据源的名称。
【缓存类型】:显示了所要生成的三维切片缓存的类型。缓存类型为下拉按钮,下拉列表中列出了所选数据所支持的所有缓存类型,用户可从中进行选择。
【场景类型】:场景类型为球面,当数据集坐标系为投影坐标系时,场景类型支持切换为平面。
【缓存路径】:在“缓存路径”右侧的文本框中输入缓存的输出路径,可以为本地路径,也可以为网络路径;用户还可以通过文本框后的“浏览”按钮来选择路径。
【属性存储类型】:支持两种属性存储类型,S3MD和ATTRIBUTE,提高属性文件的下载效率。其中S3MD的是以json的方式存储,ATTRIBUTE以二进制流的方式存储。
【文件类型】:文件类型为S3MB数据格式。
【材质关联文件】:支持*.json格式的材质关联文件。
【S3M版本】:支持两种S3M版本号,S3M1.0、S3M2.0、S3M3.0。其中S3M2.0支持PBR材质。S3M3.0支持椭球以及 顶点MeshOpt方式压缩。
【线程数】:设置参与生成缓存的线程数,使缓存生成更加高效,默认为4。
【模型定位点】:用于设置模型追加生成缓存的参数,追加模型数据集生成缓存时,模型定位点应当与追加前的模型数据集的定位点保持一致。
【纹理压缩格式】:目前支持七种压缩类型:WebP、DXT(PC设备)、CRN_DXT5(PC设备)、PVRTC(iOS系列设备)、ETC(Android系列设备)、不压缩,默认为DXT(PC设备)。对于不同用途的数据,采用不同的纹理压缩方式,可以减少纹理图像所使用的显存数量。 不压缩:默认的纹理格式。
●WebP:适用于 Web端/PC机上通用的压缩纹理格式。数据总量减少,提高传输性能。
●DXT(PC设备):适用于 PC 机(个人计算机)上通用的压缩纹理格式。显存占用减少,提升渲染性能,但是数据总量会增加。
●CRN_DXT5(PC设备):适用于 PC 机(个人计算机)上通用的压缩纹理格式,显存占用少许减少,数据总量大幅度减少,但是需要较长的处理时间。
●标准CRN:适用于 PC 机(个人计算机)上通用的压缩纹理格式,显存占用少许减少,数据总量大幅度减少。处理相同数据,所需时间比CRN_DXT5长。
●PVRTC(iOS系列设备):适用于苹果 iOS 设备上通用的压缩纹理格式。以此种方式进行纹理压缩时,同时会生成一个离线地图包,方便 iOS 设备用户使用。
●ETC(Android系列设备):适用于 Android 设备上通用的压缩纹理格式。以此种方式进行纹理压缩时,同时会生成一个离线地图包,方便 Android 设备用户使用。
【金字塔剖分类型】:用于设置缓存切片创建树型金字塔的剖分类型,应用程序提供了四叉树和八叉树两种方式。其中,四叉树适合城市级别的建筑剖分;八叉树适合单独一栋高楼做剖分,主要应用于 BIM 数据。
【过滤阈值】:过滤掉粗糙层较小的子对象,从而提升大场景数据的性能。 例如,过滤阈值设为2,则在最粗糙层过滤掉最长边小于2米的子对象,次粗糙层过滤掉小于1米的子对象,以此类推。最精细层子对象不过滤。
【瓦片边长】:一个切片的范围,一般默认就行,如果数据精度高,瓦片边长可适当缩小;如果数据较粗糙,瓦片边长可适当增大。
【字段信息】:用于设置生成三维切片缓存的属性字段,默认生成全部字段信息。
【合并根节点】:勾选合并根节点后,可设置根节点合并次数。如输入1,即模型根节点将进行一次合并处理。
【带法线】:默认勾选带法线,根据需求可自行勾选。
【带线框】:用于生成三维切片缓存的轮廓。
【纹理设置】:目前支持两种纹理设置:多重纹理和单重纹理。多重纹理支持生成叠加纹理,单重纹理仅支持生成第一重纹理。
【纹理处理方式】:用于设置生成的缓存的纹理处理方式,提供了拼接、拼接且重映射和重映射三种方式。其中,拼接适用于三角网较密集的数据,对于这类数据采取拼接的方式会提高生成缓存的效率。
【纹理大小限制】:用于设置纹理大小,可选不限制、1024像素1024像素、2048像素2048像素以及4096像素*4096像素等选项,默认为不限制。
纹理共用、重复贴图打组2个选项:默认勾选重复贴图打组,根据需求可自行勾选。
【对象字段ID】:用于设置唯一标识ID的字段,通过下拉箭头进行选择。
【顶点权重模式】:提供无、数据集字段、高度和原始特征值四种方式。其中,数据集字段是指以指定字段作为权重,高度是指以高度作为权重,原始特征值是指以模型数据本身的特征值作为权重。
【顶点优化方式】:只有当顶点权重模式为无时,可以设置顶点优化方式。提供压缩顶点和不压缩两种方式。
【特征值】:只有选择数据集字段作为顶点权重模式时,该选项可用。单击右端下拉箭头指定字段。
【瓦片范围】:在“瓦片范围”区域进行设置,有下面两种方式: 勾选“默认范围”复选框,默认采用数据集的范围。

在这里插入图片描述
在这里插入图片描述
推荐参数设置
【S3M版本】:S3M3.0
【几何压缩】:MeshOpt
【纹理压缩】:CRN_DXT5 ;KTX2.0(移动端)

●对于地板(包括道路和水系)这类数据结构不复杂,需要初始显示时快速、大片区域的加载,可以设置较大瓦片边长,过滤阈值设置小一些甚至可以为0。
●对于建筑这部分数据由于结构复杂、空间分布相较于地板更密集,所以瓦片边长可以适当调小或设置600米。结合项目使用需求,可以对纹理设置及纹理大小限制做一些调整。
●对于小品通常体积不大,在整个大场景可视占比不高,只要在近处时能快速加载出来就行,可以设置一个相对较小的瓦片边长(为了设置最大可见距离使用)和设置一个较大的过滤阈值(让细小的构件在相对远处能被过滤掉)。
●对于植被数据会有成片区、密集分布的情况,且数据结构不复杂,这时瓦片边长可以适当设置大些,但可以设置一个较大的过滤阈值,用于过滤远处细小的对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值