基于 Three.js 的 3D Gaussian Splatting 渲染器,支持 WebGPU 与 WebGL2,并可流式加载大场景。
sparkjsdev/spark
面向 THREE.js 的 3D 高斯泼溅(Gaussian Splatting)渲染器,可与普通网格对象混合渲染。
- Star
- 3,879
- Fork
- 581
- 未关闭 Issue
- 111
- 最近提交
- 18天前
这是什么?
Spark 是一个将 3D 高斯泼溅(Gaussian Splatting)引入 THREE.js 的渲染库。它接入 THREE.js 的渲染管线,泼溅对象和基于网格的对象可以在同一场景中正确排序渲染,多个泼溅对象也能一起绘制。
库支持常见的泼溅文件格式,包括压缩与未压缩的 PLY、SPZ、SPLAT、KSPLAT 和 SOG。它基于 WebGL2,面向在包括低端移动设备在内的多种设备上运行。每个泼溅可以单独变换、修改颜色、位移或做骨骼动画,还提供着色器图(shader graph),可在 GPU 上动态创建或编辑泼溅。
可通过 npm 安装,也可以用 import map 从 CDN 引入。项目还包含示例、将 PLY 压缩为 SPZ 的工具命令,以及文档站点。
核心功能
- 01与 THREE.js 渲染管线集成,泼溅与网格可在同一场景中共存
- 02支持 PLY(含压缩格式)、SPZ、SPLAT、KSPLAT 和 SOG 格式
- 03多个泼溅对象可一起渲染并正确排序
- 04基于 WebGL2,可在包括移动设备在内的多种设备上运行
- 05支持逐个泼溅对象的变换、颜色编辑、位移和骨骼动画
- 06提供 GPU 着色器图,用于创建和编辑泼溅
适用场景
- 在基于 THREE.js 的网页中展示摄影测量或扫描得到的 3D 场景
- 将泼溅扫描模型与网格道具或界面结合,构建交互式 3D 体验
- 在浏览器中对采集的物体做动画或修改颜色
- 通过网页向移动端用户提供泼溅模型查看器
快速上手
- 1
从 npm 安装软件包
npm install @sparkjsdev/spark - 2
或者将 README 中的 HTML 示例复制到 index.html 文件中,并在浏览器中打开
使用前须知
- 从源码构建需要安装 Rust,并单独运行一个 WebAssembly 构建步骤。
标签
常见问题
- spark 是什么?
- 面向 THREE.js 的 3D 高斯泼溅(Gaussian Splatting)渲染器,可与普通网格对象混合渲染。 Spark 是一个将 3D 高斯泼溅(Gaussian Splatting)引入 THREE.js 的渲染库。它接入 THREE.js 的渲染管线,泼溅对象和基于网格的对象可以在同一场景中正确排序渲染,多个泼溅对象也能一起绘制。
- spark 可以免费使用吗?用的什么许可证?
- spark 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- spark 还在维护吗?
- 活跃维护中。spark 最近一次提交是在 2026年10月20日。
- spark 适合用来做什么?
- 在基于 THREE.js 的网页中展示摄影测量或扫描得到的 3D 场景 将泼溅扫描模型与网格道具或界面结合,构建交互式 3D 体验 在浏览器中对采集的物体做动画或修改颜色 通过网页向移动端用户提供泼溅模型查看器
- spark 怎么安装和运行?
- 从 npm 安装软件包: npm install @sparkjsdev/spark 或者将 README 中的 HTML 示例复制到 index.html 文件中,并在浏览器中打开
- 在哪里获取 spark?
- 源代码和安装说明在 GitHub 上:https://github.com/sparkjsdev/spark
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
312+31 本周36JavaScriptApache-2.0维护活跃更新于 昨天
基于 Three.js 的 JavaScript 工具集与框架,用于在浏览器中构建交互式 3D/WebGL 与 2D 数据可视化。
1986+1 本周160JavaScriptMIT更新于 5天前