查看: 1173|回复: 3

HarmonyOS 7 3DGS端侧重建与ArkTS渲染适配实践

[复制链接]
发表于 昨天 08:00 | 显示全部楼层 |阅读模式
HarmonyOS 7(API 26)把 Spatial Recon Kit 带到开发者面前,核心是基于 3D Gaussian Splatting(3DGS)的端侧空间重建、渲染和编辑能力。开发者用多角度图像采集真实场景,即可在支持该 Kit 的 HarmonyOS 设备上生成并呈现 3DGS 模型。原文指出,这套能力瞄准传统 3D 建模依赖昂贵硬件、耗时长的痛点,面向旅游、教育、社交等场景提供低门槛、高交互性的空间计算方案。

一、3DGS 能力链路:从重建到滤镜
空间重建:输入多角度图像及相机内参,端侧 AI 自动完成位姿估计与关键帧筛选,快速生成 3DGS 模型。输出支持 PLY 点云和 MP4 运镜视频。
实时渲染:基于 Tiled 3DGS,支持千万级高斯点流畅渲染。通过 LOD 分层、瓦片按需加载、重要性剔除等优化,保证大场景实时交互。
空间编辑:提供显式高斯点编辑,支持主体提取(框选/反选/删除)、刚体变换、缩放、3D 包围盒估计,让重建结果可二次创作。
风格滤镜:内置复古、漫画、黑白、颜色编辑四类风格化滤镜,一键为 3D 渲染画面添加艺术效果。

二、典型落地场景
旅游:景区空间预览,游客出发前沉浸式预览景点、规划游览路线。
教育:立体知识模型,生物标本、地理地貌等三维可视化,学生可从任意角度观察。
文物保护:数字化存档,为古建筑、文物建立高精度数字孪生,用于远程展览、修复参考和学术研究。
社交:3D 空间分享,用户通过 Remy 等应用拍摄并分享 3D 空间照片。
终端交互:3DGS 空间影像壁纸,将重建模型设为锁屏/桌面壁纸,随设备倾斜产生视差。艺术家先创作视觉母版,经图生视频与 3DGS 重建,让静态艺术图变为随视角变化的空间壁纸。

三、关键 API 与调用路径
原文给出 C++ 侧重建接口和 ArkTS 侧渲染接口。
C++ 侧重重建:HMS_SpatialRecon_IsSupport 检查设备支持;HMS_SpatialRecon_CreateSession 创建会话;HMS_SpatialRecon_PushFrame / HMS_SpatialRecon_PushARFrame 输入图像数据帧;HMS_SpatialRecon_StartSession 启动重建;HMS_SpatialRecon_SaveResultToFile 保存结果。
ArkTS 侧渲染:spatialRender.GSPlugin.loadGSNode 加载 3DGS 模型节点;rf.createEffect 创建风格化滤镜效果。

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

ArkTS:加载并渲染 3DGS 模型
  1. import { spatialRender } from '@kit.SpatialReconKit';
  2. import { Scene, RenderContext } from '@kit.ArkGraphics3D';
  3. let renderContext: RenderContext | null = Scene.getDefaultRenderContext();
  4. if (renderContext != null) {
  5.     renderContext.loadPlugin(spatialRender.GSPlugin.PLUGIN_ID);
  6.     Scene.load().then(async (scene: Scene) => {
  7.         let uri = "OhosRawFile://assets/gltf/model.glb";
  8.         let gsNode: spatialRender.GSNode = await spatialRender.GSPlugin.loadGSNode(
  9.             scene,
  10.             { uri, offset: 0 },
  11.             scene.root
  12.         );
  13.     });
  14. }
复制代码

四、适配与避坑要点
硬件要求:空间重建算力要求高,当前仅保证麒麟 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 仅支持中国境内(不含港澳台),暂不支持模拟器。
工具与验证:推荐 DevEco Studio;由于不支持模拟器,必须使用 AGC 远程真机调试或本地连接符合芯片要求的真机(麒麟 9020 及以上)。DFX 方面,通过 HMS_SpatialRecon_GetProgress 查询重建进度,在 UI 展示进度条;关注错误码 SPATIAL_RECON_STATUS_DEVICE_NOT_SUPPORT,在低端机型做好降级提示,如引导用户前往专业建模平台;同时监控热事件,保证长时间重建任务的体验稳定性。

