参考: 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箱体发射器
>>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2020-12-10 Python replace方法-字符串
2020-12-10 ArcGIS Join&Relate
2020-12-10 react-leaflet:将React和Leaflet结合起来
2020-12-10 Python 字符串和时间转换