diff --git a/Apps/SampleData/circular_particle.png b/Apps/SampleData/circular_particle.png new file mode 100644 index 000000000000..ca1cc10d6b2d Binary files /dev/null and b/Apps/SampleData/circular_particle.png differ diff --git a/Apps/SampleData/snowflake_particle.png b/Apps/SampleData/snowflake_particle.png new file mode 100644 index 000000000000..8fadd9056818 Binary files /dev/null and b/Apps/SampleData/snowflake_particle.png differ diff --git a/Apps/Sandcastle/gallery/Particle System Fireworks.html b/Apps/Sandcastle/gallery/Particle System Fireworks.html index 2e61fecda5c9..440b23381d67 100644 --- a/Apps/Sandcastle/gallery/Particle System Fireworks.html +++ b/Apps/Sandcastle/gallery/Particle System Fireworks.html @@ -59,7 +59,7 @@ var minimumExplosionSize = 30.0; var maximumExplosionSize = 100.0; -var particlePixelSize = 7.0; +var particlePixelSize = new Cesium.Cartesian2(7.0, 7.0); var burstSize = 400.0; var lifetime = 10.0; var numberOfFireworks = 20.0; @@ -90,15 +90,14 @@ image : getImage(), startColor : color, endColor : color.withAlpha(0.0), - life : life, + particleLife : life, speed : 100.0, - width : particlePixelSize, - height : particlePixelSize, - rate : 0, + imageSize : particlePixelSize, + emissionRate : 0, emitter : new Cesium.SphereEmitter(0.1), bursts : bursts, - lifeTime : lifetime, - forces : [force], + lifetime : lifetime, + updateCallback : force, modelMatrix : modelMatrix, emitterModelMatrix : emitterModelMatrix })); @@ -161,7 +160,6 @@ Cesium.Cartesian3.normalize(toFireworks, toFireworks); var angle = Cesium.Math.PI_OVER_TWO - Math.acos(Cesium.Cartesian3.dot(toFireworks, Cesium.Cartesian3.UNIT_Z)); camera.lookUp(angle); - //Sandcastle_End Sandcastle.finishedLoading(); } diff --git a/Apps/Sandcastle/gallery/Particle System Tails.html b/Apps/Sandcastle/gallery/Particle System Tails.html new file mode 100644 index 000000000000..bcd66de1a3c8 --- /dev/null +++ b/Apps/Sandcastle/gallery/Particle System Tails.html @@ -0,0 +1,225 @@ + + + + + + + + + Cesium Demo + + + + + + +
+

Loading...

+
+ + + + diff --git a/Apps/Sandcastle/gallery/Particle System Tails.jpg b/Apps/Sandcastle/gallery/Particle System Tails.jpg new file mode 100644 index 000000000000..633d3820d2af Binary files /dev/null and b/Apps/Sandcastle/gallery/Particle System Tails.jpg differ diff --git a/Apps/Sandcastle/gallery/Particle System Weather.html b/Apps/Sandcastle/gallery/Particle System Weather.html new file mode 100644 index 000000000000..b1886e906b54 --- /dev/null +++ b/Apps/Sandcastle/gallery/Particle System Weather.html @@ -0,0 +1,170 @@ + + + + + + + + + Cesium Demo + + + + + + +
+

Loading...

+
+
+ + + + diff --git a/Apps/Sandcastle/gallery/Particle System Weather.jpg b/Apps/Sandcastle/gallery/Particle System Weather.jpg new file mode 100644 index 000000000000..24a0bf061120 Binary files /dev/null and b/Apps/Sandcastle/gallery/Particle System Weather.jpg differ diff --git a/Apps/Sandcastle/gallery/Particle System.html b/Apps/Sandcastle/gallery/Particle System.html index fa7a210acf79..58d25362742f 100644 --- a/Apps/Sandcastle/gallery/Particle System.html +++ b/Apps/Sandcastle/gallery/Particle System.html @@ -45,8 +45,8 @@ Rate - - + + @@ -61,16 +61,16 @@ Min Life - - + + Max Life - - + + @@ -161,10 +161,10 @@ viewer.timeline.zoomTo(start, stop); var viewModel = { - rate : 5.0, + emissionRate : 5.0, gravity : 0.0, - minimumLife : 1.0, - maximumLife : 1.0, + minimumParticleLife : 1.0, + maximumParticleLife : 1.0, minimumSpeed : 1.0, maximumSpeed : 4.0, startScale : 1.0, @@ -263,20 +263,16 @@ startScale : viewModel.startScale, endScale : viewModel.endScale, - minimumLife : viewModel.minimumLife, - maximumLife : viewModel.maximumLife, + minimumParticleLife : viewModel.minimumParticleLife, + maximumParticleLife : viewModel.maximumParticleLife, minimumSpeed : viewModel.minimumSpeed, maximumSpeed : viewModel.maximumSpeed, - minimumWidth : viewModel.particleSize, - minimumHeight : viewModel.particleSize, - - maximumWidth : viewModel.particleSize, - maximumHeight : viewModel.particleSize, + imageSize : new Cesium.Cartesian2(viewModel.particleSize, viewModel.particleSize), // Particles per second. - rate : viewModel.rate, + emissionRate : viewModel.emissionRate, bursts : [ // these burst will occasionally sync to create a multicolored effect @@ -285,13 +281,13 @@ new Cesium.ParticleBurst({time : 15.0, minimum : 200, maximum : 300}) ], - lifeTime : 16.0, + lifetime : 16.0, emitter : new Cesium.CircleEmitter(2.0), emitterModelMatrix : computeEmitterModelMatrix(), - forces : [applyGravity] + updateCallback : applyGravity })); var gravityScratch = new Cesium.Cartesian3(); @@ -320,31 +316,31 @@ } }); -Cesium.knockout.getObservable(viewModel, 'rate').subscribe( +Cesium.knockout.getObservable(viewModel, 'emissionRate').subscribe( function(newValue) { - particleSystem.rate = parseFloat(newValue); + particleSystem.emissionRate = parseFloat(newValue); } ); Cesium.knockout.getObservable(viewModel, 'particleSize').subscribe( function(newValue) { var particleSize = parseFloat(newValue); - particleSystem.minimumWidth = particleSize; - particleSystem.maximumWidth = particleSize; - particleSystem.minimumHeight = particleSize; - particleSystem.maximumHeight = particleSize; + particleSystem.minimumImageSize.x = particleSize; + particleSystem.minimumImageSize.y = particleSize; + particleSystem.maximumImageSize.x = particleSize; + particleSystem.maximumImageSize.y = particleSize; } ); -Cesium.knockout.getObservable(viewModel, 'minimumLife').subscribe( +Cesium.knockout.getObservable(viewModel, 'minimumParticleLife').subscribe( function(newValue) { - particleSystem.minimumLife = parseFloat(newValue); + particleSystem.minimumParticleLife = parseFloat(newValue); } ); -Cesium.knockout.getObservable(viewModel, 'maximumLife').subscribe( +Cesium.knockout.getObservable(viewModel, 'maximumParticleLife').subscribe( function(newValue) { - particleSystem.maximumLife = parseFloat(newValue); + particleSystem.maximumParticleLife = parseFloat(newValue); } ); @@ -422,8 +418,7 @@ }]; Sandcastle.addToolbarMenu(options); - - //Sandcastle_End + //Sandcastle_End Sandcastle.finishedLoading(); } diff --git a/CHANGES.md b/CHANGES.md index 28dbe0819f07..5c2b561044e2 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -3,6 +3,11 @@ Change Log ### 1.45 - 2018-05-01 +##### Deprecated :hourglass_flowing_sand: +* `Particle.size`, `ParticleSystem.rate`, `ParticleSystem.lifeTime`, `ParticleSystem.life`, `ParticleSystem.minimumLife`, and `ParticleSystem.maximumLife` have been renamed to `Particle.imageSize`, `ParticleSystem.emissionRate`, `ParticleSystem.lifetime`, `ParticleSystem.particleLife`, `ParticleSystem.minimumParticleLife`, and `ParticleSystem.maximumParticleLife`. Use of the `size`, `rate`, `lifeTime`, `life`, `minimumLife`, and `maximumLife` parameters is deprecated and will be removed in Cesium 1.46. +* `ParticleSystem.forces` array has been switched out for singular function `ParticleSystems.updateCallback`. Use of the `forces` parameter is deprecated and will be removed in Cesium 1.46. +* Any width and height variables in `ParticleSystem` will no longer be individual components. `ParticleSystem.minimumWidth` and `ParticleSystem.minimumHeight` will now be `ParticleSystem.minimumImageSize`, `ParticleSystem.maximumWidth` and `ParticleSystem.maximumHeight` will now be `ParticleSystem.maximumImageSize`, and `ParticleSystem.width` and `ParticleSystem.height` will now be `ParticleSystem.imageSize`. Use of the `minimumWidth`, `minimumHeight`, `maximumWidth`, `maximumHeight`, `width`, and `height` parameters is deprecated and will be removed in Cesium 1.46. + ##### Additions :tada: * Added `IonGeocoderService` and made it the default geocoding service for the `Geocoder` widget. * Added option `logarithmicDepthBuffer` to `Scene`. With this option there is typically a single frustum using logarithmic depth rendered. This increases performance by issuing less draw calls to the GPU and helps to avoid artifacts on the connection of two frustums. [#5851](https://github.com/AnalyticalGraphicsInc/cesium/pull/5851) @@ -14,9 +19,10 @@ Change Log * Added `supportsWebAssembly` function to `FeatureDetection` to check if a browser supports loading Web Assembly modules. [#6420](https://github.com/AnalyticalGraphicsInc/cesium/pull/6420) * Improved `MapboxImageryProvider` performance by 300% via `tiles.mapbox.com` subdomain switching. [#6426](https://github.com/AnalyticalGraphicsInc/cesium/issues/6426) * Added ability to invoke `sampleTerrain` from node.js to enable offline terrain sampling +* Added more ParticleSystem Sandcastle examples for rocket and comet tails and weather. [#6375](https://github.com/AnalyticalGraphicsInc/cesium/pull/6375) * Added color and scale attributes to the `ParticleSystem` class constructor. When defined the variables override startColor and endColor and startScale and endScale. [#6429](https://github.com/AnalyticalGraphicsInc/cesium/pull/6429) -* Improved `MapboxImageryProvider` performance by 300% via `tiles.mapbox.com` subdomain switching. [#6426](https://github.com/AnalyticalGraphicsInc/cesium/issues/6426) -* Added ability to invoke `sampleTerrain` from node.js to enable offline terrain sampling +-* Added ability to invoke `sampleTerrain` from node.js to enable offline terrain sampling +-* Improved `MapboxImageryProvider` performance by 300% via `tiles.mapbox.com` subdomain switching. [#6426](https://github.com/AnalyticalGraphicsInc/cesium/issues/6426) ##### Fixes :wrench: * Fixed bugs in `TimeIntervalCollection.removeInterval`. [#6418](https://github.com/AnalyticalGraphicsInc/cesium/pull/6418). @@ -32,11 +38,6 @@ Change Log * Fixed crash bug in PolylineCollection when a polyline was updated and removed at the same time. [#6455](https://github.com/AnalyticalGraphicsInc/cesium/pull/6455) * Fixed Imagery Layers Texture Filters Sandcastle example. [#6472](https://github.com/AnalyticalGraphicsInc/cesium/pull/6472). -##### Deprecated :hourglass_flowing_sand: -* `Particle.size`, `ParticleSystem.rate`, `ParticleSystem.lifeTime`, `ParticleSystem.life`, `ParticleSystem.minimumLife`, and `ParticleSystem.maximumLife` have been renamed to `Particle.imageSize`, `ParticleSystem.emissionRate`, `ParticleSystem.lifetime`, `ParticleSystem.particleLife`, `ParticleSystem.minimumParticleLife`, and `ParticleSystem.maximumParticleLife`. Use of the `size`, `rate`, `lifeTime`, `life`, `minimumLife`, and `maximumLife` parameters is deprecated and will be removed in Cesium 1.46. -* `ParticleSystem.forces` array has been switched out for singular function `ParticleSystems.updateCallback`. Use of the `forces` parameter is deprecated and will be removed in Cesium 1.46. -* Any width and height variables in `ParticleSystem` will no longer be individual components. `ParticleSystem.minimumWidth` and `ParticleSystem.minimumHeight` will now be `ParticleSystem.minimumImageSize`, `ParticleSystem.maximumWidth` and `ParticleSystem.maximumHeight` will now be `ParticleSystem.maximumImageSize`, and `ParticleSystem.width` and `ParticleSystem.height` will now be `ParticleSystem.imageSize`. Use of the `minimumWidth`, `minimumHeight`, `maximumWidth`, `maximumHeight`, `width`, and `height` parameters is deprecated and will be removed in Cesium 1.46. - ### 1.44 - 2018-04-02 ##### Highlights :sparkler: