@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,266 @@
|
|
|
1
|
+
import { Cartesian4, Math as CesiumMath } from '@cesium/core';
|
|
2
|
+
// @ts-expect-error the engine exports its textures, but does not type them
|
|
3
|
+
import { Texture } from '@cesium/engine';
|
|
4
|
+
const TWO_PI = CesiumMath.TWO_PI;
|
|
5
|
+
// the max map's texels are blocks of this many pixels of the map across
|
|
6
|
+
const POOL = 4;
|
|
7
|
+
/**
|
|
8
|
+
* Where it rains: an image whose red channel is the local intensity, 0 to 1,
|
|
9
|
+
* over a rectangle of longitudes and latitudes, north up, not crossing the
|
|
10
|
+
* antimeridian. Outside the rectangle there is none, so the image should
|
|
11
|
+
* fade to 0 at its edges.
|
|
12
|
+
* @typedef {{image: HTMLCanvasElement | ImageData | {width: number, height: number, data: Uint8ClampedArray}, rectangle: import('@cesium/core').Rectangle}} WeatherMapOptions
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* The pixels of an image, read once.
|
|
16
|
+
* @param {WeatherMapOptions['image']} image
|
|
17
|
+
*/
|
|
18
|
+
export function imageData(image) {
|
|
19
|
+
return 'data' in image ? image : image.getContext('2d', { willReadFrequently: true })?.getImageData(0, 0, image.width, image.height);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* A texture's source from an image: a canvas or an ImageData as it is, other pixels as an array,
|
|
23
|
+
* which Cesium flips as it flips an image.
|
|
24
|
+
* @param {HTMLCanvasElement | ImageData | {width: number, height: number, data: Uint8ClampedArray}} image
|
|
25
|
+
*/
|
|
26
|
+
function textureSource(image) {
|
|
27
|
+
if (!('data' in image) || (typeof ImageData !== 'undefined' && image instanceof ImageData)) {
|
|
28
|
+
return image;
|
|
29
|
+
}
|
|
30
|
+
const { width, height, data } = image;
|
|
31
|
+
return { width, height, arrayBufferView: new Uint8Array(data.buffer, data.byteOffset, data.length) };
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* The highest value of each channel of an image, 0 to 1.
|
|
35
|
+
* @param {{data: Uint8ClampedArray} | undefined} data
|
|
36
|
+
*/
|
|
37
|
+
function highest(data) {
|
|
38
|
+
const max = [0, 0, 0, 0];
|
|
39
|
+
const values = data?.data ?? [];
|
|
40
|
+
for (let i = 0; i < values.length; i += 4) {
|
|
41
|
+
for (let channel = 0; channel < 4; channel++) {
|
|
42
|
+
max[channel] = Math.max(max[channel], values[i + channel]);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return max.map((value) => value / 255);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* The highest value of each channel of images of the same size around each block of POOL x POOL
|
|
49
|
+
* pixels: in the block and its 8 neighbors, as RGBA bytes. A ray sampled less than a block apart
|
|
50
|
+
* then finds every cell of rain it passes, however small.
|
|
51
|
+
* @param {Array<{width: number, height: number, data: Uint8ClampedArray} | undefined>} images
|
|
52
|
+
*/
|
|
53
|
+
function maxPool(images) {
|
|
54
|
+
const { width, height } = /** @type {{width: number, height: number}} */ (images[0]);
|
|
55
|
+
const w = Math.ceil(width / POOL);
|
|
56
|
+
const h = Math.ceil(height / POOL);
|
|
57
|
+
const pooled = new Uint8Array(w * h * 4);
|
|
58
|
+
for (const image of images) {
|
|
59
|
+
if (!image) {
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
for (let y = 0; y < height; y++) {
|
|
63
|
+
for (let x = 0; x < width; x++) {
|
|
64
|
+
const i = 4 * (Math.floor(y / POOL) * w + Math.floor(x / POOL));
|
|
65
|
+
for (let channel = 0; channel < 4; channel++) {
|
|
66
|
+
pooled[i + channel] = Math.max(pooled[i + channel], image.data[4 * (y * width + x) + channel]);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
const data = new Uint8Array(w * h * 4);
|
|
72
|
+
for (let y = 0; y < h; y++) {
|
|
73
|
+
for (let x = 0; x < w; x++) {
|
|
74
|
+
for (let channel = 0; channel < 4; channel++) {
|
|
75
|
+
let max = 0;
|
|
76
|
+
for (let dy = Math.max(y - 1, 0); dy <= Math.min(y + 1, h - 1); dy++) {
|
|
77
|
+
for (let dx = Math.max(x - 1, 0); dx <= Math.min(x + 1, w - 1); dx++) {
|
|
78
|
+
max = Math.max(max, pooled[4 * (dy * w + dx) + channel]);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
data[4 * (y * w + x) + channel] = max;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return { width: w, height: h, data };
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* A map of the rain for the shaders, WeatherMap.glsl's uniforms, and its
|
|
89
|
+
* intensity at a point on the CPU, bilinear as the shaders sample it. Without
|
|
90
|
+
* a map, the intensity everywhere is the empty value: 1 for rain everywhere,
|
|
91
|
+
* 0 for none. A next map, over the same rectangle and of the same size, crossfades from the map to
|
|
92
|
+
* it by the blend, as the radar from one hour to the next.
|
|
93
|
+
*/
|
|
94
|
+
export default class WeatherMap {
|
|
95
|
+
/**
|
|
96
|
+
* @param {number} empty the intensity everywhere without a map
|
|
97
|
+
*/
|
|
98
|
+
constructor(empty) {
|
|
99
|
+
this.empty_ = empty;
|
|
100
|
+
/** @type {WeatherMapOptions | undefined} */
|
|
101
|
+
this.map_ = undefined;
|
|
102
|
+
/** @type {{width: number, height: number, data: Uint8ClampedArray} | undefined} */
|
|
103
|
+
this.data_ = undefined;
|
|
104
|
+
/** @type {WeatherMapOptions | undefined} */
|
|
105
|
+
this.nextMap_ = undefined;
|
|
106
|
+
/** @type {{width: number, height: number, data: Uint8ClampedArray} | undefined} */
|
|
107
|
+
this.nextData_ = undefined;
|
|
108
|
+
/**
|
|
109
|
+
* From the map, 0, to the next one, 1.
|
|
110
|
+
*/
|
|
111
|
+
this.blend = 0;
|
|
112
|
+
/**
|
|
113
|
+
* The rectangle in the ellipsoid's texture coordinates: its west and
|
|
114
|
+
* south, and one over its width and height; the whole globe without a map.
|
|
115
|
+
*/
|
|
116
|
+
this.bounds = new Cartesian4(0, 0, 1, 1);
|
|
117
|
+
/**
|
|
118
|
+
* The highest intensity on the map, 0 to 1: the empty value without a map; and the highest
|
|
119
|
+
* value of each of its channels.
|
|
120
|
+
*/
|
|
121
|
+
this.maxIntensity = empty;
|
|
122
|
+
this.maxValues = [empty, empty, empty, empty];
|
|
123
|
+
// made when the shaders first need it: a stage given an image makes its texture a frame after
|
|
124
|
+
// it is set, and draws without one in between
|
|
125
|
+
/** @type {any} */
|
|
126
|
+
this.texture_ = undefined;
|
|
127
|
+
/** @type {any} */
|
|
128
|
+
this.nextTexture_ = undefined;
|
|
129
|
+
/** @type {{width: number, height: number, data: Uint8Array} | undefined} */
|
|
130
|
+
this.maxImage_ = undefined;
|
|
131
|
+
/** @type {any} */
|
|
132
|
+
this.maxTexture_ = undefined;
|
|
133
|
+
}
|
|
134
|
+
get map() {
|
|
135
|
+
return this.map_;
|
|
136
|
+
}
|
|
137
|
+
set map(value) {
|
|
138
|
+
this.map_ = value;
|
|
139
|
+
if (!value) {
|
|
140
|
+
this.data_ = undefined;
|
|
141
|
+
Cartesian4.fromElements(0, 0, 1, 1, this.bounds);
|
|
142
|
+
this.maxIntensity = this.empty_;
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
const { image, rectangle } = value;
|
|
146
|
+
this.data_ = imageData(image);
|
|
147
|
+
Cartesian4.fromElements(rectangle.west / TWO_PI + 0.5, rectangle.south / CesiumMath.PI + 0.5, TWO_PI / (rectangle.east - rectangle.west), CesiumMath.PI / (rectangle.north - rectangle.south), this.bounds);
|
|
148
|
+
}
|
|
149
|
+
this.updateMaxIntensity_();
|
|
150
|
+
// made again from the new image when the shaders next need it
|
|
151
|
+
this.texture_ = this.texture_?.destroy();
|
|
152
|
+
this.clearMaxImage_();
|
|
153
|
+
}
|
|
154
|
+
get nextMap() {
|
|
155
|
+
return this.nextMap_;
|
|
156
|
+
}
|
|
157
|
+
set nextMap(value) {
|
|
158
|
+
this.nextMap_ = value;
|
|
159
|
+
this.nextData_ = value && imageData(value.image);
|
|
160
|
+
this.updateMaxIntensity_();
|
|
161
|
+
this.nextTexture_ = this.nextTexture_?.destroy();
|
|
162
|
+
this.clearMaxImage_();
|
|
163
|
+
}
|
|
164
|
+
clearMaxImage_() {
|
|
165
|
+
this.maxImage_ = undefined;
|
|
166
|
+
this.maxTexture_ = this.maxTexture_?.destroy();
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* The highest intensity around each block of the map's pixels, over the map and the next one,
|
|
170
|
+
* made when first needed: undefined without a map.
|
|
171
|
+
*/
|
|
172
|
+
maxImage() {
|
|
173
|
+
if (this.map_ && !this.maxImage_) {
|
|
174
|
+
this.maxImage_ = maxPool([this.data_, this.nextData_]);
|
|
175
|
+
}
|
|
176
|
+
return this.maxImage_;
|
|
177
|
+
}
|
|
178
|
+
updateMaxIntensity_() {
|
|
179
|
+
const map = highest(this.data_);
|
|
180
|
+
const next = highest(this.nextMap_ ? this.nextData_ : undefined);
|
|
181
|
+
this.maxValues = this.map_ ? map.map((value, channel) => Math.max(value, next[channel])) : [this.empty_, this.empty_, this.empty_, this.empty_];
|
|
182
|
+
this.maxIntensity = this.maxValues[0];
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* The intensity at a point, 0 to 1, bilinear as the shaders sample it: the
|
|
186
|
+
* empty value without a map, 0 outside its rectangle.
|
|
187
|
+
* @param {number} longitude radians
|
|
188
|
+
* @param {number} latitude radians
|
|
189
|
+
*/
|
|
190
|
+
intensityAt(longitude, latitude) {
|
|
191
|
+
if (!this.map_ || !this.data_) {
|
|
192
|
+
return this.empty_;
|
|
193
|
+
}
|
|
194
|
+
const { west, south, east, north } = this.map_.rectangle;
|
|
195
|
+
const u = (longitude - west) / (east - west);
|
|
196
|
+
const v = (latitude - south) / (north - south);
|
|
197
|
+
if (u < 0 || u > 1 || v < 0 || v > 1) {
|
|
198
|
+
return 0;
|
|
199
|
+
}
|
|
200
|
+
const intensity = this.sample_(this.data_, u, v);
|
|
201
|
+
if (!this.nextData_) {
|
|
202
|
+
return intensity;
|
|
203
|
+
}
|
|
204
|
+
return intensity + (this.sample_(this.nextData_, u, v) - intensity) * this.blend;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* An image's intensity, bilinear, at a point of its rectangle, 0 to 1 from its west and south.
|
|
208
|
+
* @param {{width: number, height: number, data: Uint8ClampedArray}} image
|
|
209
|
+
* @param {number} u
|
|
210
|
+
* @param {number} v
|
|
211
|
+
*/
|
|
212
|
+
sample_(image, u, v) {
|
|
213
|
+
const { width, height, data } = image;
|
|
214
|
+
// the image's rows go down from the north
|
|
215
|
+
const x = CesiumMath.clamp(u * width - 0.5, 0, width - 1);
|
|
216
|
+
const y = CesiumMath.clamp((1 - v) * height - 0.5, 0, height - 1);
|
|
217
|
+
const x0 = Math.floor(x);
|
|
218
|
+
const y0 = Math.floor(y);
|
|
219
|
+
const x1 = Math.min(x0 + 1, width - 1);
|
|
220
|
+
const y1 = Math.min(y0 + 1, height - 1);
|
|
221
|
+
const red = (/** @type {number} */ column, /** @type {number} */ row) => data[4 * (row * width + column)] / 255;
|
|
222
|
+
const upper = red(x0, y0) + (red(x1, y0) - red(x0, y0)) * (x - x0);
|
|
223
|
+
const lower = red(x0, y1) + (red(x1, y1) - red(x0, y1)) * (x - x0);
|
|
224
|
+
return upper + (lower - upper) * (y - y0);
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* The map's texture, a pixel of the empty value without a map.
|
|
228
|
+
* @param {any} context the scene's context
|
|
229
|
+
*/
|
|
230
|
+
texture(context) {
|
|
231
|
+
if (!this.texture_) {
|
|
232
|
+
const value = 255 * this.empty_;
|
|
233
|
+
this.texture_ = new Texture({ context, source: textureSource(this.map_?.image ?? new ImageData(new Uint8ClampedArray([value, value, value, 255]), 1, 1)) });
|
|
234
|
+
}
|
|
235
|
+
return this.texture_;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* The next map's texture, the map's without one.
|
|
239
|
+
* @param {any} context the scene's context
|
|
240
|
+
*/
|
|
241
|
+
nextTexture(context) {
|
|
242
|
+
if (!this.nextMap_) {
|
|
243
|
+
return this.texture(context);
|
|
244
|
+
}
|
|
245
|
+
this.nextTexture_ ??= new Texture({ context, source: textureSource(this.nextMap_.image) });
|
|
246
|
+
return this.nextTexture_;
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* The max map's texture, a pixel of the empty value without a map.
|
|
250
|
+
* @param {any} context the scene's context
|
|
251
|
+
*/
|
|
252
|
+
maxTexture(context) {
|
|
253
|
+
if (!this.maxTexture_) {
|
|
254
|
+
const value = 255 * this.empty_;
|
|
255
|
+
const { width, height, data } = this.maxImage() ?? { width: 1, height: 1, data: new Uint8Array([value, value, value, 255]) };
|
|
256
|
+
this.maxTexture_ = new Texture({ context, source: { width, height, arrayBufferView: data } });
|
|
257
|
+
}
|
|
258
|
+
return this.maxTexture_;
|
|
259
|
+
}
|
|
260
|
+
destroy() {
|
|
261
|
+
this.texture_ = this.texture_?.destroy();
|
|
262
|
+
this.nextTexture_ = this.nextTexture_?.destroy();
|
|
263
|
+
this.maxTexture_ = this.maxTexture_?.destroy();
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
//# sourceMappingURL=weather-map.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"weather-map.js","sourceRoot":"","sources":["../src/weather-map.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Cartesian2 } from '@cesium/core';
|
|
2
|
+
import Toy from './toy.js';
|
|
3
|
+
/**
|
|
4
|
+
* A white model's look, as an architect's plaster model or clay render: every color turned to its
|
|
5
|
+
* value, the values pressed into a narrow range of whites (the darkest left black: a section's
|
|
6
|
+
* poché), darker where surfaces meet, the edges lit and shaded and finely outlined as the toy's,
|
|
7
|
+
* the sky a pale gradient if asked. A `Toy` with another grading: its options and properties,
|
|
8
|
+
* `saturation` 0 (an accent's hue kept above it), `warm` the plaster's tint.
|
|
9
|
+
*/
|
|
10
|
+
export default class WhiteModel extends Toy {
|
|
11
|
+
values_: [number, number];
|
|
12
|
+
poche_: number;
|
|
13
|
+
occlusion_: number;
|
|
14
|
+
radius_: number;
|
|
15
|
+
/**
|
|
16
|
+
* @param {import('@cesium/engine').CesiumWidget} viewer
|
|
17
|
+
* @param {{light?: number, shade?: number, bevel?: number, outline?: number, jump?: number, saturation?: number, warm?: [number, number, number], values?: [number, number], poche?: number, occlusion?: number, radius?: number, sky?: [import('@cesium/core').Color, import('@cesium/core').Color]}} [options]
|
|
18
|
+
*/
|
|
19
|
+
constructor(viewer: import('@cesium/engine').CesiumWidget, options?: {
|
|
20
|
+
light?: number;
|
|
21
|
+
shade?: number;
|
|
22
|
+
bevel?: number;
|
|
23
|
+
outline?: number;
|
|
24
|
+
jump?: number;
|
|
25
|
+
saturation?: number;
|
|
26
|
+
warm?: [number, number, number];
|
|
27
|
+
values?: [number, number];
|
|
28
|
+
poche?: number;
|
|
29
|
+
occlusion?: number;
|
|
30
|
+
radius?: number;
|
|
31
|
+
sky?: [import('@cesium/core').Color, import('@cesium/core').Color];
|
|
32
|
+
});
|
|
33
|
+
/**
|
|
34
|
+
* @override
|
|
35
|
+
* @protected
|
|
36
|
+
*/
|
|
37
|
+
protected shader_(): string;
|
|
38
|
+
/**
|
|
39
|
+
* @override
|
|
40
|
+
* @protected
|
|
41
|
+
*/
|
|
42
|
+
protected uniforms_(): {
|
|
43
|
+
values: () => Cartesian2;
|
|
44
|
+
poche: () => number;
|
|
45
|
+
occlusion: () => number;
|
|
46
|
+
radius: () => number;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* The darkest and the lightest values, from 0 to 1: the scene's black and its white.
|
|
50
|
+
*/
|
|
51
|
+
get values(): [number, number];
|
|
52
|
+
set values(value: [number, number]);
|
|
53
|
+
/**
|
|
54
|
+
* The value under which a color keeps it rather than being pressed into the whites, fading into
|
|
55
|
+
* them about it: a section's poché, solid black; 0 to press every color.
|
|
56
|
+
*/
|
|
57
|
+
get poche(): number;
|
|
58
|
+
set poche(value: number);
|
|
59
|
+
/**
|
|
60
|
+
* How much darker the surfaces get where they meet, in a corner or at a wall's foot, 0 for none.
|
|
61
|
+
*/
|
|
62
|
+
get occlusion(): number;
|
|
63
|
+
set occlusion(value: number);
|
|
64
|
+
/**
|
|
65
|
+
* How wide the corners' shadow is, in meters, 48 pixels at the most.
|
|
66
|
+
*/
|
|
67
|
+
get radius(): number;
|
|
68
|
+
set radius(value: number);
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=white-model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"white-model.d.ts","sourceRoot":"","sources":["../src/white-model.js"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,GAAG,MAAM,UAAU,CAAC;AAK3B;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,GAAG;IAelC,OAAO;IACP,MAAM;IACN,UAAU;IACV,OAAO;IAjBd;;;OAGG;IACH,YAAY,MAAM,EAHP,OAAO,gBAAgB,EAAE,YAGlB,EAAE,OAAO,AAFxB,CAA8S,EAAtS;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,CAAC,OAAO,cAAc,EAAE,KAAK,EAAE,OAAO,cAAc,EAAE,KAAK,CAAC,CAAA;KAErQ,EAc/B;IAED;;;OAGG;IACH,UAAA,OAAO,WAEN;IAED;;;OAGG;IACH,UAAA,SAAS;;;;;MAQR;IAED;;OAEG;IACH,IAAI,MAAM,qBAET;IAED,IAAI,MAAM,CAAC,KAAK,kBAAA,EAGf;IAED;;;OAGG;IACH,IAAI,KAAK,WAER;IAED,IAAI,KAAK,CAAC,KAAK,QAAA,EAGd;IAED;;OAEG;IACH,IAAI,SAAS,WAEZ;IAED,IAAI,SAAS,CAAC,KAAK,QAAA,EAGlB;IAED;;OAEG;IACH,IAAI,MAAM,WAET;IAED,IAAI,MAAM,CAAC,KAAK,QAAA,EAGf;CACF"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { Cartesian2 } from '@cesium/core';
|
|
2
|
+
import Toy from './toy.js';
|
|
3
|
+
import WhiteModelShader from './shaders/WhiteModel.js';
|
|
4
|
+
const valuesScratch = new Cartesian2();
|
|
5
|
+
/**
|
|
6
|
+
* A white model's look, as an architect's plaster model or clay render: every color turned to its
|
|
7
|
+
* value, the values pressed into a narrow range of whites (the darkest left black: a section's
|
|
8
|
+
* poché), darker where surfaces meet, the edges lit and shaded and finely outlined as the toy's,
|
|
9
|
+
* the sky a pale gradient if asked. A `Toy` with another grading: its options and properties,
|
|
10
|
+
* `saturation` 0 (an accent's hue kept above it), `warm` the plaster's tint.
|
|
11
|
+
*/
|
|
12
|
+
export default class WhiteModel extends Toy {
|
|
13
|
+
/**
|
|
14
|
+
* @param {import('@cesium/engine').CesiumWidget} viewer
|
|
15
|
+
* @param {{light?: number, shade?: number, bevel?: number, outline?: number, jump?: number, saturation?: number, warm?: [number, number, number], values?: [number, number], poche?: number, occlusion?: number, radius?: number, sky?: [import('@cesium/core').Color, import('@cesium/core').Color]}} [options]
|
|
16
|
+
*/
|
|
17
|
+
constructor(viewer, options = {}) {
|
|
18
|
+
// the toy's options, each the white model's default when not given, or given as undefined
|
|
19
|
+
super(viewer, {
|
|
20
|
+
...options,
|
|
21
|
+
light: options.light ?? 0.08,
|
|
22
|
+
shade: options.shade ?? 0.12,
|
|
23
|
+
outline: options.outline ?? 0.25,
|
|
24
|
+
saturation: options.saturation ?? 0,
|
|
25
|
+
warm: options.warm ?? [1, 0.995, 0.985],
|
|
26
|
+
});
|
|
27
|
+
this.values_ = options.values ?? [0.35, 0.97];
|
|
28
|
+
this.poche_ = options.poche ?? 0.1;
|
|
29
|
+
this.occlusion_ = options.occlusion ?? 0.35;
|
|
30
|
+
this.radius_ = options.radius ?? 1.5;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* @override
|
|
34
|
+
* @protected
|
|
35
|
+
*/
|
|
36
|
+
shader_() {
|
|
37
|
+
return WhiteModelShader;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* @override
|
|
41
|
+
* @protected
|
|
42
|
+
*/
|
|
43
|
+
uniforms_() {
|
|
44
|
+
return {
|
|
45
|
+
...super.uniforms_(),
|
|
46
|
+
values: () => Cartesian2.fromArray(this.values_, 0, valuesScratch),
|
|
47
|
+
poche: () => this.poche_,
|
|
48
|
+
occlusion: () => this.occlusion_,
|
|
49
|
+
radius: () => this.radius_,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* The darkest and the lightest values, from 0 to 1: the scene's black and its white.
|
|
54
|
+
*/
|
|
55
|
+
get values() {
|
|
56
|
+
return this.values_;
|
|
57
|
+
}
|
|
58
|
+
set values(value) {
|
|
59
|
+
this.values_ = value;
|
|
60
|
+
this.viewer.scene.requestRender();
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* The value under which a color keeps it rather than being pressed into the whites, fading into
|
|
64
|
+
* them about it: a section's poché, solid black; 0 to press every color.
|
|
65
|
+
*/
|
|
66
|
+
get poche() {
|
|
67
|
+
return this.poche_;
|
|
68
|
+
}
|
|
69
|
+
set poche(value) {
|
|
70
|
+
this.poche_ = value;
|
|
71
|
+
this.viewer.scene.requestRender();
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* How much darker the surfaces get where they meet, in a corner or at a wall's foot, 0 for none.
|
|
75
|
+
*/
|
|
76
|
+
get occlusion() {
|
|
77
|
+
return this.occlusion_;
|
|
78
|
+
}
|
|
79
|
+
set occlusion(value) {
|
|
80
|
+
this.occlusion_ = value;
|
|
81
|
+
this.viewer.scene.requestRender();
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* How wide the corners' shadow is, in meters, 48 pixels at the most.
|
|
85
|
+
*/
|
|
86
|
+
get radius() {
|
|
87
|
+
return this.radius_;
|
|
88
|
+
}
|
|
89
|
+
set radius(value) {
|
|
90
|
+
this.radius_ = value;
|
|
91
|
+
this.viewer.scene.requestRender();
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=white-model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"white-model.js","sourceRoot":"","sources":["../src/white-model.js"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,gBAAgB,MAAM,yBAAyB,CAAC;AAEvD,MAAM,aAAa,GAAG,IAAI,UAAU,EAAE,CAAC;AAEvC;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,GAAG;IACzC;;;OAGG;IACH,YAAY,MAAM,EAAE,OAAO,GAAG,EAAE;QAC9B,0FAA0F;QAC1F,KAAK,CAAC,MAAM,EAAE;YACZ,GAAG,OAAO;YACV,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI;YAC5B,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI;YAC5B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;YAChC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,CAAC;YACnC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC;SACxC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC;QAC5C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI,GAAG,CAAC;IACvC,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACH,SAAS;QACP,OAAO;YACL,GAAG,KAAK,CAAC,SAAS,EAAE;YACpB,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,aAAa,CAAC;YAClE,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM;YACxB,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU;YAChC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO;SAC3B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,MAAM,CAAC,KAAK;QACd,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IACpC,CAAC;IAED;;;OAGG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,KAAK,CAAC,KAAK;QACb,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAI,SAAS,CAAC,KAAK;QACjB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,MAAM,CAAC,KAAK;QACd,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IACpC,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@geoblocks/cesium-post-process",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"license": "BSD-3-Clause",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
@@ -8,47 +8,26 @@
|
|
|
8
8
|
"url": "https://github.com/geoblocks/cesium-helpers/",
|
|
9
9
|
"directory": "packages/cesium-post-process"
|
|
10
10
|
},
|
|
11
|
-
"main": "cesium-post-process.js",
|
|
12
|
-
"module": "cesium-post-process.js",
|
|
11
|
+
"main": "dist/cesium-post-process.js",
|
|
12
|
+
"module": "dist/cesium-post-process.js",
|
|
13
|
+
"types": "dist/cesium-post-process.d.ts",
|
|
14
|
+
"exports": {
|
|
15
|
+
".": {
|
|
16
|
+
"source": "./src/cesium-post-process.js",
|
|
17
|
+
"types": "./dist/cesium-post-process.d.ts",
|
|
18
|
+
"default": "./dist/cesium-post-process.js"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
13
21
|
"sideEffects": false,
|
|
14
22
|
"files": [
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"cloud-cover.js",
|
|
19
|
-
"cloud-map.js",
|
|
20
|
-
"cloud-noise.js",
|
|
21
|
-
"clouds.js",
|
|
22
|
-
"color-isolation.js",
|
|
23
|
-
"depth-test.js",
|
|
24
|
-
"digital-video.js",
|
|
25
|
-
"dufour.js",
|
|
26
|
-
"drone-display.js",
|
|
27
|
-
"effect.js",
|
|
28
|
-
"focus.js",
|
|
29
|
-
"frame-clock.js",
|
|
30
|
-
"height.js",
|
|
31
|
-
"infrared.js",
|
|
32
|
-
"jello.js",
|
|
33
|
-
"lens-distortion.js",
|
|
34
|
-
"lightning.js",
|
|
35
|
-
"local-frame.js",
|
|
36
|
-
"motion-blur.js",
|
|
37
|
-
"precipitation.js",
|
|
38
|
-
"rain-rings.js",
|
|
39
|
-
"snow-line.js",
|
|
40
|
-
"speed-lines.js",
|
|
41
|
-
"spotlight.js",
|
|
42
|
-
"strikes.js",
|
|
43
|
-
"super8.js",
|
|
44
|
-
"technicolor.js",
|
|
45
|
-
"tilt-shift.js",
|
|
46
|
-
"toy.js",
|
|
47
|
-
"valley-fog.js",
|
|
48
|
-
"weather-map.js",
|
|
49
|
-
"white-model.js",
|
|
50
|
-
"shaders/*.js"
|
|
23
|
+
"dist",
|
|
24
|
+
"src",
|
|
25
|
+
"!src/**/*.test.js"
|
|
51
26
|
],
|
|
27
|
+
"scripts": {
|
|
28
|
+
"build": "tsc -p .",
|
|
29
|
+
"prepack": "npm run build"
|
|
30
|
+
},
|
|
52
31
|
"publishConfig": {
|
|
53
32
|
"access": "public"
|
|
54
33
|
},
|
|
@@ -56,5 +35,5 @@
|
|
|
56
35
|
"@cesium/core": ">=0.1.0",
|
|
57
36
|
"@cesium/engine": ">=10"
|
|
58
37
|
},
|
|
59
|
-
"gitHead": "
|
|
38
|
+
"gitHead": "a6d8fdfe6b9ad266fd8a4593c38efd24e9a5546b"
|
|
60
39
|
}
|
|
@@ -4,6 +4,7 @@ export {default as ColorIsolation} from './color-isolation.js';
|
|
|
4
4
|
export {default as DigitalVideo} from './digital-video.js';
|
|
5
5
|
export {default as Dufour} from './dufour.js';
|
|
6
6
|
export {default as DroneDisplay} from './drone-display.js';
|
|
7
|
+
export {default as Effect} from './effect.js';
|
|
7
8
|
export {default as Infrared} from './infrared.js';
|
|
8
9
|
export {default as Jello} from './jello.js';
|
|
9
10
|
export {default as LensDistortion} from './lens-distortion.js';
|
|
@@ -23,6 +24,7 @@ export {default as WhiteModel} from './white-model.js';
|
|
|
23
24
|
|
|
24
25
|
// the shader chunks the depth-based effects share, and the uniforms of Height, for effects of your own
|
|
25
26
|
export {default as EyeFromDepth} from './shaders/EyeFromDepth.js';
|
|
27
|
+
export {default as Hash} from './shaders/Hash.js';
|
|
26
28
|
export {default as Height} from './shaders/Height.js';
|
|
27
29
|
export {heightUniforms} from './height.js';
|
|
28
30
|
export {localFromEye} from './local-frame.js';
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import {Cartesian3, FixedFrameTransforms, Matrix4} from '@cesium/core';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 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
|
|
5
|
+
* 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
|
|
6
|
+
* (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
|
|
7
|
+
* coordinates, a single precision float steps by half a meter.
|
|
8
|
+
* @param {Matrix4} frame The local frame in the world, such as `FixedFrameTransforms.eastNorthUpToFixedFrame(origin)`.
|
|
9
|
+
* @param {Matrix4} viewMatrix The camera's view matrix.
|
|
10
|
+
* @param {Matrix4} [result]
|
|
11
|
+
* @return {Matrix4}
|
|
12
|
+
*/
|
|
13
|
+
export function localFromEye(frame, viewMatrix, result = new Matrix4()) {
|
|
14
|
+
return Matrix4.inverseTransformation(Matrix4.multiply(viewMatrix, frame, result), result);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* 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
|
|
19
|
+
* position when the frame is first anchored.
|
|
20
|
+
*/
|
|
21
|
+
export class LocalFrame {
|
|
22
|
+
/** @param {Cartesian3} [origin] */
|
|
23
|
+
constructor(origin) {
|
|
24
|
+
this.origin_ = origin && Cartesian3.clone(origin);
|
|
25
|
+
/** @type {Matrix4 | undefined} */
|
|
26
|
+
this.frame_ = undefined;
|
|
27
|
+
this.scratch_ = new Matrix4();
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/** The point of the world the frame is laid about; undefined until anchored if none was given. */
|
|
31
|
+
get origin() {
|
|
32
|
+
return this.origin_;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
set origin(value) {
|
|
36
|
+
this.origin_ = value && Cartesian3.clone(value);
|
|
37
|
+
this.frame_ = undefined;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* The origin, the camera's position if there is none yet.
|
|
42
|
+
* @param {import('@cesium/engine').Scene} scene
|
|
43
|
+
*/
|
|
44
|
+
anchor(scene) {
|
|
45
|
+
this.origin_ ??= Cartesian3.clone(scene.camera.positionWC);
|
|
46
|
+
return this.origin_;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* The local frame's coordinates from the camera's eye's (localFromEye), anchored first.
|
|
51
|
+
* @param {import('@cesium/engine').Scene} scene
|
|
52
|
+
*/
|
|
53
|
+
fromEye(scene) {
|
|
54
|
+
this.frame_ ??= FixedFrameTransforms.eastNorthUpToFixedFrame(this.anchor(scene), scene.ellipsoid, new Matrix4());
|
|
55
|
+
return localFromEye(this.frame_, scene.camera.viewMatrix, this.scratch_);
|
|
56
|
+
}
|
|
57
|
+
}
|