后期效果模块
Parameters:
Name | Type | Description |
---|---|---|
viewer |
object
|
cesium 实例 |
cesiumGlobal |
object
|
cesium 全局对象 |
Methods
# createFireParticleSystem(options) → {ParticleSystem}
创建火焰粒子
Parameters:
Name | Type | Description |
---|---|---|
options |
object
|
|
position |
Cartesian3
|
粒子显示位置 |
fireImage |
string
|
粒子图片 |
startScale |
number
|
粒子出生时的比例,相对于原始大小 |
endScale |
number
|
粒子在死亡时的比例 |
minimumParticleLife |
number
|
设置粒子寿命的可能持续时间的最小界限(以秒为单位),粒子的实际寿命将随机生成 |
maximumParticleLife |
number
|
设置粒子寿命的可能持续时间的最大界限(以秒为单位),粒子的实际寿命将随机生成 |
minimumSpeed |
number
|
置以米/秒为单位的最小界限,超过该最小界限,随机选择粒子的实际速度。 |
maximumSpeed |
number
|
设置以米/秒为单位的最大界限,超过该最大界限,随机选择粒子的实际速度。 |
particleSize |
number
|
以像素为单位缩放image的大小 |
emissionRate |
number
|
每秒发射的粒子数 |
startColor |
Color
|
粒子出生时的颜色 |
endColor |
Color
|
当粒子死亡时的颜色 |
emitter |
Color
|
粒子发射器,可选[BoxEmitter,CircleEmitter,ConeEmitter,SphereEmitter] |
ParticleSystem
Example
import { PassEffect } from 'cesium_dev_kit'
const passEffectObj = new PassEffect({
cesiumGlobal: Cesium,
containerId: 'cesiumContainer'
})
const fireParticle = passEffectObj.passEffect.createFireParticleSystem({
position: Cesium.Cartesian3.fromDegrees(104.081701757991, 30.627042558105988, 180.0)
fireImage:'static/data/images/file/fire.png',
startScale: 3,
endScale: 1.5,
minimumParticleLife: 1.5,
maximumParticleLife: 1.8,
minimumSpeed: 7,
maximumSpeed: 9,
particleSize: 2,
emissionRate: 200,
startColor: new Cesium.Color(1, 1, 1, 1),
endColor: new Cesium.Color(0.5, 0, 0, 0),
emitter:new Cesium.ConeEmitter(Cesium.Math.toRadians(45.0))
})
// 添加到场景中区
passEffectObj.viewer.scene.primitives.add(fireParticle);
# lighitCentrumScanEffect(data) → {Array}
光锥扫描
Parameters:
Name | Type | Description |
---|---|---|
data |
object
|
|
circle |
Array
|
第一个参数 0.003表示半径, 第二个第三个分别表示底座圆心的坐标,第四个表示切割成多少个点。 组成多少个面。越多会越卡 尽量实际项目不影响效果,越少越好 |
positionList |
Array
|
坐标数组(类似polygon需要闭合) |
material |
Material
|
材质 |
number |
number
|
扫描比例(数字越小速度越快) |
observer |
Array
|
观察点,也就是光源点 |
返回polygon实例数组
Array
Example
import { PassEffect } from 'cesium_dev_kit'
const passEffectObj = new PassEffect({
cesiumGlobal: Cesium,
containerId: 'cesiumContainer'
})
passEffectObj.passEffect.lighitCentrumScanEffect({
circle: [0.003, 117, 35, 30],
observer: [117.01, 35.01, 500],
positionList: [ [117, 35],[117.01, 35],[117.01, 35.01], [117, 35.01],[117, 35]],
material: Cesium.Color.RED.withAlpha(0.5,
number: 100
})
# satelliteScan(options) → {Primitive}
卫星扫描
Parameters:
Name | Type | Description |
---|---|---|
options |
object
|
|
position |
Cartesian3
|
坐标 |
repeat |
number
|
重复比例10~60 |
color |
Color
|
颜色 |
length |
number
|
雷达高度 |
thickness |
number
|
雷达边厚度0.1~0.9 |
Primitive
Example
import { PassEffect } from 'cesium_dev_kit'
const passEffectObj = new PassEffect({
cesiumGlobal: Cesium,
containerId: 'cesiumContainer'
})
passEffectObj.passEffect.satelliteScan({
position: [116.39, 39.9],
length: 40000.0,
color: Cesium.Color.LIGHTGREEN.withAlpha(0.8),
repeat: 40,
thickness: 0.1
})
# setCircleScanEffect(options) → {postProcessStages}
圆形扩散效果
Parameters:
Name | Type | Description |
---|---|---|
options |
object
|
|
position |
Cartesian3
|
坐标 |
id |
string
|
id |
radius |
number
|
半径 |
color |
Color
|
颜色 |
duration |
number
|
持续时长 |
circleMode |
string
|
类型,默认CircleScan扫描 |
border |
number
|
边框 |
postProcessStages
Example
import { PassEffect } from 'cesium_dev_kit'
const passEffectObj = new PassEffect({
cesiumGlobal: Cesium,
containerId: 'cesiumContainer'
})
passEffectObj.passEffect.setCircleScanEffect({
id: 'CircleScan',
position: Cesium.Cartesian3.fromDegrees(104.08985268964015, 30.635443158056148, 10.0),
color: Cesium.Color.MEDIUMTURQUOISE.withAlpha(0.5),
duration: 5000,
border: 10,
radius: 2000
})
# setRadarScanEffect(options) → {postProcessStages}
雷达扫描
Parameters:
Name | Type | Description |
---|---|---|
options |
object
|
|
position |
Cartesian3
|
坐标 |
id |
string
|
id |
radius |
number
|
半径 |
color |
Color
|
颜色 |
duration |
number
|
持续时长 |
border |
number
|
边框 |
postProcessStages
Example
import { PassEffect } from 'cesium_dev_kit'
const passEffectObj = new PassEffect({
cesiumGlobal: Cesium,
containerId: 'cesiumContainer'
})
passEffectObj.passEffect.setRadarScanEffect({
id: 'radarScanA',
position: Cesium.Cartesian3.fromDegrees(104.08985268964015, 30.635443158056148, 10.0),
color: Cesium.Color.LIGHTGREEN.withAlpha(0.8),
duration: 2000,
radius: 1000,
border: -1,
width: 5.0
})