搭建一个数字孪生场景,可能会用到手工建模、BIM 模型、倾斜模型等不同类型的数据,这些模型来源也可能很杂乱,有外包提供的、甲方拿来的、自己团队制作的。本想着把这些模型准确地融合在一起,然而,实际操作起来就像新手做饭,融合得像"黑暗料理"......
模型格式不支持?
三维模型格式繁多,包括.max、.blend、.c4d 等三维软件格式,以及.fbx、.glb、.obj 等相对通用的三维模型格式。当我们试图把模型加载到同一场景中会发现,许多特定格式因兼容性问题,无法被系统识别。
在 Web 环境与引擎环境中,较为通用的模型格式通常为 fbx 、glb 、gltf 格式,这三种格式能够很好地将模型中包含的纹理文件嵌入到模型资产中,防止文件丢失。
模型位置错乱?
当模型文件统一好格式后,我们把模型资产丢入环境中融合时,发现模型位置出现偏移,有的模型在坐标原点,有的模型在较远的地方,根本没法好好凑到一块儿。
之所以会出现这种状况,是由于不同出处的模型在构建时,没统一好 "起跑线" ,也就是模型基点。要想解决这难题,需要给不同来源的模型,设定一个统一的模型基点,让它们都站在同一起跑线上,具体步骤如下:
- 给每个三维场景提供一张"位置地图",地图上需要标注出基点(可以是任意一个特征位置);
- 模型参照位置信息进行正确摆放;
- 结合基点进行模型的中心点重置。(中心点重置步骤可参考往期文章)
模型尺寸不对?
模型基点统一好后,新问题又冒出来了。模型展示时尺寸差距太大,大的模型看着像巨物,小的模型却跟个玩具似的,完全不成比例。
这类问题出现,是因为软件的默认单位不同。例如,Blender 的默认单位是米,C4D 的默认单位是厘米等。所以,不同的三维软件在搭建模型与模型导出前需要统一默认单位,让模型们都能在同一个单位体系下正确展示。
模型朝向乱了?
简单的模型导出环节也会有隐藏的坑点。例如在软件里显示正常的模型,导出后的模型好像失控了一样,与软件中的朝向大相径庭。
这个问题是由于三维软件之间的轴向差异 导致的,仔细观察会发现,常用三维软件的坐标轴朝向都存在差异。因此在模型的导出过程中,需要针对模型最终加载环境,结合每个软件的轴向特点进行轴向调整,避免模型朝向问题。
模型在影像上位置错乱?
在完成模型与模型之间的融合操作后,如何将模型文件与影像进行融合,成了新的挑战。若直接把模型叠加到影像上,模型所处位置和真实位置会出现较大偏差。
Mapmost SDK for WebGL加载效果
想要让模型与影像位置重叠并不难,根据往期文章中提到的经纬度获取办法,结合问题二中的模型基点,即可快速完成模型与影像的融合。
前文指路 :【从零打造视觉盛宴·基础篇】从"假"到"真"搭建三维场景!
Mapmost SDK for WebGL加载效果
当然模型和影像的融合,不仅是坐标的问题,模型与影像间的重叠压盖问题也十分常见。
Mapmost SDK for UE5显示效果
想要解决这个问题需要结合工具对影像数据进行裁剪,让模型完整展示出来。
以上是笔者梳理的三维模型融合方法。模型融合领域仍然有较多难题,比如道路模型怎么自动贴到倾斜模型上?欢迎在评论区分享交流,一起探寻解决方案。
在三维场景搭建的过程中,我们不断追求真实与效率的平衡,探索可视化呈现的更优解。无论是通过优化模型细节、提升光影效果,还是借助工具快速排查问题,每一步都是为了让虚拟世界更贴近现实,让数据变得更直观、更有价值。
Mapmost SDK for WebGL 不仅支持三维模型融合,还能具备模型渲染、数据分析等能力。帮助开发者轻松实现高质量的三维场景还原。点击此处即可跳转体验~
关注 Mapmost,持续更新 GIS、三维美术、计算机技术干货
Mapmost 是一套以三维地图和时空计算为特色的数字孪生底座平台,包含了空间数据管理工具(Studio)、应用开发工具(SDK)、应用创作工具(Alpha)。平台能力已覆盖城市时空数据的集成、多源数据资源的发布管理,以及数字孪生应用开发工具链,满足企业开发者用户快速搭建数字孪生场景的切实需求,助力实现行业领先。
更多应用场景,点击此处前往Mapmost官网体验!