首页 / Cesium / 使用示例
泼溅渲染的体积感
泼溅渲染不画三角面,靠成千上万个半透明点堆出体积。示例换一个角度看这种渲染的质感。
源码与运行效果
这个示例在做什么
六千个半径 16 像素、透明度 0.18 的彩色点堆成一个云团。单个点几乎看不清, 叠在一起却形成连续的体积感,这就是泼溅渲染的核心:用大量半透明小圆点替代三角面。
点的颜色按高度取不同的亮度,底部偏暗、顶部偏亮,再配合缓慢环绕的相机, 云团就有了立体的层次。真实的高斯泼溅会为每个点存协方差矩阵,渲染时展开成椭圆, 这里用统一的圆形与固定尺寸,是最简化的近似。
关键接口
| 接口 | 作用 |
|---|---|
PointPrimitiveCollection | 批量管理点,一次提交绘制 |
PointPrimitive.pixelSize | 点的屏幕直径,泼溅通常取较大值 |
Color.fromHsl | 按色相、饱和度、亮度生成颜色,便于做渐变 |
Color.withAlpha | 低透明度叠加才有体积感 |
可以直接改的地方
| 位置 | 改什么 | 效果 |
|---|---|---|
pixelSize: 16 | 改成 30 | 点更大更糊,云团更蓬松 |
0.18(透明度) | 改成 0.5 | 更实,接近点云 |
6000 个点 | 改成 20000 | 更细腻,帧率下降 |
r * 0.0016 | 改大 | 云团铺得更开 |
替代说明:官方示例加载 ion 上的高斯泼溅数据集(含 KHR_gaussian_splatting 扩展)。
这里用大量半透明点复现泼溅的观感;真实数据加载后由 Cesium 直接解析泼溅格式。