Skip to content
/ gsbox Public

一个关于 3d gaussian splating 的命令行小工具盒,ply 转 splat,ply 转 sp20,或者 splat 转 ply,splat 转 sp20 等命令行操作。convert ply to splat or sp20, convert splat to ply or sp20,etc.

License

Notifications You must be signed in to change notification settings

gotoeasy/gsbox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gsbox

一个关于 3d gaussian splatting 的小工具盒。
.ply.splat之间的转换有nodejs版本也有python版本,都太重了,故有此一举。

写一写,加深理解
弄一弄,争取实用
搞搞搞,越做越好


功能

  • 文件格式的装换,支持3DGS.ply.splat.sp20格式
  • 查看.ply的文件头信息

关于.sp20格式的说明

  • .sp20格式每个高斯点固定长 20 bytes,参考.spz编码方式简化而成,.splat为 32 bytes,有效减少 37.5% 大小。为了能够更方便的进行渐进加载,未采用.spz的排列压缩方式进一步减少大小
  • 注意:采用.sp20格式时肉眼基本识别不出渲染差异,适合绝大多数以减少文件大小为目的的使用场景,但并不是用来替代.splat,因为.sp20是有损编码方式,因此,也并不建议把.sp20转换回.splat.ply
  • .sp20格式可以使用这个渲染器查看 https://github.com/reall3d-com/Reall3dViewer
field note
position x 24-bit fixed point signed integer
position y 24-bit fixed point signed integer
position z 24-bit fixed point signed integer
scale x 8-bit log-encoded integer
scale y 8-bit log-encoded integer
scale z 8-bit log-encoded integer
color r unsigned 8-bit integer
color g unsigned 8-bit integer
color b unsigned 8-bit integer
color a unsigned 8-bit integer
rotation x 8-bit signed integer
rotation y 8-bit signed integer
rotation z 8-bit signed integer
rotation w 8-bit signed integer

命令示例

Usage:
  gsbox [options]

Options:
  p2s, ply2splat           convert ply to splat
  p2s20, ply2splat20       convert ply to splat20
  s2p, splat2ply           convert splat to ply
  s2s20, splat2splat20     convert splat to splat20
  simple-ply               simple mode to write ply
  info <plyfile>           display the ply header
  -i, --input <file>       specify the input file
  -o, --output <file>      specify the output file
  -c, --comment <text>     output ply with comment
  -v, --version            display version information
  -h, --help               display help information

Examples:
  gsbox p2s -i /path/to/input.ply -o /path/to/output.splat
  gsbox p2s20 -i /path/to/input.ply -o /path/to/output.sp20
  gsbox s2p -i /path/to/input.splat -o /path/to/output.ply
  gsbox s2s20 -i /path/to/input.splat -o /path/to/output.sp20
  gsbox s2p -i /path/to/input.splat -o /path/to/output.ply simple-ply
  gsbox s2p -i /path/to/input.splat -o /path/to/output.ply -c "your comment"
  gsbox info -i /path/to/file.ply


# 把3dgs的ply转成splat
gsbox ply2splat -i /path/to/input.ply -o /path/to/output.splat

# 把3dgs的ply转成splat20
gsbox ply2splat20 -i /path/to/input.ply -o /path/to/output.sp20

# 把splat转成3dgs的ply
gsbox splat2ply -i /path/to/input.splat -o /path/to/output.ply

# 把splat转成3dgs的ply
gsbox splat2splat20 -i /path/to/input.splat -o /path/to/output.sp20

# 查看ply的文件头信息
gsbox info file.ply

更新履历、二进制执行文件下载

https://github.com/gotoeasy/gsbox/releases

About

一个关于 3d gaussian splating 的命令行小工具盒,ply 转 splat,ply 转 sp20,或者 splat 转 ply,splat 转 sp20 等命令行操作。convert ply to splat or sp20, convert splat to ply or sp20,etc.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages