Cesium 加载高斯泼溅(Gaussian Splatting)模型

Cesium 加载高斯泼溅(Gaussian Splatting)模型

高斯泼溅(Gaussian Splatting)

高斯泼溅是一种革命性的 3D 重建新方法,它试图解决其他方法存在的一些问题,例如处理时间长。对于这种方法,他们的方法不是将场景表示为体积或网格,而是将世界用作 3D 画布,绘制小笔触,直到场景看起来像输入图像。这种方法的主要优点之一是它不仅可以重建静止图像,还可以重建移动场景:
在这里插入图片描述
它从点云开始,为每个点创建一个小笔画,然后慢慢改变每个笔画的大小、位置、旋转和颜色,每次迭代都使用随机梯度下降技术优化这些参数,以减少笔画和输入图像之间的误差。但这还不够,因为有些区域可能需要更多或更少的笔画才能正确绘制,因此每 100 次迭代就会应用一次密集化过程,在需要更多细节的区域中拆分笔画,并在不再需要笔画的区域中将其移除。
在这里插入图片描述

高斯泼溅的优点

1.训练时间短:一个场景可以在一个小时的计算时间内完成训练。
2.高渲染 fps:高斯溅射能够以高达 100 fps 的速度实时渲染场景。
3.动态场景:不仅像其他方法一样可以重建静态场景,高斯泼溅还可以重建移动场景。

在Cesium中实现

Web 端渲染 Gaussian Splatting 的开源库
(1) 基于 WebGPU的渲染器——gaussian-splatting-web;
(2)不依赖任何外部的WebGL渲染器——splat ;
(3)基于 Threejs实现的渲染器——Gaussian Splats3D ;
(4)Web端的Gaussian Splatting编辑器——super-splat ;
(5)Babylon.js 中支持了渲染 Gaussian Splatting;
这里需要使用基于 Threejs实现的渲染器——Gaussian Splats3D,在cesium中实现Gaussian Splatting的加载

效果图

在这里插入图片描述
在这里插入图片描述

### 如何在 Cesium加载和显示高斯模型 #### 使用 `Model` 或者自定义着色器实现 Gaussian Splatting 由于 Cesium 对于某些 WebGL 2.0 特性的不完全支持,直接加载高斯Gaussian Splatting模型可能遇到兼容性问题[^3]。然而,可以通过以下几种方式尝试实现: 1. **利用现有的 Model 实体** 如果目标平台已经部分实现了所需功能,则可以直接使用 Cesium 提供的 `Model` 类来加载特定格式的数据文件,并通过调整材质属性模拟高斯效果。 ```javascript var viewer = new Cesium.Viewer('cesiumContainer'); viewer.scene.primitives.add(new Cesium.Model({ uri : 'path/to/gaussian_splatting_model.glb', })); ``` 2. **创建自定义几何图形并应用特殊着色器** 对于更复杂的场景需求,建议开发人员编写自定义顶点/片段着色程序,以充分利用 GPU 计算能力完成高质量渲染任务。这通常涉及到对原始点云数据进行预处理转换成适合传输至客户端的形式,再由前端负责最终呈现工作。 ```javascript // 假设已准备好经过编码后的二进制流 dataBuffer 和对应的描述信息 metadata const primitive = new Cesium.Primitive({ geometryInstances: new Cesium.GeometryInstance({ geometry: new CustomGeometry(dataBuffer, metadata), }), appearance: new Cesium.MaterialAppearance({ material: Cesium.Material.fromType('CustomMaterial'), }) }); viewer.scene.primitives.add(primitive); ``` 需要注意的是,在实际操作过程中还需要解决诸如坐标系变换、光照计算等一系列技术难题。此外,考虑到性能因素,应当尽可能减少不必要的重绘次数,合理设置缓存策略等优化措施也非常重要。 为了更好地适配不同设备环境下的表现差异,开发者往往还需针对具体应用场景做出适当妥协与权衡。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BJ-Giser

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值