单体化解锁3DGS场景深层交互价值,让3DGS模型真正被用起来!

3D高斯泼溅(3DGS)爆火,但你的模型还不能实现单独对象的选择?

短短数月,3DGS凭借逼真的细节(连电力线弧度都清晰可见)成为数字孪生新宠,GitHub星标破万,工业界争相集成。但实际使用时,开发者常遇到一个关键问题:3DGS输出的模型是个"无缝整体",建筑、树木、车辆全"粘"在一起,想单独选中某个对象?目前还很困难。

Mapmost团队深耕三维可视化多年,曾用一套成熟的倾斜摄影单体化方案解决过类似难题。这次,我们带着实战经验进入3DGS领域,测试了几种3DGS单体化实现方式和效果与大家分享。

一、倾斜模型单体化经验

我们知道,倾斜摄影模型是一个连续、无缝的三角网模型 ,俗称的"一张皮"模型。由于地物在几何层面未被分离,此类数据无法直接选中或操作单个地物(如独立选择一栋建筑),必须借助后续处理手段才能实现"单体化"。

常见的方法有以下几种:

# 方法一:对倾斜摄影模型进行切割,即把连续的三角面片网从物理上分割开,从而实现单体化。

方法二:利用三角面片中每个顶点额外的存储空间,把对应的地物的ID值存储起来;即一个建筑所对应的三角面片的所有顶点,都存储了同一个ID值,从而实现在鼠标选中这个建筑时,该建筑可以呈现出高亮的效果。

**方法三:**三维场景渲染后,框定空间范围,把该范围内的模型高亮,动态地实现倾斜摄影模型选中的效果。

二、3DGS单体化探索

3DGS模型与倾斜摄影模型在重建过程上具有相似性,两者在重建过程中都不能自动区分不同语义类别的地物,输出结果同样是一个整体。但3DGS模型并不像倾斜模型那样拥有三角面片,而是3D高斯椭球,终究是有区别。

因此,**3DGS模型单体化可以参考倾斜摄影模型单体化的思路,但也面临独特挑战。**我们逐一测试了几种方案,测试结果如下:

#01 将目标地物分割为独立模型

通过对3DGS模型人工编辑,可以将其分割为多个独立模型 ,但前端加载多个独立3DGS模型会带来显示问题:如下图中,位于更远处的电力塔遮挡住了位于更近的建筑,空间遮挡关系出现错误。

因为3DGS模型是半透明的,前端渲染中半透明渲染问题需要额外的计算和处理。

Mapmost SDK for WebGL加载多个3DGS模型

#02 存储地物标识ID

在3DGS数据中为每个高斯点存储所属地物的ID ,理论上可以实现类似倾斜摄影模型的ID单体化。但是,实际上难以达到使用要求。

  • **渲染卡顿:**在渲染时需要遍历每个高斯点找到对应ID,会引入额外的计算,严重影响渲染效率。
  • **边缘不清晰:**在渲染时,每个高斯点会绘制成椭球,如果仅根据标识的高斯点进行渲染,边缘会有"锯齿状"的效果,椭球越大越明显。如下图中这样,除了建筑,周边区域也被高亮了。

存储标识ID实现单体化

#03 动态单体化

通过自定义包围盒来框选3DGS模型进行高亮 ,以实现动态单体化,确实带来了较好的效果。

Mapmost SDK for WebGL实现3DGS动态单体化

在Mapmost SDK for WebGL中,可使用和倾斜模型同样的方式 实现动态单体化。还是原来的接口,用户只需设置二维范围、底面起始高度以及在垂直方向上的拉伸高度即可完成包围盒的设置,添加单体化高亮颜色以及颜色透明度,即可实现3DGS模型的动态单体化。

三、总结

3DGS虽潜力无限,可若连最基础的"选中单个对象"都做不到,再逼真的模型也只能停留在"看"的层面 ------而业务场景需要的是"交互"。

Mapmost此次验证的动态单体化方案 (兼容倾斜摄影成熟接口,仅需几行代码设置包围盒),正是那座连接**"视觉效果"与"业务逻辑"的关键桥梁。它不仅解决了3DGS的单体化难题,更让开发者能快速将三维模型转化为可操作的生产力工具**。

如果你也在探索3DGS的深度应用,不妨试试Mapmost的方案。

免费试用Mapmost SDK for WebGL:

www.mapmost.com/#/layout/we...

动态单体化文档:www.mapmost.com/mapmost_doc

相关推荐
Csvn2 小时前
WASM
前端
修己xj3 小时前
我用 AI 给自己写了一个 Markdown 编辑器,然后把它开源了
前端
FRing033 小时前
vue2干货总结2(v-bind、v-for、v-model、指令修饰符、v-bind操作class和style)
开发语言·前端·vue.js·vue2
幸运小猿4 小时前
模拟慢上传-处理超时重试image 丢失线上问题
前端·javascript·html
moshuying5 小时前
网购能买Token了!
前端
h_65432105 小时前
echarts实现柱状图加一条横线
前端·echarts
风骏时光牛马6 小时前
生成一个后端标题,只需要一个标题,不需要其他的任何文本。
前端
子非鱼@Itfuture6 小时前
关于前后端联调中登录状态/登录信息失效?
java·前端
郭小李6 小时前
openFeign入门
java·开发语言·前端
馒头不想说话6 小时前
AI当运营,帮你省人力
前端