BimAnt 3DGS
3DGS · 高斯泼溅

PLY 转 SOG

SOG(Spatially Ordered Gaussians)是 PlayCanvas 定义的容器,体积通常能做到 PLY 的 1/15–1/20——比 SPZ 还小。代价是有损更明显:贴图细节与薄结构最容易先掉。

没有文件?试一个 →

支持 .ply .splat .ksplat .spz .sog .compressed.ply · 文件不会离开你的电脑

SOG 换来的体积,代价是什么

SOG 把高斯按空间排序、分块,用 WebP 存属性图,目标就是 Web 分发与流式加载。它比 SPZ 更激进,所以体积更小,但薄结构、半透明边缘、贴图细节也更容易先出现差别。

要“能看清细节”就别选它;要“网页里快速加载”再选。这个取舍没有两全。

  • 输入:PLY、SPZ、SPLAT、KSPLAT、Compressed PLY、SOG
  • 输出:SOG(zip 容器 + WebP 属性图)
  • 适合:网页里挂大场景、带宽敏感、能接受更明显的细节损失

体积算例:10 万点约 1.4 MB

10 万点、SH 3 阶的 PLY 约 24.8 MB(100,000 × 248 字节)。按 1/15–1/20 的口径,SOG 大约 1.2–1.7 MB;同样这份模型 SPZ 约 2.5 MB,SPLAT 约 3.2 MB。SOG 是三者里最小的。

体积最小不等于最合适:如果你的场景有大量细线、叶片或半透明材质,先拿一小段做个对比,再决定要不要为了带宽牺牲细节。

先说清楚:SOG 编码很慢

当前上游 GaussForge 0.6.0 的 SOG 写出实测:1,432 点约 1 秒,20,000 点约 20 秒,50,000 点约 37 秒,195,099 点约 5 分钟,445,409 点约 25 分钟(SH 阶数越高越慢,不是线性)。

所以大文件请优先转 SPZ;确实需要 SOG 时,工具会先给时间预估并要求确认,转换中可以随时取消。取消不会损坏原文件,也不会留下半成品。

谁在读 SOG

SOG 是 PlayCanvas 的规范,PlayCanvas 引擎和它的 Web 分发链路可以直接读;three.js r187 没有原生 SOG loader,所以本工具查看 SOG 时会先在本地转成 SPZ 再渲染。

如果你只是要在 three.js 里看,SPZ 更直接;如果目标平台明确是 PlayCanvas,再选 SOG。

常见报错:转换卡住 / 等太久

SOG 转换慢是编码器问题,不是浏览器卡死:页面不会冻结,进度条上会走时间;等不了就点取消,或用 SPZ 代替。

手机或低内存设备上,大文件可能在编码前就失败;先转小样本确认流程,再处理大场景。

怎么验证输出没问题

把 .sog 再拖回本页,能正常出画面、点数与源文件一致,说明 zip 容器和 WebP 属性图可读。

再和 SPZ 版本并排对比细节,确认损失在你能接受的范围内;要长期存档,保留原始 PLY。

SOG 适合谁,不适合谁

适合:目标平台是 PlayCanvas、需要在网页里挂大场景、带宽比细节更重要。SOG 用空间排序 + 分块 + WebP 属性图,把体积压到 PLY 的 1/15–1/20。

不适合:需要特写画质、薄结构多、半透明边缘多,或者你只是要在 three.js 里快速看。它的压缩是有损的,细节损失通常比 SPZ 更明显。

  • 适合:PlayCanvas、Web 分发、带宽敏感的大场景
  • 不适合:高保真、细节优先、three.js 原生查看
  • 注意:当前上游编码器很慢,大文件先转 SPZ

和 SPZ / SPLAT 的取舍

SPZ 约 1/10、编码快、loader 多;SOG 约 1/15–1/20、编码慢、细节损失更明显。10 万点时两者约 2.5 MB 与 1.4 MB,差的这一兆多要看带宽值不值。

SOG 编码在 Worker 里跑,页面不会冻结,但浏览器内存会同时持有源数据与中间结果;超大文件建议先在桌面端处理,不要直接在手机上转。

SPLAT 固定 3.2 MB/10 万点,比 SOG 大,但编码快、老查看器兼容;它不是 SOG 的替代品,场景不同。

要长期存档就留 PLY;SOG 是分发格式,不是母版。压缩掉的薄结构和半透明边缘,转回 PLY 也回不来。只是在本工具里看时,不转 SOG 也能看,先拿 SPZ 试效果更省时间。

  • PlayCanvas、带宽优先:SOG
  • three.js、编码速度优先:SPZ
  • 老查看器、32 字节:SPLAT
  • 存档、继续训练:PLY

手把手:从 PLY 转 SOG

  • 把 PLY(或其它支持格式)拖进画布
  • 点「⇩ 转换」,目标已经预选为 SOG
  • 看时间预估;大文件会有二次确认,转换中可以取消
  • 下载 .sog;10 万点大约 1.2–1.7 MB
  • 把 .sog 拖回本页,确认能出画面且点数一致

替代方案:先用 SPZ 看效果

如果不确定 SOG 的细节损失能不能接受,先转一份 SPZ 看效果,再决定要不要为了更小的体积换 SOG。SPZ 编码快得多,适合反复试。

如果目标平台明确是 PlayCanvas,直接按它的规范走;如果只是 three.js,SPZ 更直接,因为 three.js 没有原生 SOG loader。

常见问题

SOG 和 SPZ 怎么选?

体积优先、能接受细节损失,选 SOG;体积与兼容性平衡,选 SPZ。当前版本 SOG 编码很慢,大文件建议先用 SPZ 看效果。

转换到一半能取消吗?

可以。SOG 转换在独立的 Worker 里执行,点「取消」会立刻终止并把页面恢复到可操作状态;原文件不受影响。

SOG 文件能再转回 PLY 吗?

可以。转回 PLY 体积会明显变大,但精度不会恢复;SOG 压缩时丢掉的部分找不回来。

SOG 能直接在 three.js 里加载吗?

three.js r187 没有原生 SOG loader。本工具查看 SOG 时先在 Worker 里转成 SPZ,再交给 three.js;目标平台是 PlayCanvas 时才会直接读 SOG。

SOG 转换时关闭页面会怎样?

转换在 Worker 里进行,关闭页面会终止进程,不会生成半成品下载;重新打开后需要从源文件再转一次。

转换格式

选一个目标格式。转换在浏览器里完成,文件不上传。

目标格式