@geoblocks/cesium-post-process 0.3.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -1
- package/dist/analog-video.d.ts +71 -0
- package/dist/analog-video.d.ts.map +1 -0
- package/dist/analog-video.js +128 -0
- package/dist/analog-video.js.map +1 -0
- package/dist/blur.d.ts +13 -0
- package/dist/blur.d.ts.map +1 -0
- package/dist/blur.js +36 -0
- package/dist/blur.js.map +1 -0
- package/dist/cesium-post-process.d.ts +30 -0
- package/dist/cesium-post-process.d.ts.map +1 -0
- package/dist/cesium-post-process.js +31 -0
- package/dist/cesium-post-process.js.map +1 -0
- package/dist/cloud-cover.d.ts +28 -0
- package/dist/cloud-cover.d.ts.map +1 -0
- package/dist/cloud-cover.js +45 -0
- package/dist/cloud-cover.js.map +1 -0
- package/dist/cloud-map.d.ts +7 -0
- package/dist/cloud-map.d.ts.map +1 -0
- package/dist/cloud-map.js +118 -0
- package/dist/cloud-map.js.map +1 -0
- package/dist/cloud-noise.d.ts +13 -0
- package/dist/cloud-noise.d.ts.map +1 -0
- package/dist/cloud-noise.js +222 -0
- package/dist/cloud-noise.js.map +1 -0
- package/dist/clouds.d.ts +275 -0
- package/dist/clouds.d.ts.map +1 -0
- package/dist/clouds.js +642 -0
- package/dist/clouds.js.map +1 -0
- package/dist/color-isolation.d.ts +38 -0
- package/dist/color-isolation.d.ts.map +1 -0
- package/dist/color-isolation.js +61 -0
- package/dist/color-isolation.js.map +1 -0
- package/dist/depth-test.d.ts +9 -0
- package/dist/depth-test.d.ts.map +1 -0
- package/dist/depth-test.js +35 -0
- package/dist/depth-test.js.map +1 -0
- package/dist/digital-video.d.ts +47 -0
- package/dist/digital-video.d.ts.map +1 -0
- package/dist/digital-video.js +102 -0
- package/dist/digital-video.js.map +1 -0
- package/dist/drone-display.d.ts +70 -0
- package/dist/drone-display.d.ts.map +1 -0
- package/dist/drone-display.js +158 -0
- package/dist/drone-display.js.map +1 -0
- package/dist/dufour.d.ts +108 -0
- package/dist/dufour.d.ts.map +1 -0
- package/dist/dufour.js +201 -0
- package/dist/dufour.js.map +1 -0
- package/dist/effect.d.ts +33 -0
- package/dist/effect.d.ts.map +1 -0
- package/dist/effect.js +60 -0
- package/dist/effect.js.map +1 -0
- package/dist/focus.d.ts +11 -0
- package/dist/focus.d.ts.map +1 -0
- package/dist/focus.js +23 -0
- package/dist/focus.js.map +1 -0
- package/dist/frame-clock.d.ts +11 -0
- package/dist/frame-clock.d.ts.map +1 -0
- package/dist/frame-clock.js +57 -0
- package/dist/frame-clock.js.map +1 -0
- package/dist/height.d.ts +12 -0
- package/dist/height.d.ts.map +1 -0
- package/dist/height.js +22 -0
- package/dist/height.js.map +1 -0
- package/dist/infrared.d.ts +23 -0
- package/dist/infrared.d.ts.map +1 -0
- package/dist/infrared.js +36 -0
- package/dist/infrared.js.map +1 -0
- package/dist/jello.d.ts +52 -0
- package/dist/jello.d.ts.map +1 -0
- package/dist/jello.js +136 -0
- package/dist/jello.js.map +1 -0
- package/dist/lens-distortion.d.ts +33 -0
- package/dist/lens-distortion.d.ts.map +1 -0
- package/dist/lens-distortion.js +61 -0
- package/dist/lens-distortion.js.map +1 -0
- package/dist/lightning.d.ts +124 -0
- package/dist/lightning.d.ts.map +1 -0
- package/dist/lightning.js +301 -0
- package/dist/lightning.js.map +1 -0
- package/dist/local-frame.d.ts +38 -0
- package/dist/local-frame.d.ts.map +1 -0
- package/dist/local-frame.js +52 -0
- package/dist/local-frame.js.map +1 -0
- package/dist/motion-blur.d.ts +50 -0
- package/dist/motion-blur.d.ts.map +1 -0
- package/dist/motion-blur.js +108 -0
- package/dist/motion-blur.js.map +1 -0
- package/dist/precipitation.d.ts +146 -0
- package/dist/precipitation.d.ts.map +1 -0
- package/dist/precipitation.js +454 -0
- package/dist/precipitation.js.map +1 -0
- package/dist/rain-rings.d.ts +100 -0
- package/dist/rain-rings.d.ts.map +1 -0
- package/dist/rain-rings.js +181 -0
- package/dist/rain-rings.js.map +1 -0
- package/dist/shaders/Alpenglow.d.ts +3 -0
- package/dist/shaders/Alpenglow.d.ts.map +1 -0
- package/dist/shaders/Alpenglow.js +3 -0
- package/dist/shaders/Alpenglow.js.map +1 -0
- package/dist/shaders/AnalogVideo.d.ts +3 -0
- package/dist/shaders/AnalogVideo.d.ts.map +1 -0
- package/dist/shaders/AnalogVideo.js +3 -0
- package/dist/shaders/AnalogVideo.js.map +1 -0
- package/dist/shaders/Beam.d.ts +3 -0
- package/dist/shaders/Beam.d.ts.map +1 -0
- package/dist/shaders/Beam.js +3 -0
- package/dist/shaders/Beam.js.map +1 -0
- package/dist/shaders/CloudsBlur.d.ts +3 -0
- package/dist/shaders/CloudsBlur.d.ts.map +1 -0
- package/dist/shaders/CloudsBlur.js +3 -0
- package/dist/shaders/CloudsBlur.js.map +1 -0
- package/dist/shaders/CloudsComposite.d.ts +3 -0
- package/dist/shaders/CloudsComposite.d.ts.map +1 -0
- package/dist/shaders/CloudsComposite.js +3 -0
- package/dist/shaders/CloudsComposite.js.map +1 -0
- package/dist/shaders/CloudsDensity.d.ts +3 -0
- package/dist/shaders/CloudsDensity.d.ts.map +1 -0
- package/dist/shaders/CloudsDensity.js +3 -0
- package/dist/shaders/CloudsDensity.js.map +1 -0
- package/dist/shaders/CloudsDepth.d.ts +3 -0
- package/dist/shaders/CloudsDepth.d.ts.map +1 -0
- package/dist/shaders/CloudsDepth.js +3 -0
- package/dist/shaders/CloudsDepth.js.map +1 -0
- package/dist/shaders/CloudsMarch.d.ts +3 -0
- package/dist/shaders/CloudsMarch.d.ts.map +1 -0
- package/dist/shaders/CloudsMarch.js +3 -0
- package/dist/shaders/CloudsMarch.js.map +1 -0
- package/dist/shaders/CloudsResolve.d.ts +3 -0
- package/dist/shaders/CloudsResolve.d.ts.map +1 -0
- package/dist/shaders/CloudsResolve.js +3 -0
- package/dist/shaders/CloudsResolve.js.map +1 -0
- package/dist/shaders/CloudsShadow.d.ts +3 -0
- package/dist/shaders/CloudsShadow.d.ts.map +1 -0
- package/dist/shaders/CloudsShadow.js +3 -0
- package/dist/shaders/CloudsShadow.js.map +1 -0
- package/dist/shaders/CloudsShadowMap.d.ts +3 -0
- package/dist/shaders/CloudsShadowMap.d.ts.map +1 -0
- package/dist/shaders/CloudsShadowMap.js +3 -0
- package/dist/shaders/CloudsShadowMap.js.map +1 -0
- package/dist/shaders/CloudsSlab.d.ts +3 -0
- package/dist/shaders/CloudsSlab.d.ts.map +1 -0
- package/dist/shaders/CloudsSlab.js +3 -0
- package/dist/shaders/CloudsSlab.js.map +1 -0
- package/dist/shaders/ColorIsolation.d.ts +3 -0
- package/dist/shaders/ColorIsolation.d.ts.map +1 -0
- package/dist/shaders/ColorIsolation.js +3 -0
- package/dist/shaders/ColorIsolation.js.map +1 -0
- package/dist/shaders/DepthEdges.d.ts +3 -0
- package/dist/shaders/DepthEdges.d.ts.map +1 -0
- package/dist/shaders/DepthEdges.js +3 -0
- package/dist/shaders/DepthEdges.js.map +1 -0
- package/dist/shaders/DigitalVideo.d.ts +3 -0
- package/dist/shaders/DigitalVideo.d.ts.map +1 -0
- package/dist/shaders/DigitalVideo.js +3 -0
- package/dist/shaders/DigitalVideo.js.map +1 -0
- package/dist/shaders/DroneDisplay.d.ts +3 -0
- package/dist/shaders/DroneDisplay.d.ts.map +1 -0
- package/dist/shaders/DroneDisplay.js +3 -0
- package/dist/shaders/DroneDisplay.js.map +1 -0
- package/dist/shaders/Dufour.d.ts +3 -0
- package/dist/shaders/Dufour.d.ts.map +1 -0
- package/dist/shaders/Dufour.js +3 -0
- package/dist/shaders/Dufour.js.map +1 -0
- package/dist/shaders/EyeFromDepth.d.ts +3 -0
- package/dist/shaders/EyeFromDepth.d.ts.map +1 -0
- package/dist/shaders/EyeFromDepth.js +3 -0
- package/dist/shaders/EyeFromDepth.js.map +1 -0
- package/dist/shaders/Filmic.d.ts +3 -0
- package/dist/shaders/Filmic.d.ts.map +1 -0
- package/dist/shaders/Filmic.js +3 -0
- package/dist/shaders/Filmic.js.map +1 -0
- package/dist/shaders/Flashlight.d.ts +3 -0
- package/dist/shaders/Flashlight.d.ts.map +1 -0
- package/dist/shaders/Flashlight.js +3 -0
- package/dist/shaders/Flashlight.js.map +1 -0
- package/dist/shaders/Fog.d.ts +3 -0
- package/dist/shaders/Fog.d.ts.map +1 -0
- package/dist/shaders/Fog.js +3 -0
- package/dist/shaders/Fog.js.map +1 -0
- package/dist/shaders/Frame.d.ts +3 -0
- package/dist/shaders/Frame.d.ts.map +1 -0
- package/dist/shaders/Frame.js +3 -0
- package/dist/shaders/Frame.js.map +1 -0
- package/dist/shaders/Hash.d.ts +3 -0
- package/dist/shaders/Hash.d.ts.map +1 -0
- package/dist/shaders/Hash.js +3 -0
- package/dist/shaders/Hash.js.map +1 -0
- package/dist/shaders/Height.d.ts +3 -0
- package/dist/shaders/Height.d.ts.map +1 -0
- package/dist/shaders/Height.js +3 -0
- package/dist/shaders/Height.js.map +1 -0
- package/dist/shaders/Infrared.d.ts +3 -0
- package/dist/shaders/Infrared.d.ts.map +1 -0
- package/dist/shaders/Infrared.js +3 -0
- package/dist/shaders/Infrared.js.map +1 -0
- package/dist/shaders/Jello.d.ts +3 -0
- package/dist/shaders/Jello.d.ts.map +1 -0
- package/dist/shaders/Jello.js +3 -0
- package/dist/shaders/Jello.js.map +1 -0
- package/dist/shaders/LensDistortion.d.ts +3 -0
- package/dist/shaders/LensDistortion.d.ts.map +1 -0
- package/dist/shaders/LensDistortion.js +3 -0
- package/dist/shaders/LensDistortion.js.map +1 -0
- package/dist/shaders/Lightning.d.ts +3 -0
- package/dist/shaders/Lightning.d.ts.map +1 -0
- package/dist/shaders/Lightning.js +3 -0
- package/dist/shaders/Lightning.js.map +1 -0
- package/dist/shaders/MotionBlur.d.ts +3 -0
- package/dist/shaders/MotionBlur.d.ts.map +1 -0
- package/dist/shaders/MotionBlur.js +3 -0
- package/dist/shaders/MotionBlur.js.map +1 -0
- package/dist/shaders/MotionBlurVelocity.d.ts +3 -0
- package/dist/shaders/MotionBlurVelocity.d.ts.map +1 -0
- package/dist/shaders/MotionBlurVelocity.js +3 -0
- package/dist/shaders/MotionBlurVelocity.js.map +1 -0
- package/dist/shaders/Noise.d.ts +3 -0
- package/dist/shaders/Noise.d.ts.map +1 -0
- package/dist/shaders/Noise.js +3 -0
- package/dist/shaders/Noise.js.map +1 -0
- package/dist/shaders/Normal.d.ts +3 -0
- package/dist/shaders/Normal.d.ts.map +1 -0
- package/dist/shaders/Normal.js +3 -0
- package/dist/shaders/Normal.js.map +1 -0
- package/dist/shaders/Phase.d.ts +3 -0
- package/dist/shaders/Phase.d.ts.map +1 -0
- package/dist/shaders/Phase.js +3 -0
- package/dist/shaders/Phase.js.map +1 -0
- package/dist/shaders/Precipitation.d.ts +3 -0
- package/dist/shaders/Precipitation.d.ts.map +1 -0
- package/dist/shaders/Precipitation.js +3 -0
- package/dist/shaders/Precipitation.js.map +1 -0
- package/dist/shaders/PrecipitationShaftBlur.d.ts +3 -0
- package/dist/shaders/PrecipitationShaftBlur.d.ts.map +1 -0
- package/dist/shaders/PrecipitationShaftBlur.js +3 -0
- package/dist/shaders/PrecipitationShaftBlur.js.map +1 -0
- package/dist/shaders/PrecipitationShafts.d.ts +3 -0
- package/dist/shaders/PrecipitationShafts.d.ts.map +1 -0
- package/dist/shaders/PrecipitationShafts.js +3 -0
- package/dist/shaders/PrecipitationShafts.js.map +1 -0
- package/dist/shaders/PrecipitationWind.d.ts +3 -0
- package/dist/shaders/PrecipitationWind.d.ts.map +1 -0
- package/dist/shaders/PrecipitationWind.js +3 -0
- package/dist/shaders/PrecipitationWind.js.map +1 -0
- package/dist/shaders/RainHaze.d.ts +3 -0
- package/dist/shaders/RainHaze.d.ts.map +1 -0
- package/dist/shaders/RainHaze.js +3 -0
- package/dist/shaders/RainHaze.js.map +1 -0
- package/dist/shaders/RainRings.d.ts +3 -0
- package/dist/shaders/RainRings.d.ts.map +1 -0
- package/dist/shaders/RainRings.js +3 -0
- package/dist/shaders/RainRings.js.map +1 -0
- package/dist/shaders/Shockwave.d.ts +3 -0
- package/dist/shaders/Shockwave.d.ts.map +1 -0
- package/dist/shaders/Shockwave.js +3 -0
- package/dist/shaders/Shockwave.js.map +1 -0
- package/dist/shaders/SkyTable.d.ts +3 -0
- package/dist/shaders/SkyTable.d.ts.map +1 -0
- package/dist/shaders/SkyTable.js +3 -0
- package/dist/shaders/SkyTable.js.map +1 -0
- package/dist/shaders/SnowLine.d.ts +3 -0
- package/dist/shaders/SnowLine.d.ts.map +1 -0
- package/dist/shaders/SnowLine.js +3 -0
- package/dist/shaders/SnowLine.js.map +1 -0
- package/dist/shaders/SpeedLines.d.ts +3 -0
- package/dist/shaders/SpeedLines.d.ts.map +1 -0
- package/dist/shaders/SpeedLines.js +3 -0
- package/dist/shaders/SpeedLines.js.map +1 -0
- package/dist/shaders/Spotlight.d.ts +3 -0
- package/dist/shaders/Spotlight.d.ts.map +1 -0
- package/dist/shaders/Spotlight.js +3 -0
- package/dist/shaders/Spotlight.js.map +1 -0
- package/dist/shaders/SpotlightBeam.d.ts +3 -0
- package/dist/shaders/SpotlightBeam.d.ts.map +1 -0
- package/dist/shaders/SpotlightBeam.js +3 -0
- package/dist/shaders/SpotlightBeam.js.map +1 -0
- package/dist/shaders/SpotlightBeamBlur.d.ts +3 -0
- package/dist/shaders/SpotlightBeamBlur.d.ts.map +1 -0
- package/dist/shaders/SpotlightBeamBlur.js +3 -0
- package/dist/shaders/SpotlightBeamBlur.js.map +1 -0
- package/dist/shaders/SpotlightCone.d.ts +3 -0
- package/dist/shaders/SpotlightCone.d.ts.map +1 -0
- package/dist/shaders/SpotlightCone.js +3 -0
- package/dist/shaders/SpotlightCone.js.map +1 -0
- package/dist/shaders/Super8.d.ts +3 -0
- package/dist/shaders/Super8.d.ts.map +1 -0
- package/dist/shaders/Super8.js +3 -0
- package/dist/shaders/Super8.js.map +1 -0
- package/dist/shaders/Technicolor.d.ts +3 -0
- package/dist/shaders/Technicolor.d.ts.map +1 -0
- package/dist/shaders/Technicolor.js +3 -0
- package/dist/shaders/Technicolor.js.map +1 -0
- package/dist/shaders/TiltShift.d.ts +3 -0
- package/dist/shaders/TiltShift.d.ts.map +1 -0
- package/dist/shaders/TiltShift.js +3 -0
- package/dist/shaders/TiltShift.js.map +1 -0
- package/dist/shaders/Toy.d.ts +3 -0
- package/dist/shaders/Toy.d.ts.map +1 -0
- package/dist/shaders/Toy.js +3 -0
- package/dist/shaders/Toy.js.map +1 -0
- package/dist/shaders/Trails.d.ts +3 -0
- package/dist/shaders/Trails.d.ts.map +1 -0
- package/dist/shaders/Trails.js +3 -0
- package/dist/shaders/Trails.js.map +1 -0
- package/dist/shaders/ValleyFog.d.ts +3 -0
- package/dist/shaders/ValleyFog.d.ts.map +1 -0
- package/dist/shaders/ValleyFog.js +3 -0
- package/dist/shaders/ValleyFog.js.map +1 -0
- package/dist/shaders/WeatherMap.d.ts +3 -0
- package/dist/shaders/WeatherMap.d.ts.map +1 -0
- package/dist/shaders/WeatherMap.js +3 -0
- package/dist/shaders/WeatherMap.js.map +1 -0
- package/dist/shaders/WhiteModel.d.ts +3 -0
- package/dist/shaders/WhiteModel.d.ts.map +1 -0
- package/dist/shaders/WhiteModel.js +3 -0
- package/dist/shaders/WhiteModel.js.map +1 -0
- package/dist/snow-line.d.ts +117 -0
- package/dist/snow-line.d.ts.map +1 -0
- package/dist/snow-line.js +201 -0
- package/dist/snow-line.js.map +1 -0
- package/dist/speed-lines.d.ts +36 -0
- package/dist/speed-lines.d.ts.map +1 -0
- package/dist/speed-lines.js +65 -0
- package/dist/speed-lines.js.map +1 -0
- package/dist/spotlight.d.ts +84 -0
- package/dist/spotlight.d.ts.map +1 -0
- package/dist/spotlight.js +175 -0
- package/dist/spotlight.js.map +1 -0
- package/dist/strikes.d.ts +17 -0
- package/dist/strikes.d.ts.map +1 -0
- package/dist/strikes.js +30 -0
- package/dist/strikes.js.map +1 -0
- package/dist/super8.d.ts +78 -0
- package/dist/super8.d.ts.map +1 -0
- package/dist/super8.js +146 -0
- package/dist/super8.js.map +1 -0
- package/dist/technicolor.d.ts +32 -0
- package/dist/technicolor.d.ts.map +1 -0
- package/dist/technicolor.js +51 -0
- package/dist/technicolor.js.map +1 -0
- package/dist/tilt-shift.d.ts +60 -0
- package/dist/tilt-shift.d.ts.map +1 -0
- package/dist/tilt-shift.js +112 -0
- package/dist/tilt-shift.js.map +1 -0
- package/dist/toy.d.ts +110 -0
- package/dist/toy.d.ts.map +1 -0
- package/dist/toy.js +173 -0
- package/dist/toy.js.map +1 -0
- package/dist/valley-fog.d.ts +56 -0
- package/dist/valley-fog.d.ts.map +1 -0
- package/dist/valley-fog.js +94 -0
- package/dist/valley-fog.js.map +1 -0
- package/dist/weather-map.d.ts +132 -0
- package/dist/weather-map.d.ts.map +1 -0
- package/dist/weather-map.js +266 -0
- package/dist/weather-map.js.map +1 -0
- package/dist/white-model.d.ts +70 -0
- package/dist/white-model.d.ts.map +1 -0
- package/dist/white-model.js +94 -0
- package/dist/white-model.js.map +1 -0
- package/package.json +19 -40
- package/{cesium-post-process.js → src/cesium-post-process.js} +2 -0
- package/src/local-frame.js +57 -0
- package/{rain-rings.js → src/rain-rings.js} +14 -28
- package/src/shaders/AnalogVideo.glsl +132 -0
- package/src/shaders/Beam.glsl +108 -0
- package/src/shaders/CloudsBlur.glsl +30 -0
- package/src/shaders/CloudsComposite.glsl +59 -0
- package/src/shaders/CloudsDensity.glsl +129 -0
- package/src/shaders/CloudsDepth.glsl +26 -0
- package/src/shaders/CloudsMarch.glsl +174 -0
- package/src/shaders/CloudsResolve.glsl +46 -0
- package/src/shaders/CloudsShadow.glsl +50 -0
- package/src/shaders/CloudsShadowMap.glsl +68 -0
- package/src/shaders/CloudsSlab.glsl +58 -0
- package/src/shaders/ColorIsolation.glsl +26 -0
- package/src/shaders/DepthEdges.glsl +81 -0
- package/src/shaders/DigitalVideo.glsl +65 -0
- package/src/shaders/DroneDisplay.glsl +337 -0
- package/src/shaders/Dufour.glsl +109 -0
- package/src/shaders/EyeFromDepth.glsl +36 -0
- package/src/shaders/Filmic.glsl +5 -0
- package/src/shaders/Fog.glsl +18 -0
- package/src/shaders/Frame.glsl +10 -0
- package/src/shaders/Hash.glsl +12 -0
- package/src/shaders/Height.glsl +25 -0
- package/src/shaders/Infrared.glsl +44 -0
- package/src/shaders/Jello.glsl +41 -0
- package/src/shaders/LensDistortion.glsl +24 -0
- package/src/shaders/Lightning.glsl +257 -0
- package/src/shaders/MotionBlur.glsl +71 -0
- package/src/shaders/MotionBlurVelocity.glsl +31 -0
- package/src/shaders/Noise.glsl +43 -0
- package/src/shaders/Normal.glsl +21 -0
- package/src/shaders/Phase.glsl +6 -0
- package/src/shaders/Precipitation.glsl +199 -0
- package/src/shaders/PrecipitationShaftBlur.glsl +21 -0
- package/src/shaders/PrecipitationShafts.glsl +84 -0
- package/src/shaders/PrecipitationWind.glsl +33 -0
- package/src/shaders/RainHaze.glsl +145 -0
- package/src/shaders/RainRings.glsl +64 -0
- package/src/shaders/SkyTable.glsl +23 -0
- package/src/shaders/SnowLine.glsl +97 -0
- package/src/shaders/SnowLine.js +2 -0
- package/src/shaders/SpeedLines.glsl +61 -0
- package/src/shaders/Spotlight.glsl +89 -0
- package/src/shaders/SpotlightBeam.glsl +49 -0
- package/src/shaders/SpotlightBeamBlur.glsl +27 -0
- package/src/shaders/SpotlightCone.glsl +37 -0
- package/src/shaders/Super8.glsl +90 -0
- package/src/shaders/Technicolor.glsl +30 -0
- package/src/shaders/TiltShift.glsl +34 -0
- package/src/shaders/Toy.glsl +46 -0
- package/src/shaders/ValleyFog.glsl +40 -0
- package/src/shaders/WeatherMap.glsl +33 -0
- package/src/shaders/WhiteModel.glsl +108 -0
- package/{snow-line.js → src/snow-line.js} +71 -3
- package/local-frame.js +0 -15
- package/shaders/SnowLine.js +0 -2
- /package/{analog-video.js → src/analog-video.js} +0 -0
- /package/{blur.js → src/blur.js} +0 -0
- /package/{cloud-cover.js → src/cloud-cover.js} +0 -0
- /package/{cloud-map.js → src/cloud-map.js} +0 -0
- /package/{cloud-noise.js → src/cloud-noise.js} +0 -0
- /package/{clouds.js → src/clouds.js} +0 -0
- /package/{color-isolation.js → src/color-isolation.js} +0 -0
- /package/{depth-test.js → src/depth-test.js} +0 -0
- /package/{digital-video.js → src/digital-video.js} +0 -0
- /package/{drone-display.js → src/drone-display.js} +0 -0
- /package/{dufour.js → src/dufour.js} +0 -0
- /package/{effect.js → src/effect.js} +0 -0
- /package/{focus.js → src/focus.js} +0 -0
- /package/{frame-clock.js → src/frame-clock.js} +0 -0
- /package/{height.js → src/height.js} +0 -0
- /package/{infrared.js → src/infrared.js} +0 -0
- /package/{jello.js → src/jello.js} +0 -0
- /package/{lens-distortion.js → src/lens-distortion.js} +0 -0
- /package/{lightning.js → src/lightning.js} +0 -0
- /package/{motion-blur.js → src/motion-blur.js} +0 -0
- /package/{precipitation.js → src/precipitation.js} +0 -0
- /package/{shaders → src/shaders}/Alpenglow.js +0 -0
- /package/{shaders → src/shaders}/AnalogVideo.js +0 -0
- /package/{shaders → src/shaders}/Beam.js +0 -0
- /package/{shaders → src/shaders}/CloudsBlur.js +0 -0
- /package/{shaders → src/shaders}/CloudsComposite.js +0 -0
- /package/{shaders → src/shaders}/CloudsDensity.js +0 -0
- /package/{shaders → src/shaders}/CloudsDepth.js +0 -0
- /package/{shaders → src/shaders}/CloudsMarch.js +0 -0
- /package/{shaders → src/shaders}/CloudsResolve.js +0 -0
- /package/{shaders → src/shaders}/CloudsShadow.js +0 -0
- /package/{shaders → src/shaders}/CloudsShadowMap.js +0 -0
- /package/{shaders → src/shaders}/CloudsSlab.js +0 -0
- /package/{shaders → src/shaders}/ColorIsolation.js +0 -0
- /package/{shaders → src/shaders}/DepthEdges.js +0 -0
- /package/{shaders → src/shaders}/DigitalVideo.js +0 -0
- /package/{shaders → src/shaders}/DroneDisplay.js +0 -0
- /package/{shaders → src/shaders}/Dufour.js +0 -0
- /package/{shaders → src/shaders}/EyeFromDepth.js +0 -0
- /package/{shaders → src/shaders}/Filmic.js +0 -0
- /package/{shaders → src/shaders}/Flashlight.js +0 -0
- /package/{shaders → src/shaders}/Fog.js +0 -0
- /package/{shaders → src/shaders}/Frame.js +0 -0
- /package/{shaders → src/shaders}/Hash.js +0 -0
- /package/{shaders → src/shaders}/Height.js +0 -0
- /package/{shaders → src/shaders}/Infrared.js +0 -0
- /package/{shaders → src/shaders}/Jello.js +0 -0
- /package/{shaders → src/shaders}/LensDistortion.js +0 -0
- /package/{shaders → src/shaders}/Lightning.js +0 -0
- /package/{shaders → src/shaders}/MotionBlur.js +0 -0
- /package/{shaders → src/shaders}/MotionBlurVelocity.js +0 -0
- /package/{shaders → src/shaders}/Noise.js +0 -0
- /package/{shaders → src/shaders}/Normal.js +0 -0
- /package/{shaders → src/shaders}/Phase.js +0 -0
- /package/{shaders → src/shaders}/Precipitation.js +0 -0
- /package/{shaders → src/shaders}/PrecipitationShaftBlur.js +0 -0
- /package/{shaders → src/shaders}/PrecipitationShafts.js +0 -0
- /package/{shaders → src/shaders}/PrecipitationWind.js +0 -0
- /package/{shaders → src/shaders}/RainHaze.js +0 -0
- /package/{shaders → src/shaders}/RainRings.js +0 -0
- /package/{shaders → src/shaders}/Shockwave.js +0 -0
- /package/{shaders → src/shaders}/SkyTable.js +0 -0
- /package/{shaders → src/shaders}/SpeedLines.js +0 -0
- /package/{shaders → src/shaders}/Spotlight.js +0 -0
- /package/{shaders → src/shaders}/SpotlightBeam.js +0 -0
- /package/{shaders → src/shaders}/SpotlightBeamBlur.js +0 -0
- /package/{shaders → src/shaders}/SpotlightCone.js +0 -0
- /package/{shaders → src/shaders}/Super8.js +0 -0
- /package/{shaders → src/shaders}/Technicolor.js +0 -0
- /package/{shaders → src/shaders}/TiltShift.js +0 -0
- /package/{shaders → src/shaders}/Toy.js +0 -0
- /package/{shaders → src/shaders}/Trails.js +0 -0
- /package/{shaders → src/shaders}/ValleyFog.js +0 -0
- /package/{shaders → src/shaders}/WeatherMap.js +0 -0
- /package/{shaders → src/shaders}/WhiteModel.js +0 -0
- /package/{speed-lines.js → src/speed-lines.js} +0 -0
- /package/{spotlight.js → src/spotlight.js} +0 -0
- /package/{strikes.js → src/strikes.js} +0 -0
- /package/{super8.js → src/super8.js} +0 -0
- /package/{technicolor.js → src/technicolor.js} +0 -0
- /package/{tilt-shift.js → src/tilt-shift.js} +0 -0
- /package/{toy.js → src/toy.js} +0 -0
- /package/{valley-fog.js → src/valley-fog.js} +0 -0
- /package/{weather-map.js → src/weather-map.js} +0 -0
- /package/{white-model.js → src/white-model.js} +0 -0
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
import { Cartesian3, Cartesian4, Cartographic, Event, Matrix4, Math as CesiumMath } from '@cesium/core';
|
|
2
|
+
import { PostProcessStage } from '@cesium/engine';
|
|
3
|
+
import { acquireTerrainDepth, releaseTerrainDepth } from './depth-test.js';
|
|
4
|
+
import Effect from './effect.js';
|
|
5
|
+
import { acquireFrames, releaseFrames } from './frame-clock.js';
|
|
6
|
+
import { advanceStrikes, MAX_STRIKES } from './strikes.js';
|
|
7
|
+
import WeatherMap from './weather-map.js';
|
|
8
|
+
import EyeFromDepth from './shaders/EyeFromDepth.js';
|
|
9
|
+
import Hash from './shaders/Hash.js';
|
|
10
|
+
import LightningShader from './shaders/Lightning.js';
|
|
11
|
+
// the flickering of the strokes is tens of milliseconds long: a render for each frame of a video
|
|
12
|
+
const FRAME_RATE = 30;
|
|
13
|
+
// strikes per second at intensity 1
|
|
14
|
+
const MAX_RATE = 0.4;
|
|
15
|
+
// the nearest a strike lands, in meters, and the least height of its channel
|
|
16
|
+
const MIN_DISTANCE = 300;
|
|
17
|
+
const MIN_CHANNEL = 500;
|
|
18
|
+
// longest time between two frames, in seconds, after a pause in requestRenderMode
|
|
19
|
+
const MAX_STEP = 0.1;
|
|
20
|
+
const TWO_PI = CesiumMath.TWO_PI;
|
|
21
|
+
// the branches of a channel (Lightning.glsl's BRANCHES), the share of them that exist, and how far down
|
|
22
|
+
// the channel they leave it and at what angle from it, in radians, at most
|
|
23
|
+
const BRANCHES = 5;
|
|
24
|
+
const BRANCH_ODDS = 0.7;
|
|
25
|
+
const BRANCH_ANGLE = [0.25, 0.75];
|
|
26
|
+
// how far from the camera's heading a strike lands in front of it, in radians
|
|
27
|
+
const AHEAD = CesiumMath.PI / 6;
|
|
28
|
+
// the radar's intensity, 0 to 1, over which a point goes from never to always struck: from about
|
|
29
|
+
// 2.5 to 8 mm/h, the map being the square root of the rate over 10 mm/h
|
|
30
|
+
const STORM = [0.5, 0.9];
|
|
31
|
+
// the farthest the strikes land from a camera high above, in meters, and the most the chance of a
|
|
32
|
+
// strike grows with the area they land in
|
|
33
|
+
const MAX_RADIUS = 150000;
|
|
34
|
+
const MAX_AREA = 16;
|
|
35
|
+
// the points tried for a strike before giving it up
|
|
36
|
+
const ATTEMPTS = 8;
|
|
37
|
+
// the glow of a strike in the clouds is this high above the cloud base, in meters
|
|
38
|
+
const GLOW_HEIGHT = 1500;
|
|
39
|
+
// the glow and the channel cross-fade over this height on either side of the cloud base, in meters
|
|
40
|
+
const ABOVE_FADE = 200;
|
|
41
|
+
/**
|
|
42
|
+
* @param {number} edge0
|
|
43
|
+
* @param {number} edge1
|
|
44
|
+
* @param {number} x
|
|
45
|
+
*/
|
|
46
|
+
function smoothstep(edge0, edge1, x) {
|
|
47
|
+
const t = CesiumMath.clamp((x - edge0) / (edge1 - edge0), 0, 1);
|
|
48
|
+
return t * t * (3 - 2 * t);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* @typedef {{start: number, seed: number, ground: Cartesian3, top: Cartesian3, glow: Cartesian3, glowIntensity: number, branches: number[][]}} Strike
|
|
52
|
+
*/
|
|
53
|
+
const eyeScratch = new Cartesian3();
|
|
54
|
+
/**
|
|
55
|
+
* Lightning: cloud-to-ground strikes at random around the camera, each a
|
|
56
|
+
* branching channel from the cloud base to the ground with 2 to 4 return
|
|
57
|
+
* strokes tens of milliseconds apart, a hot core in a halo that flickers with
|
|
58
|
+
* them, hidden behind nearer terrain, and a flash that lights the land around
|
|
59
|
+
* the strike and the clouds above it. The strikes are placed on the ground,
|
|
60
|
+
* so they stay where they are as the camera moves. With a map, they land on
|
|
61
|
+
* heavy rain, around what the camera sees: within the radius, or as far as
|
|
62
|
+
* the camera is high, up to 150 km. The strokes flicker, so while it is active
|
|
63
|
+
* with an intensity the scene renders at 30 frames per second, also in
|
|
64
|
+
* requestRenderMode.
|
|
65
|
+
*/
|
|
66
|
+
export default class Lightning extends Effect {
|
|
67
|
+
/**
|
|
68
|
+
* @param {import('@cesium/engine').CesiumWidget} viewer
|
|
69
|
+
* @param {{intensity?: number, cloudBase?: number, radius?: number, inFront?: boolean, map?: import('./weather-map.js').WeatherMapOptions}} [options]
|
|
70
|
+
*/
|
|
71
|
+
constructor(viewer, options = {}) {
|
|
72
|
+
super(viewer);
|
|
73
|
+
this.intensity_ = options.intensity ?? 0.5;
|
|
74
|
+
this.cloudBase_ = options.cloudBase ?? 2500;
|
|
75
|
+
this.radius_ = options.radius ?? 5000;
|
|
76
|
+
this.inFront_ = options.inFront ?? false;
|
|
77
|
+
// without a map, it strikes anywhere in the radius
|
|
78
|
+
this.weatherMap_ = new WeatherMap(1);
|
|
79
|
+
this.weatherMap_.map = options.map;
|
|
80
|
+
/** @type {Strike[]} */
|
|
81
|
+
this.strikes_ = [];
|
|
82
|
+
// what the shader gets of each strike, in eye coordinates: the top of its channel and its seed,
|
|
83
|
+
// its foot and its age, negative for a slot without a strike
|
|
84
|
+
this.strikeTop_ = Array.from({ length: MAX_STRIKES }, () => new Cartesian4());
|
|
85
|
+
this.strikeBottom_ = Array.from({ length: MAX_STRIKES }, () => new Cartesian4(0, 0, 0, -1));
|
|
86
|
+
// and each one's branches: where along the channel they leave it, the cosine and the sine of their
|
|
87
|
+
// angle from it, and their length as a share of the channel's, 0 for a branch that does not exist
|
|
88
|
+
this.strikeBranches_ = Array.from({ length: MAX_STRIKES * BRANCHES }, () => new Cartesian4());
|
|
89
|
+
// the glow of each strike in the clouds, in eye coordinates, and its intensity, 0 for none
|
|
90
|
+
this.strikeGlow_ = Array.from({ length: MAX_STRIKES }, () => new Cartesian4());
|
|
91
|
+
// 0 below the cloud base to 1 above it, where the glow replaces the channel
|
|
92
|
+
this.above_ = 0;
|
|
93
|
+
this.lastTime_ = 0;
|
|
94
|
+
/**
|
|
95
|
+
* Raised with the foot of each new strike on the ground, as it starts.
|
|
96
|
+
* @type {Event<(ground: Cartesian3) => void>}
|
|
97
|
+
*/
|
|
98
|
+
this.strikeEvent = new Event();
|
|
99
|
+
this.onPreRender_ = () => {
|
|
100
|
+
const scene = this.viewer.scene;
|
|
101
|
+
const now = performance.now() / 1000;
|
|
102
|
+
const dt = Math.min(now - this.lastTime_, MAX_STEP);
|
|
103
|
+
this.lastTime_ = now;
|
|
104
|
+
const area = Math.min((this.usedRadius_() / this.radius_) ** 2, MAX_AREA);
|
|
105
|
+
advanceStrikes(this.strikes_, now, dt, this.intensity_ * MAX_RATE * area, Math.random, (start) => {
|
|
106
|
+
const strike = this.createStrike_(start);
|
|
107
|
+
if (strike) {
|
|
108
|
+
this.strikeEvent.raiseEvent(strike.ground);
|
|
109
|
+
}
|
|
110
|
+
return strike;
|
|
111
|
+
});
|
|
112
|
+
this.above_ = CesiumMath.clamp((scene.camera.positionCartographic.height - this.cloudBase_ + ABOVE_FADE) / (2 * ABOVE_FADE), 0, 1);
|
|
113
|
+
const view = scene.camera.viewMatrix;
|
|
114
|
+
for (let i = 0; i < MAX_STRIKES; i++) {
|
|
115
|
+
const strike = this.strikes_[i];
|
|
116
|
+
if (!strike) {
|
|
117
|
+
this.strikeBottom_[i].w = -1;
|
|
118
|
+
this.strikeGlow_[i].w = 0;
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
Matrix4.multiplyByPoint(view, strike.top, eyeScratch);
|
|
122
|
+
Cartesian4.fromElements(eyeScratch.x, eyeScratch.y, eyeScratch.z, strike.seed, this.strikeTop_[i]);
|
|
123
|
+
Matrix4.multiplyByPoint(view, strike.ground, eyeScratch);
|
|
124
|
+
Cartesian4.fromElements(eyeScratch.x, eyeScratch.y, eyeScratch.z, now - strike.start, this.strikeBottom_[i]);
|
|
125
|
+
for (let j = 0; j < BRANCHES; j++) {
|
|
126
|
+
const [at, angle, length] = strike.branches[j];
|
|
127
|
+
Cartesian4.fromElements(at, Math.cos(angle), Math.sin(angle), length, this.strikeBranches_[i * BRANCHES + j]);
|
|
128
|
+
}
|
|
129
|
+
Matrix4.multiplyByPoint(view, strike.glow, eyeScratch);
|
|
130
|
+
Cartesian4.fromElements(eyeScratch.x, eyeScratch.y, eyeScratch.z, strike.glowIntensity, this.strikeGlow_[i]);
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* How far from the camera the strikes land: the radius, or the camera's
|
|
136
|
+
* height when it is higher, so that they land around what it sees.
|
|
137
|
+
*/
|
|
138
|
+
usedRadius_() {
|
|
139
|
+
const height = this.viewer.scene.camera.positionCartographic.height;
|
|
140
|
+
return Math.min(Math.max(this.radius_, height), MAX_RADIUS);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* A strike at a random place within the radius, uniformly over the area,
|
|
144
|
+
* kept with a chance of the map's intensity there.
|
|
145
|
+
* @param {number} start
|
|
146
|
+
* @return {Strike | undefined}
|
|
147
|
+
*/
|
|
148
|
+
createStrike_(start) {
|
|
149
|
+
const scene = this.viewer.scene;
|
|
150
|
+
const { longitude, latitude } = scene.camera.positionCartographic;
|
|
151
|
+
const radius = scene.ellipsoid.maximumRadius;
|
|
152
|
+
// a few points tried, so that the strikes find the heavy rain within the radius rather than
|
|
153
|
+
// mostly missing it
|
|
154
|
+
for (let attempt = 0; attempt < ATTEMPTS; attempt++) {
|
|
155
|
+
const azimuth = this.inFront_ ? scene.camera.heading + (Math.random() * 2 - 1) * AHEAD : Math.random() * TWO_PI;
|
|
156
|
+
const distance = MIN_DISTANCE + Math.max(this.usedRadius_() - MIN_DISTANCE, 0) * Math.sqrt(Math.random());
|
|
157
|
+
const strikeLongitude = longitude + (distance * Math.sin(azimuth)) / (radius * Math.cos(latitude));
|
|
158
|
+
const strikeLatitude = latitude + (distance * Math.cos(azimuth)) / radius;
|
|
159
|
+
const glowIntensity = this.weatherMap_.intensityAt(strikeLongitude, strikeLatitude);
|
|
160
|
+
if (!this.weatherMap_.map || Math.random() < smoothstep(STORM[0], STORM[1], glowIntensity)) {
|
|
161
|
+
return this.strikeAt_(start, strikeLongitude, strikeLatitude, glowIntensity);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return undefined;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* A strike at a place, with its random branches.
|
|
168
|
+
* @param {number} start
|
|
169
|
+
* @param {number} strikeLongitude radians
|
|
170
|
+
* @param {number} strikeLatitude radians
|
|
171
|
+
* @param {number} glowIntensity the map's intensity there
|
|
172
|
+
* @return {Strike}
|
|
173
|
+
*/
|
|
174
|
+
strikeAt_(start, strikeLongitude, strikeLatitude, glowIntensity) {
|
|
175
|
+
const scene = this.viewer.scene;
|
|
176
|
+
const branches = Array.from({ length: BRANCHES }, () => {
|
|
177
|
+
const at = 0.1 + 0.7 * Math.random();
|
|
178
|
+
const side = Math.random() < 0.5 ? -1 : 1;
|
|
179
|
+
const angle = side * (BRANCH_ANGLE[0] + (BRANCH_ANGLE[1] - BRANCH_ANGLE[0]) * Math.random());
|
|
180
|
+
return [at, angle, Math.random() < BRANCH_ODDS ? (1 - at) * (0.25 + 0.4 * Math.random()) : 0];
|
|
181
|
+
});
|
|
182
|
+
const height = scene.globe?.getHeight(new Cartographic(strikeLongitude, strikeLatitude)) ?? 0;
|
|
183
|
+
return {
|
|
184
|
+
start,
|
|
185
|
+
seed: Math.random() * 100,
|
|
186
|
+
branches,
|
|
187
|
+
ground: Cartesian3.fromRadians(strikeLongitude, strikeLatitude, height, scene.ellipsoid),
|
|
188
|
+
top: Cartesian3.fromRadians(strikeLongitude, strikeLatitude, Math.max(this.cloudBase_, height + MIN_CHANNEL), scene.ellipsoid),
|
|
189
|
+
glow: Cartesian3.fromRadians(strikeLongitude, strikeLatitude, this.cloudBase_ + GLOW_HEIGHT, scene.ellipsoid),
|
|
190
|
+
glowIntensity,
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* @override
|
|
195
|
+
* @param {import('@cesium/engine').Scene} _scene
|
|
196
|
+
*/
|
|
197
|
+
createStage_(_scene) {
|
|
198
|
+
const stage = new PostProcessStage({
|
|
199
|
+
fragmentShader: Hash + EyeFromDepth + LightningShader,
|
|
200
|
+
uniforms: {
|
|
201
|
+
strikeTop: () => this.strikeTop_,
|
|
202
|
+
strikeBottom: () => this.strikeBottom_,
|
|
203
|
+
strikeBranches: () => this.strikeBranches_,
|
|
204
|
+
strikeGlow: () => this.strikeGlow_,
|
|
205
|
+
above: () => this.above_,
|
|
206
|
+
},
|
|
207
|
+
});
|
|
208
|
+
// no pass, and no frames, without an intensity
|
|
209
|
+
stage.enabled = this.intensity_ > 0;
|
|
210
|
+
return stage;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* @override
|
|
214
|
+
* @param {import('@cesium/engine').Scene} scene
|
|
215
|
+
*/
|
|
216
|
+
activated_(scene) {
|
|
217
|
+
this.lastTime_ = performance.now() / 1000;
|
|
218
|
+
scene.preRender.addEventListener(this.onPreRender_);
|
|
219
|
+
acquireTerrainDepth(scene);
|
|
220
|
+
if (this.intensity_ > 0) {
|
|
221
|
+
acquireFrames(scene, FRAME_RATE);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* @override
|
|
226
|
+
* @param {import('@cesium/engine').Scene} scene
|
|
227
|
+
*/
|
|
228
|
+
deactivating_(scene) {
|
|
229
|
+
if (this.intensity_ > 0) {
|
|
230
|
+
releaseFrames(scene, FRAME_RATE);
|
|
231
|
+
}
|
|
232
|
+
releaseTerrainDepth(scene);
|
|
233
|
+
scene.preRender.removeEventListener(this.onPreRender_);
|
|
234
|
+
this.strikes_.length = 0;
|
|
235
|
+
for (const bottom of this.strikeBottom_) {
|
|
236
|
+
bottom.w = -1;
|
|
237
|
+
}
|
|
238
|
+
for (const glow of this.strikeGlow_) {
|
|
239
|
+
glow.w = 0;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* How active the storm is, 0 to 1: the strikes start at random, up to one
|
|
244
|
+
* every 2.5 seconds on average.
|
|
245
|
+
*/
|
|
246
|
+
get intensity() {
|
|
247
|
+
return this.intensity_;
|
|
248
|
+
}
|
|
249
|
+
set intensity(value) {
|
|
250
|
+
const striking = this.intensity_ > 0;
|
|
251
|
+
this.intensity_ = value;
|
|
252
|
+
if (this.stage_ && striking !== value > 0) {
|
|
253
|
+
this.stage_.enabled = value > 0;
|
|
254
|
+
(value > 0 ? acquireFrames : releaseFrames)(this.viewer.scene, FRAME_RATE);
|
|
255
|
+
}
|
|
256
|
+
this.viewer.scene.requestRender();
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Altitude of the cloud base, in meters above the ellipsoid: the channels
|
|
260
|
+
* start there, and none strike around a camera above it.
|
|
261
|
+
*/
|
|
262
|
+
get cloudBase() {
|
|
263
|
+
return this.cloudBase_;
|
|
264
|
+
}
|
|
265
|
+
set cloudBase(value) {
|
|
266
|
+
this.cloudBase_ = value;
|
|
267
|
+
this.viewer.scene.requestRender();
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Whether the strikes land in front of the camera, within 30 degrees of
|
|
271
|
+
* where it looks, rather than all around it.
|
|
272
|
+
*/
|
|
273
|
+
get inFront() {
|
|
274
|
+
return this.inFront_;
|
|
275
|
+
}
|
|
276
|
+
set inFront(value) {
|
|
277
|
+
this.inFront_ = value;
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* How far from the camera the strikes land, in meters.
|
|
281
|
+
*/
|
|
282
|
+
get radius() {
|
|
283
|
+
return this.radius_;
|
|
284
|
+
}
|
|
285
|
+
set radius(value) {
|
|
286
|
+
this.radius_ = value;
|
|
287
|
+
this.viewer.scene.requestRender();
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Where it rains, or undefined to strike anywhere: an image whose red
|
|
291
|
+
* channel is the local intensity, as Precipitation's map. With a map, a
|
|
292
|
+
* strike lands only on heavy rain, more surely as it is heavier.
|
|
293
|
+
*/
|
|
294
|
+
get map() {
|
|
295
|
+
return this.weatherMap_.map;
|
|
296
|
+
}
|
|
297
|
+
set map(value) {
|
|
298
|
+
this.weatherMap_.map = value;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
//# sourceMappingURL=lightning.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lightning.js","sourceRoot":"","sources":["../src/lightning.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Cartesian3, Matrix4 } from '@cesium/core';
|
|
2
|
+
/**
|
|
3
|
+
* The local frame's coordinates from the eye's, for a shader that wants a pixel's place in a small frame (east-north-up about a point) to
|
|
4
|
+
* lay a pattern over the ground that stays where it is as the camera moves. Made in double precision on the CPU: the globe's offset
|
|
5
|
+
* (about 6.4 million meters) cancels in the product, so the matrix a shader gets is small and a place comes out to the millimeter. In world
|
|
6
|
+
* coordinates, a single precision float steps by half a meter.
|
|
7
|
+
* @param {Matrix4} frame The local frame in the world, such as `FixedFrameTransforms.eastNorthUpToFixedFrame(origin)`.
|
|
8
|
+
* @param {Matrix4} viewMatrix The camera's view matrix.
|
|
9
|
+
* @param {Matrix4} [result]
|
|
10
|
+
* @return {Matrix4}
|
|
11
|
+
*/
|
|
12
|
+
export declare function localFromEye(frame: Matrix4, viewMatrix: Matrix4, result?: Matrix4): Matrix4;
|
|
13
|
+
/**
|
|
14
|
+
* A local frame, east-north-up about an origin, for an effect that lays a pattern over the ground: the origin given, or the camera's
|
|
15
|
+
* position when the frame is first anchored.
|
|
16
|
+
*/
|
|
17
|
+
export declare class LocalFrame {
|
|
18
|
+
origin_: Cartesian3 | undefined;
|
|
19
|
+
/** @type {Matrix4 | undefined} */
|
|
20
|
+
frame_: Matrix4 | undefined;
|
|
21
|
+
scratch_: Matrix4;
|
|
22
|
+
/** @param {Cartesian3} [origin] */
|
|
23
|
+
constructor(origin?: Cartesian3);
|
|
24
|
+
/** The point of the world the frame is laid about; undefined until anchored if none was given. */
|
|
25
|
+
get origin(): Cartesian3 | undefined;
|
|
26
|
+
set origin(value: Cartesian3 | undefined);
|
|
27
|
+
/**
|
|
28
|
+
* The origin, the camera's position if there is none yet.
|
|
29
|
+
* @param {import('@cesium/engine').Scene} scene
|
|
30
|
+
*/
|
|
31
|
+
anchor(scene: import('@cesium/engine').Scene): Cartesian3;
|
|
32
|
+
/**
|
|
33
|
+
* The local frame's coordinates from the camera's eye's (localFromEye), anchored first.
|
|
34
|
+
* @param {import('@cesium/engine').Scene} scene
|
|
35
|
+
*/
|
|
36
|
+
fromEye(scene: import('@cesium/engine').Scene): Matrix4;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=local-frame.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-frame.d.ts","sourceRoot":"","sources":["../src/local-frame.js"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAwB,OAAO,EAAC,MAAM,cAAc,CAAC;AAEvE;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,KAAK,EALvB,OAKuB,EAAE,UAAU,EAJnC,OAImC,EAAE,MAAM,AAHnD,CACA,EADQ,OAG2D,GAF1D,OAAO,CAIlB;AAED;;;GAGG;AACH,qBAAa,UAAU;IAGd,OAAO;IACZ,kCAAkC;IAC7B,MAAM,EADA,OAAO,GAAG,SAAS;IAEzB,QAAQ;IALf,mCAAmC;IACnC,YAAY,MAAM,AADd,CAA4B,EAApB,UACM,EAKjB;IAED,kGAAkG;IAClG,IAAI,MAAM,2BAET;IAED,IAAI,MAAM,CAAC,KAAK,wBAAA,EAGf;IAED;;;OAGG;IACH,MAAM,CAAC,KAAK,EAFD,OAAO,gBAAgB,EAAE,KAExB,cAGX;IAED;;;OAGG;IACH,OAAO,CAAC,KAAK,EAFF,OAAO,gBAAgB,EAAE,KAEvB,WAGZ;CACF"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Cartesian3, FixedFrameTransforms, Matrix4 } from '@cesium/core';
|
|
2
|
+
/**
|
|
3
|
+
* The local frame's coordinates from the eye's, for a shader that wants a pixel's place in a small frame (east-north-up about a point) to
|
|
4
|
+
* lay a pattern over the ground that stays where it is as the camera moves. Made in double precision on the CPU: the globe's offset
|
|
5
|
+
* (about 6.4 million meters) cancels in the product, so the matrix a shader gets is small and a place comes out to the millimeter. In world
|
|
6
|
+
* coordinates, a single precision float steps by half a meter.
|
|
7
|
+
* @param {Matrix4} frame The local frame in the world, such as `FixedFrameTransforms.eastNorthUpToFixedFrame(origin)`.
|
|
8
|
+
* @param {Matrix4} viewMatrix The camera's view matrix.
|
|
9
|
+
* @param {Matrix4} [result]
|
|
10
|
+
* @return {Matrix4}
|
|
11
|
+
*/
|
|
12
|
+
export function localFromEye(frame, viewMatrix, result = new Matrix4()) {
|
|
13
|
+
return Matrix4.inverseTransformation(Matrix4.multiply(viewMatrix, frame, result), result);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* A local frame, east-north-up about an origin, for an effect that lays a pattern over the ground: the origin given, or the camera's
|
|
17
|
+
* position when the frame is first anchored.
|
|
18
|
+
*/
|
|
19
|
+
export class LocalFrame {
|
|
20
|
+
/** @param {Cartesian3} [origin] */
|
|
21
|
+
constructor(origin) {
|
|
22
|
+
this.origin_ = origin && Cartesian3.clone(origin);
|
|
23
|
+
/** @type {Matrix4 | undefined} */
|
|
24
|
+
this.frame_ = undefined;
|
|
25
|
+
this.scratch_ = new Matrix4();
|
|
26
|
+
}
|
|
27
|
+
/** The point of the world the frame is laid about; undefined until anchored if none was given. */
|
|
28
|
+
get origin() {
|
|
29
|
+
return this.origin_;
|
|
30
|
+
}
|
|
31
|
+
set origin(value) {
|
|
32
|
+
this.origin_ = value && Cartesian3.clone(value);
|
|
33
|
+
this.frame_ = undefined;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* The origin, the camera's position if there is none yet.
|
|
37
|
+
* @param {import('@cesium/engine').Scene} scene
|
|
38
|
+
*/
|
|
39
|
+
anchor(scene) {
|
|
40
|
+
this.origin_ ??= Cartesian3.clone(scene.camera.positionWC);
|
|
41
|
+
return this.origin_;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The local frame's coordinates from the camera's eye's (localFromEye), anchored first.
|
|
45
|
+
* @param {import('@cesium/engine').Scene} scene
|
|
46
|
+
*/
|
|
47
|
+
fromEye(scene) {
|
|
48
|
+
this.frame_ ??= FixedFrameTransforms.eastNorthUpToFixedFrame(this.anchor(scene), scene.ellipsoid, new Matrix4());
|
|
49
|
+
return localFromEye(this.frame_, scene.camera.viewMatrix, this.scratch_);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=local-frame.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-frame.js","sourceRoot":"","sources":["../src/local-frame.js"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,oBAAoB,EAAE,OAAO,EAAC,MAAM,cAAc,CAAC;AAEvE;;;;;;;;;GASG;AACH,MAAM,UAAU,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,OAAO,EAAE;IACpE,OAAO,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;AAC5F,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,UAAU;IACrB,mCAAmC;IACnC,YAAY,MAAM;QAChB,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClD,kCAAkC;QAClC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;IAChC,CAAC;IAED,kGAAkG;IAClG,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,MAAM,CAAC,KAAK;QACd,IAAI,CAAC,OAAO,GAAG,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,KAAK;QACV,IAAI,CAAC,OAAO,KAAK,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,KAAK;QACX,IAAI,CAAC,MAAM,KAAK,oBAAoB,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,OAAO,EAAE,CAAC,CAAC;QACjH,OAAO,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3E,CAAC;CACF"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Matrix4 } from '@cesium/core';
|
|
2
|
+
import { PostProcessStageComposite } from '@cesium/engine';
|
|
3
|
+
import Effect from './effect.js';
|
|
4
|
+
/**
|
|
5
|
+
* Camera motion blur: each pixel is blurred along its motion on the screen
|
|
6
|
+
* since the previous frame, over the exposure time.
|
|
7
|
+
*/
|
|
8
|
+
export default class MotionBlur extends Effect {
|
|
9
|
+
strength_: number;
|
|
10
|
+
exposure_: number;
|
|
11
|
+
previousViewProjection_: Matrix4;
|
|
12
|
+
reprojection_: Matrix4;
|
|
13
|
+
previousTime_: number;
|
|
14
|
+
onPostRender_: () => void;
|
|
15
|
+
/**
|
|
16
|
+
* @param {import('@cesium/engine').CesiumWidget} viewer
|
|
17
|
+
* @param {{strength?: number, exposure?: number}} [options]
|
|
18
|
+
*/
|
|
19
|
+
constructor(viewer: import('@cesium/engine').CesiumWidget, options?: {
|
|
20
|
+
strength?: number;
|
|
21
|
+
exposure?: number;
|
|
22
|
+
});
|
|
23
|
+
/**
|
|
24
|
+
* @override
|
|
25
|
+
* @param {import('@cesium/engine').Scene} scene
|
|
26
|
+
*/
|
|
27
|
+
createStage_(scene: import('@cesium/engine').Scene): PostProcessStageComposite;
|
|
28
|
+
/**
|
|
29
|
+
* @override
|
|
30
|
+
* @param {import('@cesium/engine').Scene} scene
|
|
31
|
+
*/
|
|
32
|
+
activated_(scene: import('@cesium/engine').Scene): void;
|
|
33
|
+
/**
|
|
34
|
+
* @override
|
|
35
|
+
* @param {import('@cesium/engine').Scene} scene
|
|
36
|
+
*/
|
|
37
|
+
deactivating_(scene: import('@cesium/engine').Scene): void;
|
|
38
|
+
/**
|
|
39
|
+
* Strength of the blur, 0 to 1: a fraction of the exposure.
|
|
40
|
+
*/
|
|
41
|
+
get strength(): number;
|
|
42
|
+
set strength(value: number);
|
|
43
|
+
/**
|
|
44
|
+
* Exposure time, in seconds: 1/48 is the 180 degree shutter of film at 24
|
|
45
|
+
* frames per second, longer blurs more.
|
|
46
|
+
*/
|
|
47
|
+
get exposure(): number;
|
|
48
|
+
set exposure(value: number);
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=motion-blur.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"motion-blur.d.ts","sourceRoot":"","sources":["../src/motion-blur.js"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAoC,MAAM,cAAc,CAAC;AACxE,OAAO,EAAmB,yBAAyB,EAAC,MAAM,gBAAgB,CAAC;AAE3E,OAAO,MAAM,MAAM,aAAa,CAAC;AAMjC;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,MAAM;IAOrC,SAAS;IACT,SAAS;IACT,uBAAuB;IACvB,aAAa;IACb,aAAa;IACb,aAAa;IAXpB;;;OAGG;IACH,YAAY,MAAM,EAHP,OAAO,gBAAgB,EAAE,YAGlB,EAAE,OAAO,AAFxB,CAAyD,EAAjD;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAEhB,EAY/B;IAED;;;OAGG;IACH,YAAY,CAAC,KAAK,EAFP,OAAO,gBAAgB,EAAE,KAElB,6BAgCjB;IAED;;;OAGG;IACH,UAAU,CAAC,KAAK,EAFL,OAAO,gBAAgB,EAAE,KAEpB,QAIf;IAED;;;OAGG;IACH,aAAa,CAAC,KAAK,EAFR,OAAO,gBAAgB,EAAE,KAEjB,QAGlB;IAED;;OAEG;IACH,IAAI,QAAQ,WAEX;IAED,IAAI,QAAQ,CAAC,KAAK,QAAA,EAMjB;IAED;;;OAGG;IACH,IAAI,QAAQ,WAEX;IAED,IAAI,QAAQ,CAAC,KAAK,QAAA,EAGjB;CACF"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { Matrix4, PixelDatatype, Math as CesiumMath } from '@cesium/core';
|
|
2
|
+
import { PostProcessStage, PostProcessStageComposite } from '@cesium/engine';
|
|
3
|
+
import { acquireTerrainDepth, releaseTerrainDepth } from './depth-test.js';
|
|
4
|
+
import Effect from './effect.js';
|
|
5
|
+
import EyeFromDepth from './shaders/EyeFromDepth.js';
|
|
6
|
+
import Hash from './shaders/Hash.js';
|
|
7
|
+
import MotionBlurShader from './shaders/MotionBlur.js';
|
|
8
|
+
import MotionBlurVelocity from './shaders/MotionBlurVelocity.js';
|
|
9
|
+
/**
|
|
10
|
+
* Camera motion blur: each pixel is blurred along its motion on the screen
|
|
11
|
+
* since the previous frame, over the exposure time.
|
|
12
|
+
*/
|
|
13
|
+
export default class MotionBlur extends Effect {
|
|
14
|
+
/**
|
|
15
|
+
* @param {import('@cesium/engine').CesiumWidget} viewer
|
|
16
|
+
* @param {{strength?: number, exposure?: number}} [options]
|
|
17
|
+
*/
|
|
18
|
+
constructor(viewer, options = {}) {
|
|
19
|
+
super(viewer);
|
|
20
|
+
this.strength_ = options.strength ?? 1;
|
|
21
|
+
this.exposure_ = options.exposure ?? 1 / 24;
|
|
22
|
+
this.previousViewProjection_ = new Matrix4();
|
|
23
|
+
this.reprojection_ = new Matrix4();
|
|
24
|
+
this.previousTime_ = 0;
|
|
25
|
+
this.onPostRender_ = () => {
|
|
26
|
+
const camera = this.viewer.scene.camera;
|
|
27
|
+
Matrix4.multiply(camera.frustum.projectionMatrix, camera.viewMatrix, this.previousViewProjection_);
|
|
28
|
+
this.previousTime_ = performance.now();
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* @override
|
|
33
|
+
* @param {import('@cesium/engine').Scene} scene
|
|
34
|
+
*/
|
|
35
|
+
createStage_(scene) {
|
|
36
|
+
// the velocity of each pixel is computed once, at half resolution, rather than once per
|
|
37
|
+
// sample of the gather; the distances need the range of floats
|
|
38
|
+
const velocity = new PostProcessStage({
|
|
39
|
+
name: 'czm_motion_blur_velocity',
|
|
40
|
+
fragmentShader: EyeFromDepth + MotionBlurVelocity,
|
|
41
|
+
uniforms: {
|
|
42
|
+
reprojection: () => Matrix4.multiply(this.previousViewProjection_, scene.camera.inverseViewMatrix, this.reprojection_),
|
|
43
|
+
// the blur spans the motion during the exposure, whatever the frame rate; after a pause
|
|
44
|
+
// in requestRenderMode, the time since the previous frame is not the time of the motion
|
|
45
|
+
exposureScale: () => (this.strength_ * this.exposure_) /
|
|
46
|
+
CesiumMath.clamp((performance.now() - this.previousTime_) / 1000, 1 / 240, 1 / 10),
|
|
47
|
+
},
|
|
48
|
+
textureScale: 0.5,
|
|
49
|
+
pixelDatatype: PixelDatatype.FLOAT,
|
|
50
|
+
});
|
|
51
|
+
const stage = new PostProcessStageComposite({
|
|
52
|
+
stages: [
|
|
53
|
+
velocity,
|
|
54
|
+
new PostProcessStage({
|
|
55
|
+
fragmentShader: Hash + MotionBlurShader,
|
|
56
|
+
uniforms: { velocityTexture: velocity.name },
|
|
57
|
+
}),
|
|
58
|
+
],
|
|
59
|
+
// the gather reads the scene, not the velocities
|
|
60
|
+
inputPreviousStageTexture: false,
|
|
61
|
+
});
|
|
62
|
+
// no pass at all without strength
|
|
63
|
+
stage.enabled = this.strength_ > 0;
|
|
64
|
+
return stage;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* @override
|
|
68
|
+
* @param {import('@cesium/engine').Scene} scene
|
|
69
|
+
*/
|
|
70
|
+
activated_(scene) {
|
|
71
|
+
acquireTerrainDepth(scene);
|
|
72
|
+
this.onPostRender_();
|
|
73
|
+
scene.postRender.addEventListener(this.onPostRender_);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* @override
|
|
77
|
+
* @param {import('@cesium/engine').Scene} scene
|
|
78
|
+
*/
|
|
79
|
+
deactivating_(scene) {
|
|
80
|
+
scene.postRender.removeEventListener(this.onPostRender_);
|
|
81
|
+
releaseTerrainDepth(scene);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Strength of the blur, 0 to 1: a fraction of the exposure.
|
|
85
|
+
*/
|
|
86
|
+
get strength() {
|
|
87
|
+
return this.strength_;
|
|
88
|
+
}
|
|
89
|
+
set strength(value) {
|
|
90
|
+
this.strength_ = value;
|
|
91
|
+
if (this.stage_) {
|
|
92
|
+
this.stage_.enabled = value > 0;
|
|
93
|
+
}
|
|
94
|
+
this.viewer.scene.requestRender();
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Exposure time, in seconds: 1/48 is the 180 degree shutter of film at 24
|
|
98
|
+
* frames per second, longer blurs more.
|
|
99
|
+
*/
|
|
100
|
+
get exposure() {
|
|
101
|
+
return this.exposure_;
|
|
102
|
+
}
|
|
103
|
+
set exposure(value) {
|
|
104
|
+
this.exposure_ = value;
|
|
105
|
+
this.viewer.scene.requestRender();
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=motion-blur.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"motion-blur.js","sourceRoot":"","sources":["../src/motion-blur.js"],"names":[],"mappings":"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"}
|