经纬志
首页 / Cesium / 使用示例

泼溅渲染的体积感

泼溅渲染不画三角面,靠成千上万个半透明点堆出体积。示例换一个角度看这种渲染的质感。

CesiumJS 1.121 · 更新 2026-10-28
源码与运行效果
运行效果

这个示例在做什么

六千个半径 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 直接解析泼溅格式。