news 2026/4/18 14:26:26

【高斯泼溅】大场景可视化的「速度与激情」:Mapmost 3DGS实时渲染技术拆解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【高斯泼溅】大场景可视化的「速度与激情」:Mapmost 3DGS实时渲染技术拆解

在华为鸿蒙HarmonyOS 6发布会上,华为与KIRI联合首发的3D空间记忆App——Remy正式亮相。

该应用基于3D高斯泼溅(3DGS)技术,可将普通视频转化为沉浸式3D空间模型,让用户能够重新进入、自由环视记忆场景实现从平面记录到立体空间回忆的升级。上线首日,Remy便以26万次下载量登顶应用市场。

华为开发者大会-Remy实现3DGS三维重建

加载3DGS大场景面临的困难

其实,3D高斯泼溅自2023年被提出以来,市面上已经有大量的加载3D高斯泼溅开源框架,并被广泛使用,如Unreal、李飞飞团队的Spark框架、GaussianSplats3D、gsplat.js等等。但是无论是Remy还是以上这些开源框架我们能看到的场景都不是很大。

那么,加载3DGS大场景有哪些困难和瓶颈呢?Mapmost SDK for WebGL如何加载大场景?

开源框架GaussianSplats3D-ThreeJS加载3DGS场景

1、内存瓶颈

一个“3DGS大场景”(例如,一个完整的城市街区、一个工业园区)可能需要数千万甚至数亿高斯点云来表达,每个高斯点需要存储其位置(3 float)、缩放(3 float)、旋转(4 float,四元数)、颜色(SH系数,通常是16或48 float)、不透明度(1 float)等。

一个拥有数百万甚至上千万高斯点的场景,其内存/显存占用会轻松达到数个GB甚至数十GB。那对于一个3DGS大场景来说,场景数据容易超过内存和显存容量(如消费级卡的8G, 12G, 24G)时,直接加载就会失败,导致程序崩溃或无法初始化

2、数据结构和算法的局限性

市面上大部分开源框架为了加载3DGS模型(.splat/.ply),需要在渲染每一帧前,对所有高斯点按照深度进行排序,这是一个复杂度为O(NlogN)的操作。所以对于有大场景,当N(高斯数量)极大时,排序本身就会成为性能瓶颈。

3、分块加载存在瓦片裂缝问题

针对一次性加载大数据量性能不足的问题,业界普遍采用将大场景在空间上划分为多个块(Tile)的方法,只加载和渲染当前视锥体及邻近区域内的块,这种方式有效解决内存和渲染性能瓶颈。

但是,因每个Tile内部高斯点单独进行深度排序,导致多个Tile一起加载时有明显的裂缝问题,实际是由于不同Tile的数据前后关系未正确渲染导致。

分块加载存在的裂缝问题

Mapmost的流式加载技术,让城市级场景流畅运行

Mapmost SDK for WebGL将3DGS融合进三维地图引擎,同时支持单个中小型3DGS模型的直接加载大场景3DGS模型流式加载,并且支持多源数据融合、三维量测、单体化等能力。

采用流式加载技术,Mapmost支持100km2城市级大场景的流畅渲染。

1、LOD流式加载

基于Mapmost 3DGS Builder高斯泼溅建模工具发布的3DGS服务,Mapmost SDK for WebGL采用先进的流式加载与多细节层次(LOD)技术,根据距离远近自动匹配最合适的模型细节层级,仅加载当前视野范围内的内容,同时智能剔除视野外的模型数据。有效减少不必要的渲染开销和内存占用,从而实现大规模3D场景的流畅、高效加载与展示

  • 加载3DGS大场景:

(1)使用Mapmost 高斯泼溅建模工具生成3DGS 切片服务

(2)在Mapmost SDK for WebGL中加载3DGS切片服务

map.addLayer( { id: '3dgs-layer', // 图层id type: '3DGS', // 加载3DGS图层类型需为'3DGS' isLOD: true, // 值为true开启LOD加载 isMerge: false, // LOD加载策略,false为分块加载,true为合并加载 url: 'http://192.168.230.20:8080/3dgs/', // 3DGS服务或本地路径 coord: [120.70463046720934, 31.32101804657302, 0], // 3DGS基准点坐标 });

Mapmost SDK for WebGL流式加载

Mapmost SDK for WebGL流式加载3DGS模型

2、接缝问题优化

针对将3DGS模型分块加载(isMerge: false)导致的“接缝”问题,Mapmost SDK for WebGL通过自研算法对每个Tile边缘像素进行处理,实现了3DGS模型的平滑展示。

Mapmost SDK for WebGL优化接缝问题

结 语

Mapmost 3DGS BuilderMapmost SDK for WebGL共同构成了完整的大场景3D高斯泼溅解决方案。

3DGS Builder提供从数据采集到模型生成的端到端建模能力,而SDK则通过流式加载和自研渲染算法,实现了对100km²城市级场景的高性能支持。这一技术组合突破了开始3DGS仅支持小场景的局限,为智慧城市、区域规划等大范围高精度可视化需求提供了可靠的技术基础,彰显了Mapmost在3DGS与实时渲染领域的技术领先性。

申请试用,请至Mapmost官网联系客服

Mapmost 3DGS Builder在线体验版已上线~

欢迎体验:studio.mapmost.com/3dgs

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 16:17:26

DeepSeek-Prover-V1.5:数学推理的里程碑,63.5%准确率刷新行业基准

DeepSeek-Prover-V1.5:数学推理的里程碑,63.5%准确率刷新行业基准 【免费下载链接】DeepSeek-Prover-V1.5-Base DeepSeek-Prover-V1.5-Base:提升数学证明效率的开源利器,融合强化学习与蒙特卡洛树搜索,助力Lean 4定理证…

作者头像 李华
网站建设 2026/4/18 11:47:12

突破64K上下文限制:LongAlign-13B-64k如何重塑长文本处理范式

突破64K上下文限制:LongAlign-13B-64k如何重塑长文本处理范式 【免费下载链接】LongAlign-13B-64k 项目地址: https://ai.gitcode.com/zai-org/LongAlign-13B-64k 导语 清华大学团队推出的LongAlign-13B-64k开源模型,通过创新训练策略将大语言模…

作者头像 李华
网站建设 2026/4/17 8:03:23

10、AWK 数组使用指南

AWK 数组使用指南 1. 数组基础 数组是用于存储一组值(字符串或数字)的变量。这些值或独立元素通过其在数组中的索引来访问,索引存储在方括号中,可以是数字或字符串。 AWK 语言提供一维数组来存储字符串和数字,数组名可以是任何有效的变量名,但在同一个程序中,一个变量…

作者头像 李华
网站建设 2026/4/17 4:38:33

11、AWK 数组操作与输出打印全解析

AWK 数组操作与输出打印全解析 1. AWK 数组基础 AWK 提供一维关联数组,即数组通过字符串值进行索引。可以使用 arr[index] 来引用数组元素,如果该元素不存在,会自动创建。例如: # 示例代码,创建并引用数组元素 awk BEGIN {arr["key1"] = "value1&quo…

作者头像 李华
网站建设 2026/4/16 21:34:02

12、AWK 输出打印全解析

AWK 输出打印全解析 在 AWK 编程中,输出打印是一项重要的操作,它涉及到多种格式规范修饰符以及输出重定向等功能。下面将详细介绍这些内容。 1. 格式规范修饰符 每个格式规范以 % 开头,以一个决定转换的字符(格式控制字母)结尾。在这之间,可能包含可选的修饰符,用于…

作者头像 李华
网站建设 2026/4/17 8:52:38

15、AWK 控制流语句详解

AWK 控制流语句详解 1. 条件判断语句 在 AWK 编程中,条件判断语句是非常重要的,它允许我们根据不同的条件执行不同的操作。 1.1 if…else 语句 if...else 语句用于在条件表达式为真或假时执行不同的操作。其语法如下: if ( conditional-expression )action1 elseacti…

作者头像 李华