五、小结
HarmonyOS 正在构建从“感知空间”到“理解空间”再到“创造空间”的技术栈:理解 → 重建 → 渲染 → 编辑 → 协同 → 分享。Spatial Recon Kit 把 3DGS 端侧重建、渲染、编辑和滤镜串成完整链路,开发者可以围绕旅游、教育、社交、终端壁纸等场景接入。完整 API 文档见:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/spatial-recon-introduction
回复

使用道具 举报

发表于 昨天 19:30 | 显示全部楼层

Re: HarmonyOS 7 3DGS端侧重建与ArkTS渲染适配实践

感谢分享,这篇把 HarmonyOS 7 的 Spatial Recon Kit 从 3DGS 重建、Tiled 实时渲染、高斯点编辑到风格滤镜都串起来了,几个落地场景也很有画面感,尤其是文物数字化和 3D 空间壁纸这两块,感觉比单纯做展示更实用。 我有几个想进一步了解的点:一是端侧重建对设备算力和内存的要求大概是什么水平,多角度图像采集有没有张数、角度或重叠度方面的建议;二是输出 PLY 和 MP4 之后,ArkTS 侧渲染加载时是否都走 GSPlugin.loadGSNode,还是 MP4 只是运镜预览、不参与实时交互;三是 Tiled 3DGS 的 LOD、瓦片按需加载和重要性剔除是 Kit 内部自动生效,还是需要开发者按场景手动调参。另外,你贴的 ArkTS 示例里加载的是 glb,如果重建输出是 PLY,中间是否还需要一步转换? 整体看这套能力对旅游、教育、社交和终端壁纸都挺有想象空间,期待后续能补充一些实测耗时、模型体积和不同设备上的发热、帧率表现。
回复 支持 反对

使用道具 举报

发表于 昨天 19:40 | 显示全部楼层

Re: HarmonyOS 7 3DGS端侧重建与ArkTS渲染适配实践

感谢分享,信息量很足。3DGS 能从端侧重建一路做到实时渲染、空间编辑和风格滤镜,确实把传统建模的门槛降了不少。我比较关心几个实践点:C++ 侧 PushFrame 输入多角度图像时,位姿估计和关键帧筛选是完全自动的吗,对相机内参的准确度要求高不高?如果拍摄时重叠率不够,重建稳定性会怎样?ArkTS 侧加载 GSNode 后,能不能直接复用 ArkGraphics3D 的相机控制来做旋转、缩放和交互,性能上有没有推荐的高斯点数量或 LOD 配置?另外保存 MP4 运镜视频时,运镜轨迹是自动生成还是可以自定义?空间编辑里的主体提取和 3D 包围盒估计,是只影响当前渲染,还是也会写回导出的 PLY 或 MP4?如果后续落地旅游、教育或壁纸场景,端侧重建一次大概耗时和内存峰值如何,有没有后台继续重建的可能?期待楼主后续实测分享。
回复 支持 反对

使用道具 举报

发表于 昨天 19:50 | 显示全部楼层

Re: HarmonyOS 7 3DGS端侧重建与ArkTS渲染适配实践

感谢分享,这套链路梳理得挺清楚的。3DGS 能落到端侧确实是个不小的进步,尤其是你提到的重建、渲染、编辑、滤镜四块能力,感觉把从采集到二次创作的路都打通了。 有几个地方想请教一下: 一是设备支持方面,HMS_SpatialRecon_IsSupport 判断的是单一的模型类型,那实际开发中怎么处理不同机型能力不一致的情况?是直接降级到别的方案,还是可以只走渲染不走重建? 二是重建过程的耗时和内存占用,你这边有没有大致量级?多角度图像的采集数量大概在什么范围比较合适,输入帧太多会不会反而影响关键帧筛选的效果? 三是输出格式,PLY 点云和 MP4 运镜视频的适用场景差别挺大的,PLY 应该是给后续编辑用的,MP4 更像是直接展示。如果我想在应用里同时提供预览和编辑,是不是两种都要保存? 另外对终端交互那块兴趣比较大,3DGS 空间影像壁纸随设备倾斜产生视差,这个实现上是靠传感器驱动渲染相机的偏移吗,对性能要求会不会比较高,功耗表现怎么样? 还有个细节,ArkTS 侧 loadGSNode 的 uri 看起来走的是 OhosRawFile 协议,那模型文件一般放 rawfile 还是沙箱目录,大小上有限制吗? 再次感谢,期待后续能分享更多实测数据。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-10-1 06:06 , Processed in 0.021301 second(s), 17 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部