赞
踩
前言:随着数字中国建设进入三维时代,实景三维中国、城市信息模型平台全面推进,对三维可视化效果提出了更高的要求。我们的SuperMap Hi-Fi 3D SDK for Unreal 插件(以下简称UE插件)应运而生,打通了三维GIS与游戏引擎的跨界融合,将具有真实地理坐标的室外地理环境融合到游戏引擎,构建一个与真实世界一致的数字孪生地理空间。UE插件自推出以来,备受行业人士的关注,因此,小编整理了UE插件中白模美化与前端材质加载系列文章,将详细分享从白模数据的制作,到UE端的美化,以及导出美化后的材质如何在WebGL客户端中应用。下面本文将详细讲解如何基于建筑矢量面数据,在超图产品体系中,快速批量制作美化效果,并在 UE中展示的技术流程。
UE中白模美化主题文章:
UE中白模数据美化流程(原始数据为矢量面数据)请看:SuperMap Hi-Fi 3D SDK for Unreal 插件中白模数据美化流程(一)
UE中白模数据美化流程(原始数据为模型数据集)请看:SuperMap Hi-Fi 3D SDK for Unreal 插件中白模数据美化流程(二)
UE中导出白模美化后的材质并应用到WebGL客户端请看:SuperMap Hi-Fi 3D SDK for Unreal 插件中模型材质导出与前端加载
原始数据是建筑矢量面数据,属性表中需要有建筑高度或楼层数相关的属性,便于后期根据此属性拉伸成模型,示例中使用 Height 中的属性值。另外,在属性表中添加“侧面材质”,“顶面材质”两个文本型属性,用来设置模型对象要被赋予的材质类型。
我们需要在属性表里面,给每个模型对象设置想要被赋予的材质类型:
(1)设置顶面材质:本示例顶面材质上不做区分,通过更新列的方式,统一设置为“TOPMat”;
(2)设置侧面材质:这里根据建筑矢量面的 Height 属性,将建筑矢量面划分成 11 个区间,不同的高度区间,设置不同的材质类型,并将对应的材质名称“CityBuiMat1”-“CityBuiMat11”填入属性表中;比如,0-6m 的建筑,设置侧面材质为“CityBuiMat1”;6-12m 的建筑,设置侧面材质为“CityBuiMat2”,以此类推。
实现方法:
(3)最终结果如下
由于生成的缓存需要带有法线信息,以保证在 UE 中正确的显示效果,所以生成缓存的桌面版本需要是 11i(2022)及之后的版本。
选择“三维数据-生成缓存-面拉伸生成模型缓存” 功能,在弹出的面板中,选择建筑矢量面数据集。参数设置:指定生成缓存的路径;拉伸高度设置为“Height”;材质设置:首先需要勾选上材质模式,贴图模式选择“真实大小”;贴图字段分别选择“顶面材质”,“侧面材质”;如果使用我们提供的UE材质素材,这里的UV设置为“30”比较合适;设置完成之后,点击生成,得到S3M缓存数据。
(1)材质素材准备
我们提供了11种类型的材质素材,用于设置白模的外观,有需要的用户可以百度云下载,用户也可以使用自己的材质素材。
白模材质下载:https://pan.baidu.com/s/1CGvmbdzi-GdEr5BcrNFAPQ?pwd=vc2s
(2)拷贝材质包
新建一个 UE 工程,并安装UE插件,完成之后,将提供的建筑材质素材文件夹拷贝到 UE 工程 Content 文件夹下。
(1)在我们提供的资源包中,找到AutomaticMatchingMaterials_S3M.json 文件,将其复制到 UE 项目工程-Content-LayerInfo-Map 名称下面的文件夹下;
(2)修改 json 文件通过记事本等工具将复制的 AutomaticMatchingMaterials_S3M.json 文件打开。 "LayerName"后填写用户自己的白模缓存名称 : "Building", "Materials"中,默认给出了材质的关联关系,其中"AssociateMaterial"后面的材质名 称为 UE 中的材质;"OriginalMaterial"后面的材质名称为 S3M 缓存数据的材质名称,是在矢量面数据属性处理中,设置的顶面材质与侧面材质的属性值。
注:如果使用的是我们提供的材质素材,不需要修改"AssociateMaterial"后面的材质名称。
再次点击运行 UE,插件会自动根据材质的关联关系,将 UE 中的材质效果赋给白模,得到美化后的效果。
注:UE4和UE5插件均支持白模数据的美化,但导出美化材质应用到前端目前只有UE4插件支持,UE5暂时还没有迁移导出材质的功能。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。