Cesium粒子系统:雨雪云效果

参考: https://sandcastle.cesium.com/?src=Particle%20System%20Weather.html

官方教程:https://cesium.com/learn/cesiumjs-learn/cesiumjs-particle-systems/(Introduction to Particle Systems)

粒子系统是一种模拟复杂物理效果的图形技术。粒子系统是小图像的集合,当一起观看时,这些图像形成更复杂的“模糊”对象,如火、烟、天气或焰火。通过使用初始位置、速度和寿命等特性指定单个粒子的行为,可以控制这些复杂的效果。

粒子系统效果在电影和视频游戏中很常见。例如,为了表示飞机受损,技术艺术家可以使用粒子系统表示飞机发动机上的爆炸,然后渲染不同的粒子系统,表示飞机坠毁时的烟雾轨迹。

1. 粒子系统基础

请查看基本粒子系统的代码:

var particleSystem = viewer.scene.primitives.add(new Cesium.ParticleSystem({
    image : '../../SampleData/smoke.png',
    imageSize : new Cesium.Cartesian2(20, 20),
    startScale : 1.0,
    endScale : 4.0,
    particleLife : 1.0,
    speed : 5.0,
    emitter : new Cesium.CircleEmitter(0.5),
    emissionRate : 5.0,
    modelMatrix : entity.computeModelMatrix(viewer.clock.startTime, new Cesium.Matrix4()),
    lifetime : 16.0
}));

上面的代码创建了ParticleSystem,这是一个参数化的对象,用于控制单个粒子对象随时间变化的外观和行为。粒子是由粒子发射器产生的,它有一个位置和类型,存在一定的时间,然后消亡。

其中一些属性是动态的。请注意,不是使用可用的单色特性比例,而是使用startScale和endScale。通过这些选项,您可以指定在粒子的整个生命周期中,粒子大小在开始和结束比例之间的过渡。startColor和endColor的工作原理类似。

影响视觉输出的其他方式包括最大和最小属性。对于具有最大和最小输入的每个变量,粒子上该变量的实际值将随机指定为介于最大和最小输入之间,并在粒子的整个生命周期内静态保持该值。例如,使用minimumSpeed和maximumSpeed作为随机选择的每个粒子速度的边界。允许这样更改的属性包括图像大小、速度、寿命和粒子寿命。

2. 发射器

粒子出生时,其初始位置和速度矢量由粒子发射器控制。发射器每秒将产生一定数量的粒子,由emissionRate参数指定,并根据发射器类型以随机速度初始化。

Cesium有各种各样的粒子发射器,你可以开箱即用。

2.1 BoxEmitter箱体发射器

>>

原文地址:https://www.cnblogs.com/2008nmj/p/15672929.html