高斯溅射和GIS融合之路(二)- 兼容Cesium正式版ply文件切片和spz压缩

年初看到Cesium团队在splat-shader分支中完成了高斯泼溅文件的加载功能,实现了KHR_gaussian_splatting,于是山海鲸旗下的GISBox团队加班加点,肝了一天一夜,迅速进行了实现了切片支持能导出KHR_gaussian_splatting的glb,并写了一篇文章和大家分享其中的一些技术细节:

高斯溅射和GIS融合之路- 将splat文件切片成3dtiles

也同时把这篇文章收录在之前的文章合集当中,大家有兴趣的也可以去翻翻之前的文章:

​编辑GIS融合之路山海鲸可视化 的专栏12 篇内容 · 80 赞同 · 32 订阅

​编辑高斯溅射(3dgs)整合之路山海鲸可视化 的专栏3 篇内容 · 26 赞同 · 15 订阅

然而没想到的是Cesium团队不讲武德。做了个假动作之后,竟然抛弃了KHR_gaussian_splatting,搞了一个新的KHR_spz_gaussian_splats_compression并且迅速合进了正式版当中。执行力不可谓不强,直接让我们GISBox团队之前的全部努力付诸东流。

整理整理心情,兼容还是要兼容的。还是来看看这个KHR_spz_gaussian_splats_compression是一个什么样的扩展,我们先来看看github上的讨论:

https://github.com/KhronosGroup/glTF/pull/2490​github.com/KhronosGroup/glTF/pull/2490

摘录一段内容:This extension proposal,KHR_spz_gaussian_splats_compression, allows for efficient storage of 3D Gaussian splats data within glTF using the SPZ compression library from Niantic Spatial,似乎也没啥特别的,无非就是引入了一个spz的压缩,那么我们兼容一下这个spz压缩就行了。

那我们看下spz这个格式。spz是由Niantic Spatial提出来的一个开源的压缩格式,号称是高斯的JPG格式,我们看下官方给出的压缩比:

可以看到其实也没什么特别高深的东西,无非就是计算机图形学中经典的压缩方案,把浮点数压缩进整型,通过损失一定程度的精度换来存储效率的大幅提升。原理弄懂了就简单了,直接复写一下C++代码就好了,具体代码仓库如下:

https://github.com/nianticlabs/spz​github.com/nianticlabs/spz

整合好之后,不得不说,这次的效果比上一版好了很多,而且由于CesiumJS正式版中已经包含了相关功能,我们也可以很方便的整合进GISBox预览当中了。我们可以直接先看下CesiumJS的sandcastle中加载的高斯文件的效果:

这个功能已经上线了,欢迎大家前往官网下载最新版GISBox试一试:

GISBox(GIS工具箱)-免费的倾斜摄影OSGB/3D Tiles编辑转换发布平台

这一次我们也贴心的为大家准备了示例文件让大家尝试一下这个GISBox新的切片功能,大家如果有需要,可以加我们GISBox官网的客服,我们会逐一发给大家。这个文件是我们山海鲸联合商汤科技一起制作的,也非常感谢我们的合作伙伴的大力支持。该模型仅供大家个人测试,请勿用作商业用途。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值