@geoblocks/cesium-post-process 0.4.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/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/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/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/{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/{local-frame.js → src/local-frame.js} +0 -0
- /package/{motion-blur.js → src/motion-blur.js} +0 -0
- /package/{precipitation.js → src/precipitation.js} +0 -0
- /package/{rain-rings.js → src/rain-rings.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}/SnowLine.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/{snow-line.js → src/snow-line.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,146 @@
|
|
|
1
|
+
import { Cartesian4 } from '@cesium/core';
|
|
2
|
+
import { PostProcessStageComposite } from '@cesium/engine';
|
|
3
|
+
import Effect from './effect.js';
|
|
4
|
+
import WeatherMap from './weather-map.js';
|
|
5
|
+
export type PrecipitationMapOptions = import('./weather-map.js').WeatherMapOptions;
|
|
6
|
+
/**
|
|
7
|
+
* Precipitation, from rain to snow: streaks of falling drops, or soft
|
|
8
|
+
* fluttering flakes, in layers at different distances over the whole scene,
|
|
9
|
+
* hidden behind what is nearer, a haze veiling the distance and shafts of
|
|
10
|
+
* heavier precipitation below the cloud base, in a gusting wind. Between rain
|
|
11
|
+
* and snow, the same drops slow down, shorten and soften, as in sleet. While
|
|
12
|
+
* active, the sky is overcast: no shadows, and a dimmer sunlight. The
|
|
13
|
+
* precipitation falls, so while active with an intensity the scene renders at
|
|
14
|
+
* 30 frames per second, also in requestRenderMode. With a map, it falls where
|
|
15
|
+
* the map says, in cells seen from outside through their shafts and haze,
|
|
16
|
+
* and the sky is overcast in proportion to the map at the camera, but not
|
|
17
|
+
* above the cloud base.
|
|
18
|
+
*/
|
|
19
|
+
export default class Precipitation extends Effect {
|
|
20
|
+
intensity_: number;
|
|
21
|
+
wind_: number;
|
|
22
|
+
speed_: number;
|
|
23
|
+
cloudBase_: number;
|
|
24
|
+
snow_: number;
|
|
25
|
+
weatherMap_: WeatherMap;
|
|
26
|
+
localIntensity_: number;
|
|
27
|
+
offset_: number;
|
|
28
|
+
lastTime_: number;
|
|
29
|
+
layerShape_: Cartesian4[];
|
|
30
|
+
layerLook_: Cartesian4[];
|
|
31
|
+
onPreRender_: () => void;
|
|
32
|
+
/** @type {any} */
|
|
33
|
+
skyTable_: any;
|
|
34
|
+
/** @type {any} */
|
|
35
|
+
skyTableFramebuffer_: any;
|
|
36
|
+
/** @type {any} */
|
|
37
|
+
skyTableCommand_: any;
|
|
38
|
+
/**
|
|
39
|
+
* @param {import('@cesium/engine').CesiumWidget} viewer
|
|
40
|
+
* @param {{intensity?: number, wind?: number, speed?: number, cloudBase?: number, snow?: number, map?: PrecipitationMapOptions}} [options]
|
|
41
|
+
*/
|
|
42
|
+
constructor(viewer: import('@cesium/engine').CesiumWidget, options?: {
|
|
43
|
+
intensity?: number;
|
|
44
|
+
wind?: number;
|
|
45
|
+
speed?: number;
|
|
46
|
+
cloudBase?: number;
|
|
47
|
+
snow?: number;
|
|
48
|
+
map?: PrecipitationMapOptions;
|
|
49
|
+
});
|
|
50
|
+
/**
|
|
51
|
+
* Draws the sky table into its own texture before the stages run.
|
|
52
|
+
* @param {import('@cesium/engine').Scene} scene
|
|
53
|
+
*/
|
|
54
|
+
drawSkyTable_(scene: import('@cesium/engine').Scene): void;
|
|
55
|
+
destroySkyTable_(): void;
|
|
56
|
+
/**
|
|
57
|
+
* Speed of the drops or flakes, in m/s.
|
|
58
|
+
*/
|
|
59
|
+
fallSpeed_(): number;
|
|
60
|
+
/**
|
|
61
|
+
* The layers' uniforms from the snow and the cells along the fall.
|
|
62
|
+
*/
|
|
63
|
+
updateLayers_(): void;
|
|
64
|
+
/**
|
|
65
|
+
* The length of a drop's trail, in cells: its motion over the exposure.
|
|
66
|
+
*/
|
|
67
|
+
trail_(): number;
|
|
68
|
+
/**
|
|
69
|
+
* The cells of the grid along the fall per radian, at the nearest layer's distance.
|
|
70
|
+
*/
|
|
71
|
+
cellsAlong_(): number;
|
|
72
|
+
/**
|
|
73
|
+
* @override
|
|
74
|
+
* @param {import('@cesium/engine').Scene} scene
|
|
75
|
+
*/
|
|
76
|
+
createStage_(scene: import('@cesium/engine').Scene): PostProcessStageComposite;
|
|
77
|
+
/**
|
|
78
|
+
* @override
|
|
79
|
+
* @param {import('@cesium/engine').Scene} scene
|
|
80
|
+
*/
|
|
81
|
+
activated_(scene: import('@cesium/engine').Scene): void;
|
|
82
|
+
/**
|
|
83
|
+
* @override
|
|
84
|
+
* @param {import('@cesium/engine').Scene} scene
|
|
85
|
+
*/
|
|
86
|
+
deactivating_(scene: import('@cesium/engine').Scene): void;
|
|
87
|
+
/**
|
|
88
|
+
* Where it rains, or undefined for everywhere: an image whose red channel
|
|
89
|
+
* is the local intensity, 0 to 1, over a rectangle of longitudes and
|
|
90
|
+
* latitudes, north up. The precipitation fades in over a pixel of the
|
|
91
|
+
* image. Set it again after drawing on the image, which is read then.
|
|
92
|
+
*/
|
|
93
|
+
get map(): import("./weather-map.js").WeatherMapOptions | undefined;
|
|
94
|
+
/**
|
|
95
|
+
* The map's intensity at the camera, 0 to 1, read each frame while active;
|
|
96
|
+
* 1 without a map.
|
|
97
|
+
*/
|
|
98
|
+
get localIntensity(): number;
|
|
99
|
+
set map(value: import("./weather-map.js").WeatherMapOptions | undefined);
|
|
100
|
+
/**
|
|
101
|
+
* The map the precipitation crossfades to by the map blend, over the same
|
|
102
|
+
* rectangle, as the radar's next hour, or undefined for none.
|
|
103
|
+
*/
|
|
104
|
+
get nextMap(): import("./weather-map.js").WeatherMapOptions | undefined;
|
|
105
|
+
set nextMap(value: import("./weather-map.js").WeatherMapOptions | undefined);
|
|
106
|
+
/**
|
|
107
|
+
* From the map, 0, to the next map, 1.
|
|
108
|
+
*/
|
|
109
|
+
get mapBlend(): number;
|
|
110
|
+
set mapBlend(value: number);
|
|
111
|
+
/**
|
|
112
|
+
* How hard it rains or snows, 0 to 1: the share of the drops or flakes
|
|
113
|
+
* shown, their opacity, and the haze, from 39 km of visibility to 4.4 km in
|
|
114
|
+
* the rain, taken as 0 to 10 mm/h under a square root, from 20 km to 500 m in
|
|
115
|
+
* the snow.
|
|
116
|
+
*/
|
|
117
|
+
get intensity(): number;
|
|
118
|
+
set intensity(value: number);
|
|
119
|
+
/**
|
|
120
|
+
* Tilt of the fall from the vertical, toward the east, in degrees.
|
|
121
|
+
*/
|
|
122
|
+
get wind(): number;
|
|
123
|
+
set wind(value: number);
|
|
124
|
+
/**
|
|
125
|
+
* Speed of the precipitation, 1 at its terminal velocity, 9 m/s for the
|
|
126
|
+
* drops and 1 m/s for the flakes: faster drops draw longer streaks.
|
|
127
|
+
*/
|
|
128
|
+
get speed(): number;
|
|
129
|
+
set speed(value: number);
|
|
130
|
+
/**
|
|
131
|
+
* Altitude of the cloud base, in meters above the ellipsoid: the
|
|
132
|
+
* precipitation falls below it, in shafts, and none falls around a camera
|
|
133
|
+
* above it.
|
|
134
|
+
*/
|
|
135
|
+
get cloudBase(): number;
|
|
136
|
+
set cloudBase(value: number);
|
|
137
|
+
/**
|
|
138
|
+
* How much the rain has turned to snow, 0 to 1: the drops slow down from
|
|
139
|
+
* 9 m/s to 1 m/s, shorten and soften into flakes, with the haze, its light
|
|
140
|
+
* and the shafts going from the rain's to the snow's. In between, they are
|
|
141
|
+
* the short, soft streaks of sleet.
|
|
142
|
+
*/
|
|
143
|
+
get snow(): number;
|
|
144
|
+
set snow(value: number);
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=precipitation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"precipitation.d.ts","sourceRoot":"","sources":["../src/precipitation.js"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAqB,MAAM,cAAc,CAAC;AACxE,OAAO,EAAmB,yBAAyB,EAAC,MAAM,gBAAgB,CAAC;AAK3E,OAAO,MAAM,MAAM,aAAa,CAAC;AAiBjC,OAAO,UAAU,MAAM,kBAAkB,CAAC;AA0DvC,YAAwD,uBAAuB,GAArE,OAAO,kBAAkB,EAAE,iBAAiB,CAAyB;AAiDlF;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,MAAM;IAOxC,UAAU;IACV,KAAK;IACL,MAAM;IACN,UAAU;IACV,KAAK;IAEL,WAAW;IAGX,eAAe;IAGf,OAAO;IACP,SAAS;IAET,WAAW;IACX,UAAU;IACV,YAAY;IAcjB,kBAAkB;IACb,SAAS,EADH,GAAG;IAEd,kBAAkB;IACb,oBAAoB,EADd,GAAG;IAEd,kBAAkB;IACb,gBAAgB,EADV,GAAG;IAzChB;;;OAGG;IACH,YAAY,MAAM,EAHP,OAAO,gBAAgB,EAAE,YAGlB,EAAE,OAAO,AAFxB,CAAwI,EAAhI;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,uBAAuB,CAAA;KAE/F,EAuC/B;IAED;;;OAGG;IACH,aAAa,CAAC,KAAK,EAFR,OAAO,gBAAgB,EAAE,KAEjB,QAmBlB;IAED,gBAAgB,SAKf;IAED;;OAEG;IACH,UAAU,WAET;IAED;;OAEG;IACH,aAAa,SAqBZ;IAED;;OAEG;IACH,MAAM,WAGL;IAED;;OAEG;IACH,WAAW,WAEV;IAED;;;OAGG;IACH,YAAY,CAAC,KAAK,EAFP,OAAO,gBAAgB,EAAE,KAElB,6BAkEjB;IAED;;;OAGG;IACH,UAAU,CAAC,KAAK,EAFL,OAAO,gBAAgB,EAAE,KAEpB,QASf;IAED;;;OAGG;IACH,aAAa,CAAC,KAAK,EAFR,OAAO,gBAAgB,EAAE,KAEjB,QASlB;IAED;;;;;OAKG;IACH,IAAI,GAAG,6DAEN;IAED;;;OAGG;IACH,IAAI,cAAc,WAEjB;IAED,IAAI,GAAG,CAAC,KAAK,0DAAA,EAGZ;IAED;;;OAGG;IACH,IAAI,OAAO,6DAEV;IAED,IAAI,OAAO,CAAC,KAAK,0DAAA,EAGhB;IAED;;OAEG;IACH,IAAI,QAAQ,WAEX;IAED,IAAI,QAAQ,CAAC,KAAK,QAAA,EAGjB;IAED;;;;;OAKG;IACH,IAAI,SAAS,WAEZ;IAED,IAAI,SAAS,CAAC,KAAK,QAAA,EAQlB;IAED;;OAEG;IACH,IAAI,IAAI,WAEP;IAED,IAAI,IAAI,CAAC,KAAK,QAAA,EAGb;IAED;;;OAGG;IACH,IAAI,KAAK,WAER;IAED,IAAI,KAAK,CAAC,KAAK,QAAA,EAGd;IAED;;;;OAIG;IACH,IAAI,SAAS,WAEZ;IAED,IAAI,SAAS,CAAC,KAAK,QAAA,EAGlB;IAED;;;;;OAKG;IACH,IAAI,IAAI,WAEP;IAED,IAAI,IAAI,CAAC,KAAK,QAAA,EAGb;CACF"}
|
|
@@ -0,0 +1,454 @@
|
|
|
1
|
+
import { Cartesian3, Cartesian4, Math as CesiumMath } from '@cesium/core';
|
|
2
|
+
import { PostProcessStage, PostProcessStageComposite } from '@cesium/engine';
|
|
3
|
+
// @ts-expect-error the engine exports its textures, framebuffers and render states, but does not type them
|
|
4
|
+
import { Framebuffer, RenderState, Texture } from '@cesium/engine';
|
|
5
|
+
import { cloudShadow, hasCloudCover } from './cloud-cover.js';
|
|
6
|
+
import { acquireTerrainDepth, releaseTerrainDepth } from './depth-test.js';
|
|
7
|
+
import Effect from './effect.js';
|
|
8
|
+
import { acquireFrames, releaseFrames } from './frame-clock.js';
|
|
9
|
+
import { heightUniforms } from './height.js';
|
|
10
|
+
import CloudsShadow from './shaders/CloudsShadow.js';
|
|
11
|
+
import EyeFromDepth from './shaders/EyeFromDepth.js';
|
|
12
|
+
import Fog from './shaders/Fog.js';
|
|
13
|
+
import Hash from './shaders/Hash.js';
|
|
14
|
+
import Height from './shaders/Height.js';
|
|
15
|
+
import Noise from './shaders/Noise.js';
|
|
16
|
+
import Phase from './shaders/Phase.js';
|
|
17
|
+
import PrecipitationShader from './shaders/Precipitation.js';
|
|
18
|
+
import PrecipitationShaftBlur from './shaders/PrecipitationShaftBlur.js';
|
|
19
|
+
import PrecipitationShafts from './shaders/PrecipitationShafts.js';
|
|
20
|
+
import PrecipitationWind from './shaders/PrecipitationWind.js';
|
|
21
|
+
import RainHaze from './shaders/RainHaze.js';
|
|
22
|
+
import SkyTable from './shaders/SkyTable.js';
|
|
23
|
+
import WeatherMapShader from './shaders/WeatherMap.js';
|
|
24
|
+
import WeatherMap from './weather-map.js';
|
|
25
|
+
// the streaks are the drops' motion over a frame's exposure
|
|
26
|
+
const FRAME_RATE = 30;
|
|
27
|
+
// the shader's time wraps at an hour, a whole number of the periods of its gusts and its flutter
|
|
28
|
+
const TIME_PERIOD = 3600;
|
|
29
|
+
// terminal velocity of the drops and of the flakes, in m/s, at speed 1; in between, geometrically,
|
|
30
|
+
// so that the slush at half is about 3 m/s
|
|
31
|
+
const RAIN_VELOCITY = 9;
|
|
32
|
+
const SNOW_VELOCITY = 1;
|
|
33
|
+
// the cells along the fall per radian at the nearest layer's distance: taller than wide in the rain,
|
|
34
|
+
// where the streaks are long, square in the snow, in between geometrically, and that distance, in
|
|
35
|
+
// meters (Precipitation.glsl's NEAREST): the grid scrolls by the speed over the distance, in
|
|
36
|
+
// radians per second, times the cells per radian
|
|
37
|
+
const RAIN_CELLS_ALONG = 4.44;
|
|
38
|
+
const SNOW_CELLS_ALONG = 20;
|
|
39
|
+
const NEAREST = 2;
|
|
40
|
+
// the exposure of the drops and of the flakes, in seconds, in between geometrically: a streak is the
|
|
41
|
+
// motion over it, a 1/30 s video frame for the drops; the flakes, at 1 m/s, would be half as long as
|
|
42
|
+
// wide at 1/30 s and look like streaks, not like flakes: a shorter exposure keeps them round
|
|
43
|
+
const RAIN_EXPOSURE = 1 / 30;
|
|
44
|
+
const SNOW_EXPOSURE = 1 / 90;
|
|
45
|
+
// the longest trail, in cells: Precipitation.glsl looks one cell above each pixel's for it
|
|
46
|
+
const MAX_TRAIL = 1;
|
|
47
|
+
const TWO_PI = CesiumMath.TWO_PI;
|
|
48
|
+
// the layers of drops, 2 to 16 m away, a drop every 0.05 rad around at the horizon in the nearest
|
|
49
|
+
// one, and the radius of its flakes in pixels, halved in each further layer (Precipitation.glsl's
|
|
50
|
+
// LAYERS, NEAREST, and the rest of its drops)
|
|
51
|
+
const LAYERS = 4;
|
|
52
|
+
const CELLS_AROUND = 20;
|
|
53
|
+
const FLAKE_RADIUS = 4;
|
|
54
|
+
// Precipitation.glsl's PERIOD, the cells after which the grid repeats
|
|
55
|
+
const PERIOD = 1000;
|
|
56
|
+
// longest time between two frames, in seconds, after a pause in requestRenderMode
|
|
57
|
+
const MAX_STEP = 0.1;
|
|
58
|
+
// the shafts are kilometers wide and soft: an eighth of the resolution, a 64th of the pixels, is
|
|
59
|
+
// enough for their raymarch and their blur (Precipitation.glsl's SHAFT_SCALE)
|
|
60
|
+
const SHAFT_SCALE = 0.125;
|
|
61
|
+
// the sky table's texels toward the horizon, besides the one overhead, RainHaze.glsl's SKY_TABLE
|
|
62
|
+
const SKY_TABLE = 64;
|
|
63
|
+
// the sunlight under the clouds, as a share of its intensity
|
|
64
|
+
const OVERCAST = 0.5;
|
|
65
|
+
// the camera goes from under the clouds to above them over this height around the cloud base, in
|
|
66
|
+
// meters, as the drops in Precipitation.glsl
|
|
67
|
+
const CLOUD_BASE_FADE = 50;
|
|
68
|
+
/**
|
|
69
|
+
* GLSL's smoothstep.
|
|
70
|
+
* @param {number} edge0
|
|
71
|
+
* @param {number} edge1
|
|
72
|
+
* @param {number} x
|
|
73
|
+
*/
|
|
74
|
+
function smoothstep(edge0, edge1, x) {
|
|
75
|
+
const t = CesiumMath.clamp((x - edge0) / (edge1 - edge0), 0, 1);
|
|
76
|
+
return t * t * (3 - 2 * t);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* @typedef {import('./weather-map.js').WeatherMapOptions} PrecipitationMapOptions
|
|
80
|
+
*/
|
|
81
|
+
// the scenes under clouds, with their light and shadows before: rain and snow may be active at
|
|
82
|
+
// once, the first one dims the light, the last one restores it
|
|
83
|
+
/** @type {WeakMap<import('@cesium/engine').Scene, {count: number, light: import('@cesium/engine').Light, intensity: number, shadows: boolean}>} */
|
|
84
|
+
const overcast = new WeakMap();
|
|
85
|
+
/**
|
|
86
|
+
* @param {import('@cesium/engine').Scene} scene
|
|
87
|
+
*/
|
|
88
|
+
function acquireOvercast(scene) {
|
|
89
|
+
const clouds = overcast.get(scene);
|
|
90
|
+
if (clouds) {
|
|
91
|
+
clouds.count++;
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
overcast.set(scene, { count: 1, light: scene.light, intensity: scene.light.intensity, shadows: scene.shadowMap.enabled });
|
|
95
|
+
scene.light.intensity *= OVERCAST;
|
|
96
|
+
scene.shadowMap.enabled = false;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* The sunlight and the shadows under the clouds, in proportion to how hard it rains at the camera.
|
|
100
|
+
* @param {import('@cesium/engine').Scene} scene
|
|
101
|
+
* @param {number} local
|
|
102
|
+
*/
|
|
103
|
+
function shadeOvercast(scene, local) {
|
|
104
|
+
const clouds = overcast.get(scene);
|
|
105
|
+
if (!clouds) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
clouds.light.intensity = clouds.intensity * (1 - (1 - OVERCAST) * local);
|
|
109
|
+
scene.shadowMap.enabled = clouds.shadows && local < 0.5;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* @param {import('@cesium/engine').Scene} scene
|
|
113
|
+
*/
|
|
114
|
+
function releaseOvercast(scene) {
|
|
115
|
+
const clouds = overcast.get(scene);
|
|
116
|
+
if (!clouds || --clouds.count > 0) {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
clouds.light.intensity = clouds.intensity;
|
|
120
|
+
scene.shadowMap.enabled = clouds.shadows;
|
|
121
|
+
overcast.delete(scene);
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Precipitation, from rain to snow: streaks of falling drops, or soft
|
|
125
|
+
* fluttering flakes, in layers at different distances over the whole scene,
|
|
126
|
+
* hidden behind what is nearer, a haze veiling the distance and shafts of
|
|
127
|
+
* heavier precipitation below the cloud base, in a gusting wind. Between rain
|
|
128
|
+
* and snow, the same drops slow down, shorten and soften, as in sleet. While
|
|
129
|
+
* active, the sky is overcast: no shadows, and a dimmer sunlight. The
|
|
130
|
+
* precipitation falls, so while active with an intensity the scene renders at
|
|
131
|
+
* 30 frames per second, also in requestRenderMode. With a map, it falls where
|
|
132
|
+
* the map says, in cells seen from outside through their shafts and haze,
|
|
133
|
+
* and the sky is overcast in proportion to the map at the camera, but not
|
|
134
|
+
* above the cloud base.
|
|
135
|
+
*/
|
|
136
|
+
export default class Precipitation extends Effect {
|
|
137
|
+
/**
|
|
138
|
+
* @param {import('@cesium/engine').CesiumWidget} viewer
|
|
139
|
+
* @param {{intensity?: number, wind?: number, speed?: number, cloudBase?: number, snow?: number, map?: PrecipitationMapOptions}} [options]
|
|
140
|
+
*/
|
|
141
|
+
constructor(viewer, options = {}) {
|
|
142
|
+
super(viewer);
|
|
143
|
+
this.intensity_ = options.intensity ?? 0.5;
|
|
144
|
+
this.wind_ = options.wind ?? 10;
|
|
145
|
+
this.speed_ = options.speed ?? 1;
|
|
146
|
+
this.cloudBase_ = options.cloudBase ?? 2500;
|
|
147
|
+
this.snow_ = options.snow ?? 0;
|
|
148
|
+
// without a map, it rains everywhere
|
|
149
|
+
this.weatherMap_ = new WeatherMap(1);
|
|
150
|
+
this.weatherMap_.map = options.map;
|
|
151
|
+
// the map's intensity at the camera, read each frame
|
|
152
|
+
this.localIntensity_ = 1;
|
|
153
|
+
// the scroll of the grid, added up from frame to frame: the speed changes with the snow, and
|
|
154
|
+
// time times the speed would move all the drops when it does
|
|
155
|
+
this.offset_ = 0;
|
|
156
|
+
this.lastTime_ = 0;
|
|
157
|
+
// what the layers share in the shader, computed here once rather than for each pixel
|
|
158
|
+
this.layerShape_ = Array.from({ length: LAYERS }, () => new Cartesian4());
|
|
159
|
+
this.layerLook_ = Array.from({ length: LAYERS }, () => new Cartesian4());
|
|
160
|
+
this.onPreRender_ = () => {
|
|
161
|
+
const now = performance.now() / 1000;
|
|
162
|
+
const dt = Math.min(now - this.lastTime_, MAX_STEP);
|
|
163
|
+
this.lastTime_ = now;
|
|
164
|
+
this.offset_ = (this.offset_ + (dt * this.fallSpeed_() * this.cellsAlong_()) / NEAREST) % PERIOD;
|
|
165
|
+
this.updateLayers_();
|
|
166
|
+
const { longitude, latitude, height } = this.viewer.scene.camera.positionCartographic;
|
|
167
|
+
this.localIntensity_ = this.weatherMap_.intensityAt(longitude, latitude);
|
|
168
|
+
// above the clouds, the sun shines
|
|
169
|
+
const below = 1 - smoothstep(this.cloudBase_ - CLOUD_BASE_FADE, this.cloudBase_ + CLOUD_BASE_FADE, height);
|
|
170
|
+
shadeOvercast(this.viewer.scene, this.localIntensity_ * below);
|
|
171
|
+
this.drawSkyTable_(this.viewer.scene);
|
|
172
|
+
};
|
|
173
|
+
// the clear sky the haze scatters, drawn at each frame (SkyTable.glsl)
|
|
174
|
+
/** @type {any} */
|
|
175
|
+
this.skyTable_ = undefined;
|
|
176
|
+
/** @type {any} */
|
|
177
|
+
this.skyTableFramebuffer_ = undefined;
|
|
178
|
+
/** @type {any} */
|
|
179
|
+
this.skyTableCommand_ = undefined;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Draws the sky table into its own texture before the stages run.
|
|
183
|
+
* @param {import('@cesium/engine').Scene} scene
|
|
184
|
+
*/
|
|
185
|
+
drawSkyTable_(scene) {
|
|
186
|
+
// @ts-expect-error the scene's context is not typed
|
|
187
|
+
const context = scene.context;
|
|
188
|
+
if (!context) {
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
if (!this.skyTable_) {
|
|
192
|
+
this.skyTable_ = new Texture({ context, width: SKY_TABLE + 1, height: 1 });
|
|
193
|
+
this.skyTableFramebuffer_ = new Framebuffer({ context, colorTextures: [this.skyTable_], destroyAttachments: false });
|
|
194
|
+
this.skyTableCommand_ = context.createViewportQuadCommand(Height + Fog + Phase + RainHaze + SkyTable, {
|
|
195
|
+
framebuffer: this.skyTableFramebuffer_,
|
|
196
|
+
renderState: RenderState.fromCache({ viewport: { x: 0, y: 0, width: SKY_TABLE + 1, height: 1 } }),
|
|
197
|
+
uniformMap: {
|
|
198
|
+
skyLightIntensity: () => scene.skyAtmosphere?.atmosphereLightIntensity ?? 50,
|
|
199
|
+
cloudBase: () => this.cloudBase_,
|
|
200
|
+
},
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
this.skyTableCommand_.execute(context);
|
|
204
|
+
}
|
|
205
|
+
destroySkyTable_() {
|
|
206
|
+
this.skyTableCommand_?.shaderProgram?.destroy();
|
|
207
|
+
this.skyTableCommand_ = undefined;
|
|
208
|
+
this.skyTableFramebuffer_ = this.skyTableFramebuffer_?.destroy();
|
|
209
|
+
this.skyTable_ = this.skyTable_?.destroy();
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Speed of the drops or flakes, in m/s.
|
|
213
|
+
*/
|
|
214
|
+
fallSpeed_() {
|
|
215
|
+
return this.speed_ * RAIN_VELOCITY * (SNOW_VELOCITY / RAIN_VELOCITY) ** this.snow_;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* The layers' uniforms from the snow and the cells along the fall.
|
|
219
|
+
*/
|
|
220
|
+
updateLayers_() {
|
|
221
|
+
const cellsAlong = this.cellsAlong_();
|
|
222
|
+
for (let i = 0; i < LAYERS; i++) {
|
|
223
|
+
const scale = 2 ** i;
|
|
224
|
+
// a whole number of cells around, so that they close up
|
|
225
|
+
const count = Math.floor(TWO_PI * CELLS_AROUND * scale + 0.5);
|
|
226
|
+
Cartesian4.fromElements(count / TWO_PI, cellsAlong * scale, count, NEAREST * scale, this.layerShape_[i]);
|
|
227
|
+
const rainRadius = Math.max(0.5, 1 - 0.25 * i);
|
|
228
|
+
const flakeRadius = Math.max(FLAKE_RADIUS / scale, 0.75);
|
|
229
|
+
const rainBrightness = 0.45 - 0.07 * i;
|
|
230
|
+
const snowBrightness = 0.8 - 0.12 * i;
|
|
231
|
+
// the largest flake and its soft edge, the nearest layer's wider, or the thin streak and its
|
|
232
|
+
const flakeReach = i === 0 ? 1.4 * flakeRadius * 1.8 : 1.4 * flakeRadius + 0.5;
|
|
233
|
+
Cartesian4.fromElements(rainBrightness + (snowBrightness - rainBrightness) * this.snow_, rainRadius + 0.5 + (flakeReach - rainRadius - 0.5) * this.snow_, rainRadius, flakeRadius, this.layerLook_[i]);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* The length of a drop's trail, in cells: its motion over the exposure.
|
|
238
|
+
*/
|
|
239
|
+
trail_() {
|
|
240
|
+
const exposure = RAIN_EXPOSURE * (SNOW_EXPOSURE / RAIN_EXPOSURE) ** this.snow_;
|
|
241
|
+
return Math.min((this.fallSpeed_() * exposure * this.cellsAlong_()) / NEAREST, MAX_TRAIL);
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* The cells of the grid along the fall per radian, at the nearest layer's distance.
|
|
245
|
+
*/
|
|
246
|
+
cellsAlong_() {
|
|
247
|
+
return RAIN_CELLS_ALONG * (SNOW_CELLS_ALONG / RAIN_CELLS_ALONG) ** this.snow_;
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* @override
|
|
251
|
+
* @param {import('@cesium/engine').Scene} scene
|
|
252
|
+
*/
|
|
253
|
+
createStage_(scene) {
|
|
254
|
+
// PrecipitationWind's uniforms, for both passes
|
|
255
|
+
const shared = {
|
|
256
|
+
...heightUniforms(scene),
|
|
257
|
+
// reduced in double precision: a float would lose the time's fraction of a second
|
|
258
|
+
time: () => (performance.now() / 1000) % TIME_PERIOD,
|
|
259
|
+
wind: () => this.wind_,
|
|
260
|
+
speed: () => this.speed_,
|
|
261
|
+
cloudBase: () => this.cloudBase_,
|
|
262
|
+
intensity: () => this.intensity_,
|
|
263
|
+
snow: () => this.snow_,
|
|
264
|
+
};
|
|
265
|
+
const shafts = new PostProcessStage({
|
|
266
|
+
fragmentShader: EyeFromDepth + Noise + Height + PrecipitationWind + WeatherMapShader + Fog + Phase + RainHaze + CloudsShadow + PrecipitationShafts,
|
|
267
|
+
uniforms: {
|
|
268
|
+
...shared,
|
|
269
|
+
// the shadow map of the clouds in the scene, whose gaps light the haze
|
|
270
|
+
shadowed: () => (cloudShadow(scene) ? 1 : 0),
|
|
271
|
+
// @ts-expect-error the scene's context is not typed
|
|
272
|
+
shadowMap: () => cloudShadow(scene)?.texture() ?? scene.context.defaultTexture,
|
|
273
|
+
shadowCenter: () => cloudShadow(scene)?.center ?? Cartesian3.ZERO,
|
|
274
|
+
shadowExtent: () => cloudShadow(scene)?.extent() ?? 1,
|
|
275
|
+
shadowBase: () => cloudShadow(scene)?.base() ?? 0,
|
|
276
|
+
shadowTop: () => cloudShadow(scene)?.top() ?? 0,
|
|
277
|
+
// @ts-expect-error the scene's context is not typed
|
|
278
|
+
map: () => this.weatherMap_.texture(scene.context),
|
|
279
|
+
// @ts-expect-error the scene's context is not typed
|
|
280
|
+
nextMap: () => this.weatherMap_.nextTexture(scene.context),
|
|
281
|
+
mapBlend: () => this.weatherMap_.blend,
|
|
282
|
+
mapBounds: () => this.weatherMap_.bounds,
|
|
283
|
+
},
|
|
284
|
+
textureScale: SHAFT_SCALE,
|
|
285
|
+
});
|
|
286
|
+
// blurred at the same resolution
|
|
287
|
+
const blurredShafts = new PostProcessStage({
|
|
288
|
+
fragmentShader: PrecipitationShaftBlur,
|
|
289
|
+
uniforms: { shaftTexture: shafts.name },
|
|
290
|
+
textureScale: SHAFT_SCALE,
|
|
291
|
+
});
|
|
292
|
+
const stage = new PostProcessStageComposite({
|
|
293
|
+
stages: [
|
|
294
|
+
shafts,
|
|
295
|
+
blurredShafts,
|
|
296
|
+
new PostProcessStage({
|
|
297
|
+
fragmentShader: EyeFromDepth + Hash + Height + PrecipitationWind + Fog + Phase + RainHaze + PrecipitationShader,
|
|
298
|
+
uniforms: {
|
|
299
|
+
...shared,
|
|
300
|
+
shaftTexture: blurredShafts.name,
|
|
301
|
+
localIntensity: () => this.localIntensity_,
|
|
302
|
+
clouds: () => (hasCloudCover(scene) ? 1 : 0),
|
|
303
|
+
shadowed: () => (cloudShadow(scene) ? 1 : 0),
|
|
304
|
+
// @ts-expect-error the scene's context is not typed
|
|
305
|
+
skyTable: () => this.skyTable_ ?? scene.context.defaultTexture,
|
|
306
|
+
trail: () => this.trail_(),
|
|
307
|
+
layerShape: () => this.layerShape_,
|
|
308
|
+
layerLook: () => this.layerLook_,
|
|
309
|
+
offset: () => this.offset_,
|
|
310
|
+
},
|
|
311
|
+
}),
|
|
312
|
+
],
|
|
313
|
+
// the precipitation is drawn over the scene, not over the shafts
|
|
314
|
+
inputPreviousStageTexture: false,
|
|
315
|
+
});
|
|
316
|
+
// no pass, and no frames, without an intensity
|
|
317
|
+
stage.enabled = this.intensity_ > 0;
|
|
318
|
+
return stage;
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* @override
|
|
322
|
+
* @param {import('@cesium/engine').Scene} scene
|
|
323
|
+
*/
|
|
324
|
+
activated_(scene) {
|
|
325
|
+
this.lastTime_ = performance.now() / 1000;
|
|
326
|
+
this.updateLayers_();
|
|
327
|
+
scene.preRender.addEventListener(this.onPreRender_);
|
|
328
|
+
acquireTerrainDepth(scene);
|
|
329
|
+
acquireOvercast(scene);
|
|
330
|
+
if (this.intensity_ > 0) {
|
|
331
|
+
acquireFrames(scene, FRAME_RATE);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* @override
|
|
336
|
+
* @param {import('@cesium/engine').Scene} scene
|
|
337
|
+
*/
|
|
338
|
+
deactivating_(scene) {
|
|
339
|
+
if (this.intensity_ > 0) {
|
|
340
|
+
releaseFrames(scene, FRAME_RATE);
|
|
341
|
+
}
|
|
342
|
+
releaseOvercast(scene);
|
|
343
|
+
releaseTerrainDepth(scene);
|
|
344
|
+
scene.preRender.removeEventListener(this.onPreRender_);
|
|
345
|
+
this.destroySkyTable_();
|
|
346
|
+
this.weatherMap_.destroy();
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* Where it rains, or undefined for everywhere: an image whose red channel
|
|
350
|
+
* is the local intensity, 0 to 1, over a rectangle of longitudes and
|
|
351
|
+
* latitudes, north up. The precipitation fades in over a pixel of the
|
|
352
|
+
* image. Set it again after drawing on the image, which is read then.
|
|
353
|
+
*/
|
|
354
|
+
get map() {
|
|
355
|
+
return this.weatherMap_.map;
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* The map's intensity at the camera, 0 to 1, read each frame while active;
|
|
359
|
+
* 1 without a map.
|
|
360
|
+
*/
|
|
361
|
+
get localIntensity() {
|
|
362
|
+
return this.localIntensity_;
|
|
363
|
+
}
|
|
364
|
+
set map(value) {
|
|
365
|
+
this.weatherMap_.map = value;
|
|
366
|
+
this.viewer.scene.requestRender();
|
|
367
|
+
}
|
|
368
|
+
/**
|
|
369
|
+
* The map the precipitation crossfades to by the map blend, over the same
|
|
370
|
+
* rectangle, as the radar's next hour, or undefined for none.
|
|
371
|
+
*/
|
|
372
|
+
get nextMap() {
|
|
373
|
+
return this.weatherMap_.nextMap;
|
|
374
|
+
}
|
|
375
|
+
set nextMap(value) {
|
|
376
|
+
this.weatherMap_.nextMap = value;
|
|
377
|
+
this.viewer.scene.requestRender();
|
|
378
|
+
}
|
|
379
|
+
/**
|
|
380
|
+
* From the map, 0, to the next map, 1.
|
|
381
|
+
*/
|
|
382
|
+
get mapBlend() {
|
|
383
|
+
return this.weatherMap_.blend;
|
|
384
|
+
}
|
|
385
|
+
set mapBlend(value) {
|
|
386
|
+
this.weatherMap_.blend = value;
|
|
387
|
+
this.viewer.scene.requestRender();
|
|
388
|
+
}
|
|
389
|
+
/**
|
|
390
|
+
* How hard it rains or snows, 0 to 1: the share of the drops or flakes
|
|
391
|
+
* shown, their opacity, and the haze, from 39 km of visibility to 4.4 km in
|
|
392
|
+
* the rain, taken as 0 to 10 mm/h under a square root, from 20 km to 500 m in
|
|
393
|
+
* the snow.
|
|
394
|
+
*/
|
|
395
|
+
get intensity() {
|
|
396
|
+
return this.intensity_;
|
|
397
|
+
}
|
|
398
|
+
set intensity(value) {
|
|
399
|
+
const raining = this.intensity_ > 0;
|
|
400
|
+
this.intensity_ = value;
|
|
401
|
+
if (this.stage_ && raining !== value > 0) {
|
|
402
|
+
this.stage_.enabled = value > 0;
|
|
403
|
+
(value > 0 ? acquireFrames : releaseFrames)(this.viewer.scene, FRAME_RATE);
|
|
404
|
+
}
|
|
405
|
+
this.viewer.scene.requestRender();
|
|
406
|
+
}
|
|
407
|
+
/**
|
|
408
|
+
* Tilt of the fall from the vertical, toward the east, in degrees.
|
|
409
|
+
*/
|
|
410
|
+
get wind() {
|
|
411
|
+
return this.wind_;
|
|
412
|
+
}
|
|
413
|
+
set wind(value) {
|
|
414
|
+
this.wind_ = value;
|
|
415
|
+
this.viewer.scene.requestRender();
|
|
416
|
+
}
|
|
417
|
+
/**
|
|
418
|
+
* Speed of the precipitation, 1 at its terminal velocity, 9 m/s for the
|
|
419
|
+
* drops and 1 m/s for the flakes: faster drops draw longer streaks.
|
|
420
|
+
*/
|
|
421
|
+
get speed() {
|
|
422
|
+
return this.speed_;
|
|
423
|
+
}
|
|
424
|
+
set speed(value) {
|
|
425
|
+
this.speed_ = value;
|
|
426
|
+
this.viewer.scene.requestRender();
|
|
427
|
+
}
|
|
428
|
+
/**
|
|
429
|
+
* Altitude of the cloud base, in meters above the ellipsoid: the
|
|
430
|
+
* precipitation falls below it, in shafts, and none falls around a camera
|
|
431
|
+
* above it.
|
|
432
|
+
*/
|
|
433
|
+
get cloudBase() {
|
|
434
|
+
return this.cloudBase_;
|
|
435
|
+
}
|
|
436
|
+
set cloudBase(value) {
|
|
437
|
+
this.cloudBase_ = value;
|
|
438
|
+
this.viewer.scene.requestRender();
|
|
439
|
+
}
|
|
440
|
+
/**
|
|
441
|
+
* How much the rain has turned to snow, 0 to 1: the drops slow down from
|
|
442
|
+
* 9 m/s to 1 m/s, shorten and soften into flakes, with the haze, its light
|
|
443
|
+
* and the shafts going from the rain's to the snow's. In between, they are
|
|
444
|
+
* the short, soft streaks of sleet.
|
|
445
|
+
*/
|
|
446
|
+
get snow() {
|
|
447
|
+
return this.snow_;
|
|
448
|
+
}
|
|
449
|
+
set snow(value) {
|
|
450
|
+
this.snow_ = value;
|
|
451
|
+
this.viewer.scene.requestRender();
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
//# sourceMappingURL=precipitation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"precipitation.js","sourceRoot":"","sources":["../src/precipitation.js"],"names":[],"mappings":"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"}
|