写点什么

HarmonyOS 7(API 26) 新特性解读 _ Spatial Recon Kit 3DGS 端侧重建:手机拍摄即建模,分钟级生成高精 3D 场景

  • 2026-09-29
    北京
  • 本文字数:2864 字

    阅读完需:约 9 分钟

AI摘要

HarmonyOS 7(API 26)集成Spatial Recon Kit,首次在端侧实现基于3D Gaussian Splatting的轻量级3D场景重建与实时渲染。该能力支持手机多图输入、分钟级建模、千万级高斯点流畅渲染,无需云端或专业设备。

端侧3DGS重建支持位姿估计与关键帧自动筛选,输出PLY点云与MP4运镜视频;采用Tiled 3DGS架构,结合LOD分层与重要性剔除保障实时性;重建门槛大幅降低,适配旅游、教育、社交等交互型空间计算场景。

适合AR/VR应用开发者、空间计算工程师、端侧AI模型部署工程师阅读。

本原创文章帖发布在华为开发者联盟社区,欢迎开发者前往访问评论交流,更多与该内容相关讨论,请点击原帖查看:

HarmonyOS 7(API 26)新特性解读 _ Spatial Recon Kit 3DGS端侧重建:手机拍摄即建模,分钟级生成高精3D场景

Spatial Recon Kit 基于 3D Gaussian Splatting(3DGS)提供端侧空间重建、渲染和编辑能力。开发者可通过多角度图像采集真实场景,并在支持 Spatial Recon Kit 的 HarmonyOS 设备上完成 3DGS 模型重建与呈现。该特性解决了传统 3D 建模依赖昂贵硬件、耗时长的痛点,为旅游、教育、社交等领域提供了低门槛、高交互性的空间计算解决方案。

特性描述

Spatial Recon Kit 围绕 3DGS 构建了从数据输入到最终呈现的完整链路:

  • 空间重建:支持输入多角度图像及相机内参,利用端侧 AI 自动进行位姿估计与关键帧筛选,快速生成 3DGS 模型。输出格式支持 PLY 点云及 MP4 运镜视频。

  • 实时渲染:基于 Tiled 3DGS 技术,支持千万级高斯点的流畅渲染。通过 LOD 分层、瓦片按需加载及重要性剔除等优化手段,确保大场景下的实时交互体验。

  • 空间编辑:提供显式高斯点的编辑能力,支持主体提取(框选/反选/删除)、刚体变换、缩放及 3D 包围盒估计,使重建结果具备可二次创作性。

  • 风格滤镜:内置复古、漫画、黑白、颜色编辑等四类风格化滤镜,可一键为 3D 渲染画面赋予艺术效果。

典型应用场景

  • 旅游——景区空间预览:游客出发前沉浸式预览景点,规划游览路线。3DGS 将景区还原为可漫游的空间模型,足不出户即可"走进"目的地。

  • 教育——立体知识模型:生物标本、地理地貌等三维可视化,让知识可触摸。学生可从任意角度观察立体模型,比平面图片获得更直观的空间认知。

  • 文物保护——数字化存档:为古建筑、文物建立高精度数字孪生,永久保存。3DGS 重建的高精度模型可用于远程展览、修复参考和学术研究。

  • 社交——3D 空间分享:将真实空间重建为 3D 模型分享给好友,开启空间社交新范式。用户可通过 Remy 等应用拍摄并分享 3D 空间照片,让社交内容从二维走向三维。

  • 终端交互——3DGS 空间影像壁纸:将 3DGS 重建的空间模型设置为锁屏/桌面壁纸,随设备倾斜产生视差效果,让静止画面呈现空间深度感,打造沉浸式视觉体验。艺术家先创作视觉母版,经图生视频与 3DGS 重建,让静态艺术图变为能随视角变化的空间壁纸——艺术定风格,技术赋空间,融合更出彩。

对比传统 3D 建模方案

技术实现指南

关键 API/接口

  •  C++ 侧(重建):

  1. HMS_SpatialRecon_IsSupport: 检查设备支持情况。

  2. HMS_SpatialRecon_CreateSession: 创建重建会话。

  3. HMS_SpatialRecon_PushFrame / HMS_SpatialRecon_PushARFrame: 输入图像数据帧。

  4. HMS_SpatialRecon_StartSession: 启动重建任务。

  5. HMS_SpatialRecon_SaveResultToFile: 保存重建结果。

  • ArkTS 侧(渲染):

  1. spatialRender.GSPlugin.loadGSNode: 加载 3DGS 模型节点。

  2. rf.createEffect: 创建风格化滤镜效果。

适配指导/注意事项

  • 硬件要求:空间重建对算力要求较高,当前仅保证在麒麟 9020/9030S/9030/9030 Pro 及后续旗舰芯片上的体验。开发前务必调用 HMS_SpatialRecon_IsSupport 进行检查。

  • 数据输入规范:图像尺寸严格限制为 1080px × 1440px,其他尺寸结果未定义。图像格式为 RGB。需提供相机内参(focalX, focalY, principalX, principalY)及 7 维位姿(四元数+平移)。

  • 性能与热管理:建议订阅 COMMON_EVENT_THERMAL_LEVEL_CHANGED 公共事件,设备过热时自动调用 HMS_SpatialRecon_PauseSession 暂停重建,避免卡顿或损坏硬件。根据应用前后台状态调用 HMS_SpatialRecon_SetRunningMode,帮助系统合理分配资源。

  • 会话互斥:同一时刻仅支持一个 Session 进行重建或保存 MP4,禁止并发操作。

  • 地域限制:Spatial Recon Kit 仅支持中国境内(不含港澳台),暂不支持模拟器。

代码示例

  • C++:创建会话并启动重建

#include "spatial/spatial_recon_interface.h"// 1. 检查支持情况HMS_SpatialReconStatus ret = HMS_SpatialRecon_IsSupport(SPATIAL_RECON_MODEL_TYPE_GS);if (ret != SPATIAL_RECON_STATUS_SUCCESS) {    // 处理不支持的情况    return;}// 2. 创建会话HMS_SpatialRecon_Session* session = nullptr;const char* workPath = "/data/storage/el1/base/spatial_recon_files/";ret = HMS_SpatialRecon_CreateSession(SPATIAL_RECON_MODEL_TYPE_GS, workPath, &session);// 3. 输入数据帧(示例:自定义数据帧)HMS_SpatialRecon_DataFrame frame;frame.imageWidth = 1080;frame.imageHeight = 1440;frame.format = SPATIAL_RECON_IMAGEDATA_FORMAT_RGB;// ... 填充 frame.focalX, frame.imageData 等 ...HMS_SpatialRecon_PushFrame(session, &frame);// 4. 注册回调并启动auto onFinished = (HMS_SpatialReconStatus status, void* data) {// 重建完成处理// ... 组装对应的保存时需要的配置,开发者可以根据需要保存为PLY(点云)或运镜视频文件(MP4)。  HMS_SpatialRecon_ModelWriteInfo info = {};    info.modelFormat = SPATIAL_RECON_OUTPUT_FORMAT_MP4;    // 保存重建结果到文件    HMS_SpatialReconStatus ret = HMS_SpatialRecon_SaveResultToFile(session, &info, NULL);};HMS_SpatialRecon_RegisterNGCallbackFunc(session, onFinished, nullptr);HMS_SpatialRecon_StartSession(session, nullptr);// 5. 销毁会话HMS_SpatialRecon_DestroySession(session);
复制代码

  • ArkTS:加载并渲染 3DGS 模型

import { spatialRender } from '@kit.SpatialReconKit';import { Scene, RenderContext } from '@kit.ArkGraphics3D';let renderContext: RenderContext | null = Scene.getDefaultRenderContext();if (renderContext != null) {    renderContext.loadPlugin(spatialRender.GSPlugin.PLUGIN_ID);    Scene.load().then(async (scene: Scene) => {        let uri = "OhosRawFile://assets/gltf/model.glb";        let gsNode: spatialRender.GSNode = await spatialRender.GSPlugin.loadGSNode(scene, { uri, offset: 0 }, scene.root);    });}
复制代码

工具与验证

开发工具:推荐使用 DevEco Studio 进行开发。由于 Spatial Recon Kit 暂不支持模拟器,必须使用 AGC 远程真机调试 或本地连接符合芯片要求的真机(麒麟 9020 及以上)进行调试。

DFX 设计:通过 HMS_SpatialRecon_GetProgress 查询重建进度,以便在 UI 层展示进度条。关注错误码 SPATIAL_RECON_STATUS_DEVICE_NOT_SUPPORT,在低端机型上做好降级提示(如引导用户前往专业建模平台)。监控热事件,确保长时间重建任务下的用户体验稳定性。

HarmonyOS 正在构建一个从"感知空间"到"理解空间"再到"创造空间"的完整技术栈: 理解 → 重建 → 渲染 → 编辑 → 协同 → 分享 每一步,都有开放的能力等待开发者接入。

我们诚邀你加入 HarmonyOS 空间计算生态:

  • 用 3DGS 为你的应用注入空间感知能力

  • 用空间编辑为用户打开二次创作的想象空间

  • 用多端协同让空间体验在设备间自由流转

接入指南与完整 API 文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/spatial-recon-introduction