@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.
Files changed (502) hide show
  1. package/dist/analog-video.d.ts +71 -0
  2. package/dist/analog-video.d.ts.map +1 -0
  3. package/dist/analog-video.js +128 -0
  4. package/dist/analog-video.js.map +1 -0
  5. package/dist/blur.d.ts +13 -0
  6. package/dist/blur.d.ts.map +1 -0
  7. package/dist/blur.js +36 -0
  8. package/dist/blur.js.map +1 -0
  9. package/dist/cesium-post-process.d.ts +30 -0
  10. package/dist/cesium-post-process.d.ts.map +1 -0
  11. package/dist/cesium-post-process.js +31 -0
  12. package/dist/cesium-post-process.js.map +1 -0
  13. package/dist/cloud-cover.d.ts +28 -0
  14. package/dist/cloud-cover.d.ts.map +1 -0
  15. package/dist/cloud-cover.js +45 -0
  16. package/dist/cloud-cover.js.map +1 -0
  17. package/dist/cloud-map.d.ts +7 -0
  18. package/dist/cloud-map.d.ts.map +1 -0
  19. package/dist/cloud-map.js +118 -0
  20. package/dist/cloud-map.js.map +1 -0
  21. package/dist/cloud-noise.d.ts +13 -0
  22. package/dist/cloud-noise.d.ts.map +1 -0
  23. package/dist/cloud-noise.js +222 -0
  24. package/dist/cloud-noise.js.map +1 -0
  25. package/dist/clouds.d.ts +275 -0
  26. package/dist/clouds.d.ts.map +1 -0
  27. package/dist/clouds.js +642 -0
  28. package/dist/clouds.js.map +1 -0
  29. package/dist/color-isolation.d.ts +38 -0
  30. package/dist/color-isolation.d.ts.map +1 -0
  31. package/dist/color-isolation.js +61 -0
  32. package/dist/color-isolation.js.map +1 -0
  33. package/dist/depth-test.d.ts +9 -0
  34. package/dist/depth-test.d.ts.map +1 -0
  35. package/dist/depth-test.js +35 -0
  36. package/dist/depth-test.js.map +1 -0
  37. package/dist/digital-video.d.ts +47 -0
  38. package/dist/digital-video.d.ts.map +1 -0
  39. package/dist/digital-video.js +102 -0
  40. package/dist/digital-video.js.map +1 -0
  41. package/dist/drone-display.d.ts +70 -0
  42. package/dist/drone-display.d.ts.map +1 -0
  43. package/dist/drone-display.js +158 -0
  44. package/dist/drone-display.js.map +1 -0
  45. package/dist/dufour.d.ts +108 -0
  46. package/dist/dufour.d.ts.map +1 -0
  47. package/dist/dufour.js +201 -0
  48. package/dist/dufour.js.map +1 -0
  49. package/dist/effect.d.ts +33 -0
  50. package/dist/effect.d.ts.map +1 -0
  51. package/dist/effect.js +60 -0
  52. package/dist/effect.js.map +1 -0
  53. package/dist/focus.d.ts +11 -0
  54. package/dist/focus.d.ts.map +1 -0
  55. package/dist/focus.js +23 -0
  56. package/dist/focus.js.map +1 -0
  57. package/dist/frame-clock.d.ts +11 -0
  58. package/dist/frame-clock.d.ts.map +1 -0
  59. package/dist/frame-clock.js +57 -0
  60. package/dist/frame-clock.js.map +1 -0
  61. package/dist/height.d.ts +12 -0
  62. package/dist/height.d.ts.map +1 -0
  63. package/dist/height.js +22 -0
  64. package/dist/height.js.map +1 -0
  65. package/dist/infrared.d.ts +23 -0
  66. package/dist/infrared.d.ts.map +1 -0
  67. package/dist/infrared.js +36 -0
  68. package/dist/infrared.js.map +1 -0
  69. package/dist/jello.d.ts +52 -0
  70. package/dist/jello.d.ts.map +1 -0
  71. package/dist/jello.js +136 -0
  72. package/dist/jello.js.map +1 -0
  73. package/dist/lens-distortion.d.ts +33 -0
  74. package/dist/lens-distortion.d.ts.map +1 -0
  75. package/dist/lens-distortion.js +61 -0
  76. package/dist/lens-distortion.js.map +1 -0
  77. package/dist/lightning.d.ts +124 -0
  78. package/dist/lightning.d.ts.map +1 -0
  79. package/dist/lightning.js +301 -0
  80. package/dist/lightning.js.map +1 -0
  81. package/dist/local-frame.d.ts +38 -0
  82. package/dist/local-frame.d.ts.map +1 -0
  83. package/dist/local-frame.js +52 -0
  84. package/dist/local-frame.js.map +1 -0
  85. package/dist/motion-blur.d.ts +50 -0
  86. package/dist/motion-blur.d.ts.map +1 -0
  87. package/dist/motion-blur.js +108 -0
  88. package/dist/motion-blur.js.map +1 -0
  89. package/dist/precipitation.d.ts +146 -0
  90. package/dist/precipitation.d.ts.map +1 -0
  91. package/dist/precipitation.js +454 -0
  92. package/dist/precipitation.js.map +1 -0
  93. package/dist/rain-rings.d.ts +100 -0
  94. package/dist/rain-rings.d.ts.map +1 -0
  95. package/dist/rain-rings.js +181 -0
  96. package/dist/rain-rings.js.map +1 -0
  97. package/dist/shaders/Alpenglow.d.ts +3 -0
  98. package/dist/shaders/Alpenglow.d.ts.map +1 -0
  99. package/dist/shaders/Alpenglow.js +3 -0
  100. package/dist/shaders/Alpenglow.js.map +1 -0
  101. package/dist/shaders/AnalogVideo.d.ts +3 -0
  102. package/dist/shaders/AnalogVideo.d.ts.map +1 -0
  103. package/dist/shaders/AnalogVideo.js +3 -0
  104. package/dist/shaders/AnalogVideo.js.map +1 -0
  105. package/dist/shaders/Beam.d.ts +3 -0
  106. package/dist/shaders/Beam.d.ts.map +1 -0
  107. package/dist/shaders/Beam.js +3 -0
  108. package/dist/shaders/Beam.js.map +1 -0
  109. package/dist/shaders/CloudsBlur.d.ts +3 -0
  110. package/dist/shaders/CloudsBlur.d.ts.map +1 -0
  111. package/dist/shaders/CloudsBlur.js +3 -0
  112. package/dist/shaders/CloudsBlur.js.map +1 -0
  113. package/dist/shaders/CloudsComposite.d.ts +3 -0
  114. package/dist/shaders/CloudsComposite.d.ts.map +1 -0
  115. package/dist/shaders/CloudsComposite.js +3 -0
  116. package/dist/shaders/CloudsComposite.js.map +1 -0
  117. package/dist/shaders/CloudsDensity.d.ts +3 -0
  118. package/dist/shaders/CloudsDensity.d.ts.map +1 -0
  119. package/dist/shaders/CloudsDensity.js +3 -0
  120. package/dist/shaders/CloudsDensity.js.map +1 -0
  121. package/dist/shaders/CloudsDepth.d.ts +3 -0
  122. package/dist/shaders/CloudsDepth.d.ts.map +1 -0
  123. package/dist/shaders/CloudsDepth.js +3 -0
  124. package/dist/shaders/CloudsDepth.js.map +1 -0
  125. package/dist/shaders/CloudsMarch.d.ts +3 -0
  126. package/dist/shaders/CloudsMarch.d.ts.map +1 -0
  127. package/dist/shaders/CloudsMarch.js +3 -0
  128. package/dist/shaders/CloudsMarch.js.map +1 -0
  129. package/dist/shaders/CloudsResolve.d.ts +3 -0
  130. package/dist/shaders/CloudsResolve.d.ts.map +1 -0
  131. package/dist/shaders/CloudsResolve.js +3 -0
  132. package/dist/shaders/CloudsResolve.js.map +1 -0
  133. package/dist/shaders/CloudsShadow.d.ts +3 -0
  134. package/dist/shaders/CloudsShadow.d.ts.map +1 -0
  135. package/dist/shaders/CloudsShadow.js +3 -0
  136. package/dist/shaders/CloudsShadow.js.map +1 -0
  137. package/dist/shaders/CloudsShadowMap.d.ts +3 -0
  138. package/dist/shaders/CloudsShadowMap.d.ts.map +1 -0
  139. package/dist/shaders/CloudsShadowMap.js +3 -0
  140. package/dist/shaders/CloudsShadowMap.js.map +1 -0
  141. package/dist/shaders/CloudsSlab.d.ts +3 -0
  142. package/dist/shaders/CloudsSlab.d.ts.map +1 -0
  143. package/dist/shaders/CloudsSlab.js +3 -0
  144. package/dist/shaders/CloudsSlab.js.map +1 -0
  145. package/dist/shaders/ColorIsolation.d.ts +3 -0
  146. package/dist/shaders/ColorIsolation.d.ts.map +1 -0
  147. package/dist/shaders/ColorIsolation.js +3 -0
  148. package/dist/shaders/ColorIsolation.js.map +1 -0
  149. package/dist/shaders/DepthEdges.d.ts +3 -0
  150. package/dist/shaders/DepthEdges.d.ts.map +1 -0
  151. package/dist/shaders/DepthEdges.js +3 -0
  152. package/dist/shaders/DepthEdges.js.map +1 -0
  153. package/dist/shaders/DigitalVideo.d.ts +3 -0
  154. package/dist/shaders/DigitalVideo.d.ts.map +1 -0
  155. package/dist/shaders/DigitalVideo.js +3 -0
  156. package/dist/shaders/DigitalVideo.js.map +1 -0
  157. package/dist/shaders/DroneDisplay.d.ts +3 -0
  158. package/dist/shaders/DroneDisplay.d.ts.map +1 -0
  159. package/dist/shaders/DroneDisplay.js +3 -0
  160. package/dist/shaders/DroneDisplay.js.map +1 -0
  161. package/dist/shaders/Dufour.d.ts +3 -0
  162. package/dist/shaders/Dufour.d.ts.map +1 -0
  163. package/dist/shaders/Dufour.js +3 -0
  164. package/dist/shaders/Dufour.js.map +1 -0
  165. package/dist/shaders/EyeFromDepth.d.ts +3 -0
  166. package/dist/shaders/EyeFromDepth.d.ts.map +1 -0
  167. package/dist/shaders/EyeFromDepth.js +3 -0
  168. package/dist/shaders/EyeFromDepth.js.map +1 -0
  169. package/dist/shaders/Filmic.d.ts +3 -0
  170. package/dist/shaders/Filmic.d.ts.map +1 -0
  171. package/dist/shaders/Filmic.js +3 -0
  172. package/dist/shaders/Filmic.js.map +1 -0
  173. package/dist/shaders/Flashlight.d.ts +3 -0
  174. package/dist/shaders/Flashlight.d.ts.map +1 -0
  175. package/dist/shaders/Flashlight.js +3 -0
  176. package/dist/shaders/Flashlight.js.map +1 -0
  177. package/dist/shaders/Fog.d.ts +3 -0
  178. package/dist/shaders/Fog.d.ts.map +1 -0
  179. package/dist/shaders/Fog.js +3 -0
  180. package/dist/shaders/Fog.js.map +1 -0
  181. package/dist/shaders/Frame.d.ts +3 -0
  182. package/dist/shaders/Frame.d.ts.map +1 -0
  183. package/dist/shaders/Frame.js +3 -0
  184. package/dist/shaders/Frame.js.map +1 -0
  185. package/dist/shaders/Hash.d.ts +3 -0
  186. package/dist/shaders/Hash.d.ts.map +1 -0
  187. package/dist/shaders/Hash.js +3 -0
  188. package/dist/shaders/Hash.js.map +1 -0
  189. package/dist/shaders/Height.d.ts +3 -0
  190. package/dist/shaders/Height.d.ts.map +1 -0
  191. package/dist/shaders/Height.js +3 -0
  192. package/dist/shaders/Height.js.map +1 -0
  193. package/dist/shaders/Infrared.d.ts +3 -0
  194. package/dist/shaders/Infrared.d.ts.map +1 -0
  195. package/dist/shaders/Infrared.js +3 -0
  196. package/dist/shaders/Infrared.js.map +1 -0
  197. package/dist/shaders/Jello.d.ts +3 -0
  198. package/dist/shaders/Jello.d.ts.map +1 -0
  199. package/dist/shaders/Jello.js +3 -0
  200. package/dist/shaders/Jello.js.map +1 -0
  201. package/dist/shaders/LensDistortion.d.ts +3 -0
  202. package/dist/shaders/LensDistortion.d.ts.map +1 -0
  203. package/dist/shaders/LensDistortion.js +3 -0
  204. package/dist/shaders/LensDistortion.js.map +1 -0
  205. package/dist/shaders/Lightning.d.ts +3 -0
  206. package/dist/shaders/Lightning.d.ts.map +1 -0
  207. package/dist/shaders/Lightning.js +3 -0
  208. package/dist/shaders/Lightning.js.map +1 -0
  209. package/dist/shaders/MotionBlur.d.ts +3 -0
  210. package/dist/shaders/MotionBlur.d.ts.map +1 -0
  211. package/dist/shaders/MotionBlur.js +3 -0
  212. package/dist/shaders/MotionBlur.js.map +1 -0
  213. package/dist/shaders/MotionBlurVelocity.d.ts +3 -0
  214. package/dist/shaders/MotionBlurVelocity.d.ts.map +1 -0
  215. package/dist/shaders/MotionBlurVelocity.js +3 -0
  216. package/dist/shaders/MotionBlurVelocity.js.map +1 -0
  217. package/dist/shaders/Noise.d.ts +3 -0
  218. package/dist/shaders/Noise.d.ts.map +1 -0
  219. package/dist/shaders/Noise.js +3 -0
  220. package/dist/shaders/Noise.js.map +1 -0
  221. package/dist/shaders/Normal.d.ts +3 -0
  222. package/dist/shaders/Normal.d.ts.map +1 -0
  223. package/dist/shaders/Normal.js +3 -0
  224. package/dist/shaders/Normal.js.map +1 -0
  225. package/dist/shaders/Phase.d.ts +3 -0
  226. package/dist/shaders/Phase.d.ts.map +1 -0
  227. package/dist/shaders/Phase.js +3 -0
  228. package/dist/shaders/Phase.js.map +1 -0
  229. package/dist/shaders/Precipitation.d.ts +3 -0
  230. package/dist/shaders/Precipitation.d.ts.map +1 -0
  231. package/dist/shaders/Precipitation.js +3 -0
  232. package/dist/shaders/Precipitation.js.map +1 -0
  233. package/dist/shaders/PrecipitationShaftBlur.d.ts +3 -0
  234. package/dist/shaders/PrecipitationShaftBlur.d.ts.map +1 -0
  235. package/dist/shaders/PrecipitationShaftBlur.js +3 -0
  236. package/dist/shaders/PrecipitationShaftBlur.js.map +1 -0
  237. package/dist/shaders/PrecipitationShafts.d.ts +3 -0
  238. package/dist/shaders/PrecipitationShafts.d.ts.map +1 -0
  239. package/dist/shaders/PrecipitationShafts.js +3 -0
  240. package/dist/shaders/PrecipitationShafts.js.map +1 -0
  241. package/dist/shaders/PrecipitationWind.d.ts +3 -0
  242. package/dist/shaders/PrecipitationWind.d.ts.map +1 -0
  243. package/dist/shaders/PrecipitationWind.js +3 -0
  244. package/dist/shaders/PrecipitationWind.js.map +1 -0
  245. package/dist/shaders/RainHaze.d.ts +3 -0
  246. package/dist/shaders/RainHaze.d.ts.map +1 -0
  247. package/dist/shaders/RainHaze.js +3 -0
  248. package/dist/shaders/RainHaze.js.map +1 -0
  249. package/dist/shaders/RainRings.d.ts +3 -0
  250. package/dist/shaders/RainRings.d.ts.map +1 -0
  251. package/dist/shaders/RainRings.js +3 -0
  252. package/dist/shaders/RainRings.js.map +1 -0
  253. package/dist/shaders/Shockwave.d.ts +3 -0
  254. package/dist/shaders/Shockwave.d.ts.map +1 -0
  255. package/dist/shaders/Shockwave.js +3 -0
  256. package/dist/shaders/Shockwave.js.map +1 -0
  257. package/dist/shaders/SkyTable.d.ts +3 -0
  258. package/dist/shaders/SkyTable.d.ts.map +1 -0
  259. package/dist/shaders/SkyTable.js +3 -0
  260. package/dist/shaders/SkyTable.js.map +1 -0
  261. package/dist/shaders/SnowLine.d.ts +3 -0
  262. package/dist/shaders/SnowLine.d.ts.map +1 -0
  263. package/dist/shaders/SnowLine.js +3 -0
  264. package/dist/shaders/SnowLine.js.map +1 -0
  265. package/dist/shaders/SpeedLines.d.ts +3 -0
  266. package/dist/shaders/SpeedLines.d.ts.map +1 -0
  267. package/dist/shaders/SpeedLines.js +3 -0
  268. package/dist/shaders/SpeedLines.js.map +1 -0
  269. package/dist/shaders/Spotlight.d.ts +3 -0
  270. package/dist/shaders/Spotlight.d.ts.map +1 -0
  271. package/dist/shaders/Spotlight.js +3 -0
  272. package/dist/shaders/Spotlight.js.map +1 -0
  273. package/dist/shaders/SpotlightBeam.d.ts +3 -0
  274. package/dist/shaders/SpotlightBeam.d.ts.map +1 -0
  275. package/dist/shaders/SpotlightBeam.js +3 -0
  276. package/dist/shaders/SpotlightBeam.js.map +1 -0
  277. package/dist/shaders/SpotlightBeamBlur.d.ts +3 -0
  278. package/dist/shaders/SpotlightBeamBlur.d.ts.map +1 -0
  279. package/dist/shaders/SpotlightBeamBlur.js +3 -0
  280. package/dist/shaders/SpotlightBeamBlur.js.map +1 -0
  281. package/dist/shaders/SpotlightCone.d.ts +3 -0
  282. package/dist/shaders/SpotlightCone.d.ts.map +1 -0
  283. package/dist/shaders/SpotlightCone.js +3 -0
  284. package/dist/shaders/SpotlightCone.js.map +1 -0
  285. package/dist/shaders/Super8.d.ts +3 -0
  286. package/dist/shaders/Super8.d.ts.map +1 -0
  287. package/dist/shaders/Super8.js +3 -0
  288. package/dist/shaders/Super8.js.map +1 -0
  289. package/dist/shaders/Technicolor.d.ts +3 -0
  290. package/dist/shaders/Technicolor.d.ts.map +1 -0
  291. package/dist/shaders/Technicolor.js +3 -0
  292. package/dist/shaders/Technicolor.js.map +1 -0
  293. package/dist/shaders/TiltShift.d.ts +3 -0
  294. package/dist/shaders/TiltShift.d.ts.map +1 -0
  295. package/dist/shaders/TiltShift.js +3 -0
  296. package/dist/shaders/TiltShift.js.map +1 -0
  297. package/dist/shaders/Toy.d.ts +3 -0
  298. package/dist/shaders/Toy.d.ts.map +1 -0
  299. package/dist/shaders/Toy.js +3 -0
  300. package/dist/shaders/Toy.js.map +1 -0
  301. package/dist/shaders/Trails.d.ts +3 -0
  302. package/dist/shaders/Trails.d.ts.map +1 -0
  303. package/dist/shaders/Trails.js +3 -0
  304. package/dist/shaders/Trails.js.map +1 -0
  305. package/dist/shaders/ValleyFog.d.ts +3 -0
  306. package/dist/shaders/ValleyFog.d.ts.map +1 -0
  307. package/dist/shaders/ValleyFog.js +3 -0
  308. package/dist/shaders/ValleyFog.js.map +1 -0
  309. package/dist/shaders/WeatherMap.d.ts +3 -0
  310. package/dist/shaders/WeatherMap.d.ts.map +1 -0
  311. package/dist/shaders/WeatherMap.js +3 -0
  312. package/dist/shaders/WeatherMap.js.map +1 -0
  313. package/dist/shaders/WhiteModel.d.ts +3 -0
  314. package/dist/shaders/WhiteModel.d.ts.map +1 -0
  315. package/dist/shaders/WhiteModel.js +3 -0
  316. package/dist/shaders/WhiteModel.js.map +1 -0
  317. package/dist/snow-line.d.ts +117 -0
  318. package/dist/snow-line.d.ts.map +1 -0
  319. package/dist/snow-line.js +201 -0
  320. package/dist/snow-line.js.map +1 -0
  321. package/dist/speed-lines.d.ts +36 -0
  322. package/dist/speed-lines.d.ts.map +1 -0
  323. package/dist/speed-lines.js +65 -0
  324. package/dist/speed-lines.js.map +1 -0
  325. package/dist/spotlight.d.ts +84 -0
  326. package/dist/spotlight.d.ts.map +1 -0
  327. package/dist/spotlight.js +175 -0
  328. package/dist/spotlight.js.map +1 -0
  329. package/dist/strikes.d.ts +17 -0
  330. package/dist/strikes.d.ts.map +1 -0
  331. package/dist/strikes.js +30 -0
  332. package/dist/strikes.js.map +1 -0
  333. package/dist/super8.d.ts +78 -0
  334. package/dist/super8.d.ts.map +1 -0
  335. package/dist/super8.js +146 -0
  336. package/dist/super8.js.map +1 -0
  337. package/dist/technicolor.d.ts +32 -0
  338. package/dist/technicolor.d.ts.map +1 -0
  339. package/dist/technicolor.js +51 -0
  340. package/dist/technicolor.js.map +1 -0
  341. package/dist/tilt-shift.d.ts +60 -0
  342. package/dist/tilt-shift.d.ts.map +1 -0
  343. package/dist/tilt-shift.js +112 -0
  344. package/dist/tilt-shift.js.map +1 -0
  345. package/dist/toy.d.ts +110 -0
  346. package/dist/toy.d.ts.map +1 -0
  347. package/dist/toy.js +173 -0
  348. package/dist/toy.js.map +1 -0
  349. package/dist/valley-fog.d.ts +56 -0
  350. package/dist/valley-fog.d.ts.map +1 -0
  351. package/dist/valley-fog.js +94 -0
  352. package/dist/valley-fog.js.map +1 -0
  353. package/dist/weather-map.d.ts +132 -0
  354. package/dist/weather-map.d.ts.map +1 -0
  355. package/dist/weather-map.js +266 -0
  356. package/dist/weather-map.js.map +1 -0
  357. package/dist/white-model.d.ts +70 -0
  358. package/dist/white-model.d.ts.map +1 -0
  359. package/dist/white-model.js +94 -0
  360. package/dist/white-model.js.map +1 -0
  361. package/package.json +19 -40
  362. package/{cesium-post-process.js → src/cesium-post-process.js} +2 -0
  363. package/src/shaders/AnalogVideo.glsl +132 -0
  364. package/src/shaders/Beam.glsl +108 -0
  365. package/src/shaders/CloudsBlur.glsl +30 -0
  366. package/src/shaders/CloudsComposite.glsl +59 -0
  367. package/src/shaders/CloudsDensity.glsl +129 -0
  368. package/src/shaders/CloudsDepth.glsl +26 -0
  369. package/src/shaders/CloudsMarch.glsl +174 -0
  370. package/src/shaders/CloudsResolve.glsl +46 -0
  371. package/src/shaders/CloudsShadow.glsl +50 -0
  372. package/src/shaders/CloudsShadowMap.glsl +68 -0
  373. package/src/shaders/CloudsSlab.glsl +58 -0
  374. package/src/shaders/ColorIsolation.glsl +26 -0
  375. package/src/shaders/DepthEdges.glsl +81 -0
  376. package/src/shaders/DigitalVideo.glsl +65 -0
  377. package/src/shaders/DroneDisplay.glsl +337 -0
  378. package/src/shaders/Dufour.glsl +109 -0
  379. package/src/shaders/EyeFromDepth.glsl +36 -0
  380. package/src/shaders/Filmic.glsl +5 -0
  381. package/src/shaders/Fog.glsl +18 -0
  382. package/src/shaders/Frame.glsl +10 -0
  383. package/src/shaders/Hash.glsl +12 -0
  384. package/src/shaders/Height.glsl +25 -0
  385. package/src/shaders/Infrared.glsl +44 -0
  386. package/src/shaders/Jello.glsl +41 -0
  387. package/src/shaders/LensDistortion.glsl +24 -0
  388. package/src/shaders/Lightning.glsl +257 -0
  389. package/src/shaders/MotionBlur.glsl +71 -0
  390. package/src/shaders/MotionBlurVelocity.glsl +31 -0
  391. package/src/shaders/Noise.glsl +43 -0
  392. package/src/shaders/Normal.glsl +21 -0
  393. package/src/shaders/Phase.glsl +6 -0
  394. package/src/shaders/Precipitation.glsl +199 -0
  395. package/src/shaders/PrecipitationShaftBlur.glsl +21 -0
  396. package/src/shaders/PrecipitationShafts.glsl +84 -0
  397. package/src/shaders/PrecipitationWind.glsl +33 -0
  398. package/src/shaders/RainHaze.glsl +145 -0
  399. package/src/shaders/RainRings.glsl +64 -0
  400. package/src/shaders/SkyTable.glsl +23 -0
  401. package/src/shaders/SnowLine.glsl +97 -0
  402. package/src/shaders/SpeedLines.glsl +61 -0
  403. package/src/shaders/Spotlight.glsl +89 -0
  404. package/src/shaders/SpotlightBeam.glsl +49 -0
  405. package/src/shaders/SpotlightBeamBlur.glsl +27 -0
  406. package/src/shaders/SpotlightCone.glsl +37 -0
  407. package/src/shaders/Super8.glsl +90 -0
  408. package/src/shaders/Technicolor.glsl +30 -0
  409. package/src/shaders/TiltShift.glsl +34 -0
  410. package/src/shaders/Toy.glsl +46 -0
  411. package/src/shaders/ValleyFog.glsl +40 -0
  412. package/src/shaders/WeatherMap.glsl +33 -0
  413. package/src/shaders/WhiteModel.glsl +108 -0
  414. /package/{analog-video.js → src/analog-video.js} +0 -0
  415. /package/{blur.js → src/blur.js} +0 -0
  416. /package/{cloud-cover.js → src/cloud-cover.js} +0 -0
  417. /package/{cloud-map.js → src/cloud-map.js} +0 -0
  418. /package/{cloud-noise.js → src/cloud-noise.js} +0 -0
  419. /package/{clouds.js → src/clouds.js} +0 -0
  420. /package/{color-isolation.js → src/color-isolation.js} +0 -0
  421. /package/{depth-test.js → src/depth-test.js} +0 -0
  422. /package/{digital-video.js → src/digital-video.js} +0 -0
  423. /package/{drone-display.js → src/drone-display.js} +0 -0
  424. /package/{dufour.js → src/dufour.js} +0 -0
  425. /package/{effect.js → src/effect.js} +0 -0
  426. /package/{focus.js → src/focus.js} +0 -0
  427. /package/{frame-clock.js → src/frame-clock.js} +0 -0
  428. /package/{height.js → src/height.js} +0 -0
  429. /package/{infrared.js → src/infrared.js} +0 -0
  430. /package/{jello.js → src/jello.js} +0 -0
  431. /package/{lens-distortion.js → src/lens-distortion.js} +0 -0
  432. /package/{lightning.js → src/lightning.js} +0 -0
  433. /package/{local-frame.js → src/local-frame.js} +0 -0
  434. /package/{motion-blur.js → src/motion-blur.js} +0 -0
  435. /package/{precipitation.js → src/precipitation.js} +0 -0
  436. /package/{rain-rings.js → src/rain-rings.js} +0 -0
  437. /package/{shaders → src/shaders}/Alpenglow.js +0 -0
  438. /package/{shaders → src/shaders}/AnalogVideo.js +0 -0
  439. /package/{shaders → src/shaders}/Beam.js +0 -0
  440. /package/{shaders → src/shaders}/CloudsBlur.js +0 -0
  441. /package/{shaders → src/shaders}/CloudsComposite.js +0 -0
  442. /package/{shaders → src/shaders}/CloudsDensity.js +0 -0
  443. /package/{shaders → src/shaders}/CloudsDepth.js +0 -0
  444. /package/{shaders → src/shaders}/CloudsMarch.js +0 -0
  445. /package/{shaders → src/shaders}/CloudsResolve.js +0 -0
  446. /package/{shaders → src/shaders}/CloudsShadow.js +0 -0
  447. /package/{shaders → src/shaders}/CloudsShadowMap.js +0 -0
  448. /package/{shaders → src/shaders}/CloudsSlab.js +0 -0
  449. /package/{shaders → src/shaders}/ColorIsolation.js +0 -0
  450. /package/{shaders → src/shaders}/DepthEdges.js +0 -0
  451. /package/{shaders → src/shaders}/DigitalVideo.js +0 -0
  452. /package/{shaders → src/shaders}/DroneDisplay.js +0 -0
  453. /package/{shaders → src/shaders}/Dufour.js +0 -0
  454. /package/{shaders → src/shaders}/EyeFromDepth.js +0 -0
  455. /package/{shaders → src/shaders}/Filmic.js +0 -0
  456. /package/{shaders → src/shaders}/Flashlight.js +0 -0
  457. /package/{shaders → src/shaders}/Fog.js +0 -0
  458. /package/{shaders → src/shaders}/Frame.js +0 -0
  459. /package/{shaders → src/shaders}/Hash.js +0 -0
  460. /package/{shaders → src/shaders}/Height.js +0 -0
  461. /package/{shaders → src/shaders}/Infrared.js +0 -0
  462. /package/{shaders → src/shaders}/Jello.js +0 -0
  463. /package/{shaders → src/shaders}/LensDistortion.js +0 -0
  464. /package/{shaders → src/shaders}/Lightning.js +0 -0
  465. /package/{shaders → src/shaders}/MotionBlur.js +0 -0
  466. /package/{shaders → src/shaders}/MotionBlurVelocity.js +0 -0
  467. /package/{shaders → src/shaders}/Noise.js +0 -0
  468. /package/{shaders → src/shaders}/Normal.js +0 -0
  469. /package/{shaders → src/shaders}/Phase.js +0 -0
  470. /package/{shaders → src/shaders}/Precipitation.js +0 -0
  471. /package/{shaders → src/shaders}/PrecipitationShaftBlur.js +0 -0
  472. /package/{shaders → src/shaders}/PrecipitationShafts.js +0 -0
  473. /package/{shaders → src/shaders}/PrecipitationWind.js +0 -0
  474. /package/{shaders → src/shaders}/RainHaze.js +0 -0
  475. /package/{shaders → src/shaders}/RainRings.js +0 -0
  476. /package/{shaders → src/shaders}/Shockwave.js +0 -0
  477. /package/{shaders → src/shaders}/SkyTable.js +0 -0
  478. /package/{shaders → src/shaders}/SnowLine.js +0 -0
  479. /package/{shaders → src/shaders}/SpeedLines.js +0 -0
  480. /package/{shaders → src/shaders}/Spotlight.js +0 -0
  481. /package/{shaders → src/shaders}/SpotlightBeam.js +0 -0
  482. /package/{shaders → src/shaders}/SpotlightBeamBlur.js +0 -0
  483. /package/{shaders → src/shaders}/SpotlightCone.js +0 -0
  484. /package/{shaders → src/shaders}/Super8.js +0 -0
  485. /package/{shaders → src/shaders}/Technicolor.js +0 -0
  486. /package/{shaders → src/shaders}/TiltShift.js +0 -0
  487. /package/{shaders → src/shaders}/Toy.js +0 -0
  488. /package/{shaders → src/shaders}/Trails.js +0 -0
  489. /package/{shaders → src/shaders}/ValleyFog.js +0 -0
  490. /package/{shaders → src/shaders}/WeatherMap.js +0 -0
  491. /package/{shaders → src/shaders}/WhiteModel.js +0 -0
  492. /package/{snow-line.js → src/snow-line.js} +0 -0
  493. /package/{speed-lines.js → src/speed-lines.js} +0 -0
  494. /package/{spotlight.js → src/spotlight.js} +0 -0
  495. /package/{strikes.js → src/strikes.js} +0 -0
  496. /package/{super8.js → src/super8.js} +0 -0
  497. /package/{technicolor.js → src/technicolor.js} +0 -0
  498. /package/{tilt-shift.js → src/tilt-shift.js} +0 -0
  499. /package/{toy.js → src/toy.js} +0 -0
  500. /package/{valley-fog.js → src/valley-fog.js} +0 -0
  501. /package/{weather-map.js → src/weather-map.js} +0 -0
  502. /package/{white-model.js → src/white-model.js} +0 -0
@@ -0,0 +1,201 @@
1
+ import { Cartesian3, Math as CesiumMath, Matrix4 } from '@cesium/core';
2
+ import { PostProcessStage } from '@cesium/engine';
3
+ import { acquireTerrainDepth, releaseTerrainDepth } from './depth-test.js';
4
+ import Effect from './effect.js';
5
+ import { heightUniforms } from './height.js';
6
+ import { LocalFrame } from './local-frame.js';
7
+ import EyeFromDepth from './shaders/EyeFromDepth.js';
8
+ import Height from './shaders/Height.js';
9
+ import Normal from './shaders/Normal.js';
10
+ import SnowLineShader from './shaders/SnowLine.js';
11
+ // the water's level when there is no water: far above everything
12
+ const NO_WATER = 1e9;
13
+ const sunScratch = new Cartesian3();
14
+ /**
15
+ * Snow above an altitude, on the slopes gentle enough to hold it, shaded by
16
+ * the sun.
17
+ */
18
+ export default class SnowLine extends Effect {
19
+ /**
20
+ * @param {import('@cesium/engine').CesiumWidget} viewer
21
+ * @param {{altitude?: number, transition?: number, maxSlope?: number, coverage?: number, patchiness?: number, waterLevel?: number,
22
+ * sunDirection?: Cartesian3, grain?: number, sceneLight?: number, steepCover?: number, origin?: Cartesian3}} [options]
23
+ */
24
+ constructor(viewer, options = {}) {
25
+ super(viewer);
26
+ this.altitude_ = options.altitude ?? 2000;
27
+ this.transition_ = options.transition ?? 200;
28
+ this.maxSlope_ = options.maxSlope ?? 50;
29
+ this.coverage_ = options.coverage ?? 1;
30
+ this.patchiness_ = options.patchiness ?? 0;
31
+ this.waterLevel_ = options.waterLevel;
32
+ this.sunDirection_ = options.sunDirection && Cartesian3.normalize(options.sunDirection, new Cartesian3());
33
+ this.grain_ = options.grain ?? 90;
34
+ this.sceneLight_ = options.sceneLight ?? 0;
35
+ this.steepCover_ = options.steepCover ?? 0.35;
36
+ this.frame_ = new LocalFrame(options.origin);
37
+ }
38
+ /**
39
+ * @override
40
+ * @param {import('@cesium/engine').Scene} scene
41
+ */
42
+ createStage_(scene) {
43
+ const stage = new PostProcessStage({
44
+ fragmentShader: EyeFromDepth + Height + Normal + SnowLineShader,
45
+ uniforms: {
46
+ ...heightUniforms(scene),
47
+ altitude: () => this.altitude_,
48
+ transition: () => this.transition_,
49
+ maxSlope: () => CesiumMath.toRadians(this.maxSlope_),
50
+ coverage: () => this.coverage_,
51
+ patchiness: () => this.patchiness_,
52
+ waterLevel: () => this.waterLevel_ ?? NO_WATER,
53
+ sunEC: () => this.sunDirection_ ? Matrix4.multiplyByPointAsVector(scene.camera.viewMatrix, this.sunDirection_, sunScratch) : sunScratch,
54
+ ownSun: () => this.sunDirection_ ? 1 : 0,
55
+ grain: () => this.grain_,
56
+ sceneLight: () => this.sceneLight_,
57
+ steepCover: () => this.steepCover_,
58
+ localFromEye: () => this.frame_.fromEye(scene),
59
+ },
60
+ });
61
+ // with no coverage the pass would only copy: off
62
+ stage.enabled = this.coverage_ > 0;
63
+ return stage;
64
+ }
65
+ /**
66
+ * @override
67
+ * @param {import('@cesium/engine').Scene} scene
68
+ */
69
+ activated_(scene) {
70
+ this.frame_.anchor(scene);
71
+ acquireTerrainDepth(scene);
72
+ }
73
+ /**
74
+ * @override
75
+ * @param {import('@cesium/engine').Scene} scene
76
+ */
77
+ deactivating_(scene) {
78
+ releaseTerrainDepth(scene);
79
+ }
80
+ /**
81
+ * Altitude of the snow line, in meters above the ellipsoid.
82
+ */
83
+ get altitude() {
84
+ return this.altitude_;
85
+ }
86
+ set altitude(value) {
87
+ this.altitude_ = value;
88
+ this.viewer.scene.requestRender();
89
+ }
90
+ /**
91
+ * Height of the band around the altitude over which the snow thins out, in meters.
92
+ */
93
+ get transition() {
94
+ return this.transition_;
95
+ }
96
+ set transition(value) {
97
+ this.transition_ = value;
98
+ this.viewer.scene.requestRender();
99
+ }
100
+ /**
101
+ * Steepest slope that holds snow, in degrees.
102
+ */
103
+ get maxSlope() {
104
+ return this.maxSlope_;
105
+ }
106
+ set maxSlope(value) {
107
+ this.maxSlope_ = value;
108
+ this.viewer.scene.requestRender();
109
+ }
110
+ /**
111
+ * Opacity of the snow, 0 (none: the stage is off) to 1.
112
+ */
113
+ get coverage() {
114
+ return this.coverage_;
115
+ }
116
+ set coverage(value) {
117
+ this.coverage_ = value;
118
+ if (this.stage_) {
119
+ this.stage_.enabled = value > 0;
120
+ }
121
+ this.viewer.scene.requestRender();
122
+ }
123
+ /**
124
+ * How far the coverage thins the snow into patches, 0 to 1: at 0 the coverage is the snow's opacity, at 1 the share of the ground it
125
+ * covers, the noise leaving the rest bare.
126
+ */
127
+ get patchiness() {
128
+ return this.patchiness_;
129
+ }
130
+ set patchiness(value) {
131
+ this.patchiness_ = value;
132
+ this.viewer.scene.requestRender();
133
+ }
134
+ /**
135
+ * The water's height above the ellipsoid, in meters, or undefined for none: what lies within a quarter meter of it holds no snow,
136
+ * so that a flat lake stays water.
137
+ */
138
+ get waterLevel() {
139
+ return this.waterLevel_;
140
+ }
141
+ set waterLevel(value) {
142
+ this.waterLevel_ = value;
143
+ this.viewer.scene.requestRender();
144
+ }
145
+ /**
146
+ * The direction toward the sun that the snow is shaded by, in world coordinates, or undefined for Cesium's own sun. For a scene lit by a
147
+ * light of its own: `scene.light.direction` is the way the light travels, so give its negation.
148
+ */
149
+ get sunDirection() {
150
+ return this.sunDirection_;
151
+ }
152
+ set sunDirection(value) {
153
+ this.sunDirection_ = value && Cartesian3.normalize(value, new Cartesian3());
154
+ this.viewer.scene.requestRender();
155
+ }
156
+ /**
157
+ * The noise's largest scale, in meters, its finer ones a third and a ninth of it: the size of the patches and of the snow line's
158
+ * irregularities. A few meters for a garden, tens for a mountainside.
159
+ */
160
+ get grain() {
161
+ return this.grain_;
162
+ }
163
+ set grain(value) {
164
+ this.grain_ = value;
165
+ this.viewer.scene.requestRender();
166
+ }
167
+ /**
168
+ * How far the snow's brightness is the scene's own, 0 to 1: at 0 the snow is shaded by the sun alone and stays bright at dusk; at 1 it
169
+ * keeps the scene's shadows and darkens with its light, for a scene lit by a light of its own that goes down at night.
170
+ */
171
+ get sceneLight() {
172
+ return this.sceneLight_;
173
+ }
174
+ set sceneLight(value) {
175
+ this.sceneLight_ = value;
176
+ this.viewer.scene.requestRender();
177
+ }
178
+ /**
179
+ * The thin cover the steep slopes keep at the limit, as a fraction of the coverage, 0 to 1: the rock showing through on a mountain; 0
180
+ * for none on the walls of a building.
181
+ */
182
+ get steepCover() {
183
+ return this.steepCover_;
184
+ }
185
+ set steepCover(value) {
186
+ this.steepCover_ = value;
187
+ this.viewer.scene.requestRender();
188
+ }
189
+ /**
190
+ * The point of the world the noise is laid about, which keeps the snow's patches where they are as the camera moves; the camera's
191
+ * position when the effect is activated if none is given. Keep it within a few kilometers of what is looked at for a grain of a few meters.
192
+ */
193
+ get origin() {
194
+ return this.frame_.origin;
195
+ }
196
+ set origin(value) {
197
+ this.frame_.origin = value;
198
+ this.viewer.scene.requestRender();
199
+ }
200
+ }
201
+ //# sourceMappingURL=snow-line.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snow-line.js","sourceRoot":"","sources":["../src/snow-line.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { PostProcessStage } from '@cesium/engine';
2
+ import Effect from './effect.js';
3
+ /**
4
+ * Speed lines: a zoom blur toward the focus and streaks radiating from it.
5
+ * The streaks change with each frame the scene renders, and do not render it
6
+ * by themselves.
7
+ */
8
+ export default class SpeedLines extends Effect {
9
+ focus_: import("./focus.js").Focus;
10
+ strength_: number;
11
+ /**
12
+ * @param {import('@cesium/engine').CesiumWidget} viewer
13
+ * @param {{focus?: import('./focus.js').Focus, strength?: number}} [options]
14
+ */
15
+ constructor(viewer: import('@cesium/engine').CesiumWidget, options?: {
16
+ focus?: import('./focus.js').Focus;
17
+ strength?: number;
18
+ });
19
+ /**
20
+ * @override
21
+ * @param {import('@cesium/engine').Scene} scene
22
+ */
23
+ createStage_(scene: import('@cesium/engine').Scene): PostProcessStage;
24
+ /**
25
+ * What the lines converge on: a position, a function returning one, or
26
+ * undefined for the middle of the screen.
27
+ */
28
+ get focus(): import("./focus.js").Focus;
29
+ set focus(value: import("./focus.js").Focus);
30
+ /**
31
+ * Strength of the blur and the streaks, 0 to 1.
32
+ */
33
+ get strength(): number;
34
+ set strength(value: number);
35
+ }
36
+ //# sourceMappingURL=speed-lines.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"speed-lines.d.ts","sourceRoot":"","sources":["../src/speed-lines.js"],"names":[],"mappings":"AACA,OAAO,EAAC,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAChD,OAAO,MAAM,MAAM,aAAa,CAAC;AAOjC;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,MAAM;IAOrC,MAAM;IACN,SAAS;IAPhB;;;OAGG;IACH,YAAY,MAAM,EAHP,OAAO,gBAAgB,EAAE,YAGlB,EAAE,OAAO,AAFxB,CAA0E,EAAlE;QAAC,KAAK,CAAC,EAAE,OAAO,YAAY,EAAE,KAAK,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAEjC,EAI/B;IAED;;;OAGG;IACH,YAAY,CAAC,KAAK,EAFP,OAAO,gBAAgB,EAAE,KAElB,oBAYjB;IAED;;;OAGG;IACH,IAAI,KAAK,+BAER;IAED,IAAI,KAAK,CAAC,KAAK,4BAAA,EAGd;IAED;;OAEG;IACH,IAAI,QAAQ,WAEX;IAED,IAAI,QAAQ,CAAC,KAAK,QAAA,EAMjB;CACF"}
@@ -0,0 +1,65 @@
1
+ import { Cartesian4 } from '@cesium/core';
2
+ import { PostProcessStage } from '@cesium/engine';
3
+ import Effect from './effect.js';
4
+ import { eyeFocus } from './focus.js';
5
+ import Hash from './shaders/Hash.js';
6
+ import SpeedLinesShader from './shaders/SpeedLines.js';
7
+ const focusScratch = new Cartesian4();
8
+ /**
9
+ * Speed lines: a zoom blur toward the focus and streaks radiating from it.
10
+ * The streaks change with each frame the scene renders, and do not render it
11
+ * by themselves.
12
+ */
13
+ export default class SpeedLines extends Effect {
14
+ /**
15
+ * @param {import('@cesium/engine').CesiumWidget} viewer
16
+ * @param {{focus?: import('./focus.js').Focus, strength?: number}} [options]
17
+ */
18
+ constructor(viewer, options = {}) {
19
+ super(viewer);
20
+ this.focus_ = options.focus;
21
+ this.strength_ = options.strength ?? 1;
22
+ }
23
+ /**
24
+ * @override
25
+ * @param {import('@cesium/engine').Scene} scene
26
+ */
27
+ createStage_(scene) {
28
+ const stage = new PostProcessStage({
29
+ fragmentShader: Hash + SpeedLinesShader,
30
+ uniforms: {
31
+ focus: () => eyeFocus(scene, this.focus_, focusScratch),
32
+ strength: () => this.strength_,
33
+ time: () => performance.now() / 1000,
34
+ },
35
+ });
36
+ // no pass at all without strength
37
+ stage.enabled = this.strength_ > 0;
38
+ return stage;
39
+ }
40
+ /**
41
+ * What the lines converge on: a position, a function returning one, or
42
+ * undefined for the middle of the screen.
43
+ */
44
+ get focus() {
45
+ return this.focus_;
46
+ }
47
+ set focus(value) {
48
+ this.focus_ = value;
49
+ this.viewer.scene.requestRender();
50
+ }
51
+ /**
52
+ * Strength of the blur and the streaks, 0 to 1.
53
+ */
54
+ get strength() {
55
+ return this.strength_;
56
+ }
57
+ set strength(value) {
58
+ this.strength_ = value;
59
+ if (this.stage_) {
60
+ this.stage_.enabled = value > 0;
61
+ }
62
+ this.viewer.scene.requestRender();
63
+ }
64
+ }
65
+ //# sourceMappingURL=speed-lines.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"speed-lines.js","sourceRoot":"","sources":["../src/speed-lines.js"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAChD,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,OAAO,IAAI,MAAM,mBAAmB,CAAC;AACrC,OAAO,gBAAgB,MAAM,yBAAyB,CAAC;AAEvD,MAAM,YAAY,GAAG,IAAI,UAAU,EAAE,CAAC;AAEtC;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,MAAM;IAC5C;;;OAGG;IACH,YAAY,MAAM,EAAE,OAAO,GAAG,EAAE;QAC9B,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;IACzC,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,KAAK;QAChB,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAAC;YACjC,cAAc,EAAE,IAAI,GAAG,gBAAgB;YACvC,QAAQ,EAAE;gBACR,KAAK,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC;gBACvD,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS;gBAC9B,IAAI,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,IAAI;aACrC;SACF,CAAC,CAAC;QACH,kCAAkC;QAClC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnC,OAAO,KAAK,CAAC;IACf,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,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK;QAChB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IACpC,CAAC;CACF"}
@@ -0,0 +1,84 @@
1
+ import { PostProcessStageComposite } from '@cesium/engine';
2
+ import Effect from './effect.js';
3
+ /**
4
+ * A searchlight above the focus, pointing down: it throws a pool of warm
5
+ * light on the scene, shades the relief under it and lights up the haze in
6
+ * its beam, the rest darkens.
7
+ */
8
+ export default class Spotlight extends Effect {
9
+ focus_: import("./focus.js").Focus;
10
+ power_: number;
11
+ radius_: number;
12
+ softness_: number;
13
+ darkness_: number;
14
+ beam_: number;
15
+ beamAnisotropy_: number;
16
+ /**
17
+ * @param {import('@cesium/engine').CesiumWidget} viewer
18
+ * @param {{focus?: import('./focus.js').Focus, power?: number, radius?: number, softness?: number, darkness?: number, beam?: number, beamAnisotropy?: number}} [options]
19
+ */
20
+ constructor(viewer: import('@cesium/engine').CesiumWidget, options?: {
21
+ focus?: import('./focus.js').Focus;
22
+ power?: number;
23
+ radius?: number;
24
+ softness?: number;
25
+ darkness?: number;
26
+ beam?: number;
27
+ beamAnisotropy?: number;
28
+ });
29
+ /**
30
+ * @override
31
+ * @param {import('@cesium/engine').Scene} scene
32
+ */
33
+ createStage_(scene: import('@cesium/engine').Scene): PostProcessStageComposite;
34
+ /**
35
+ * @override
36
+ * @param {import('@cesium/engine').Scene} scene
37
+ */
38
+ activated_(scene: import('@cesium/engine').Scene): void;
39
+ /**
40
+ * @override
41
+ * @param {import('@cesium/engine').Scene} scene
42
+ */
43
+ deactivating_(scene: import('@cesium/engine').Scene): void;
44
+ /**
45
+ * What to light: a position, a function returning one, or undefined for
46
+ * what is in the middle of the screen.
47
+ */
48
+ get focus(): import("./focus.js").Focus;
49
+ set focus(value: import("./focus.js").Focus);
50
+ /**
51
+ * Brightness of the light, 1 for the searchlight: the pool on the scene
52
+ * and the beam in the air scale with it.
53
+ */
54
+ get power(): number;
55
+ set power(value: number);
56
+ /**
57
+ * Radius of the pool of light on flat ground, in meters. The light hangs
58
+ * twice as high above the focus.
59
+ */
60
+ get radius(): number;
61
+ set radius(value: number);
62
+ /**
63
+ * Width of the penumbra, as a fraction of the radius.
64
+ */
65
+ get softness(): number;
66
+ set softness(value: number);
67
+ /**
68
+ * Darkening outside the light, 0 to 1.
69
+ */
70
+ get darkness(): number;
71
+ set darkness(value: number);
72
+ /**
73
+ * Brightness of the beam in the air, 0 to 1.
74
+ */
75
+ get beam(): number;
76
+ set beam(value: number);
77
+ /**
78
+ * Henyey-Greenstein asymmetry of the haze, 0 to 1: it scatters mostly
79
+ * forward, so the beam is brighter when looking toward the light.
80
+ */
81
+ get beamAnisotropy(): number;
82
+ set beamAnisotropy(value: number);
83
+ }
84
+ //# sourceMappingURL=spotlight.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spotlight.d.ts","sourceRoot":"","sources":["../src/spotlight.js"],"names":[],"mappings":"AACA,OAAO,EAAmB,yBAAyB,EAAC,MAAM,gBAAgB,CAAC;AAE3E,OAAO,MAAM,MAAM,aAAa,CAAC;AAgBjC;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,MAAM;IAOpC,MAAM;IACN,MAAM;IACN,OAAO;IACP,SAAS;IACT,SAAS;IACT,KAAK;IACL,eAAe;IAZtB;;;OAGG;IACH,YAAY,MAAM,EAHP,OAAO,gBAAgB,EAAE,YAGlB,EAAE,OAAO,AAFxB,CAAsK,EAA9J;QAAC,KAAK,CAAC,EAAE,OAAO,YAAY,EAAE,KAAK,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAE7H,EAS/B;IAED;;;OAGG;IACH,YAAY,CAAC,KAAK,EAFP,OAAO,gBAAgB,EAAE,KAElB,6BA2CjB;IAED;;;OAGG;IACH,UAAU,CAAC,KAAK,EAFL,OAAO,gBAAgB,EAAE,KAEpB,QAEf;IAED;;;OAGG;IACH,aAAa,CAAC,KAAK,EAFR,OAAO,gBAAgB,EAAE,KAEjB,QAElB;IAED;;;OAGG;IACH,IAAI,KAAK,+BAER;IAED,IAAI,KAAK,CAAC,KAAK,4BAAA,EAGd;IAED;;;OAGG;IACH,IAAI,KAAK,WAER;IAED,IAAI,KAAK,CAAC,KAAK,QAAA,EAGd;IAED;;;OAGG;IACH,IAAI,MAAM,WAET;IAED,IAAI,MAAM,CAAC,KAAK,QAAA,EAGf;IAED;;OAEG;IACH,IAAI,QAAQ,WAEX;IAED,IAAI,QAAQ,CAAC,KAAK,QAAA,EAGjB;IAED;;OAEG;IACH,IAAI,QAAQ,WAEX;IAED,IAAI,QAAQ,CAAC,KAAK,QAAA,EAGjB;IAED;;OAEG;IACH,IAAI,IAAI,WAEP;IAED,IAAI,IAAI,CAAC,KAAK,QAAA,EAGb;IAED;;;OAGG;IACH,IAAI,cAAc,WAEjB;IAED,IAAI,cAAc,CAAC,KAAK,QAAA,EAGvB;CACF"}
@@ -0,0 +1,175 @@
1
+ import { Cartesian4, PixelDatatype } from '@cesium/core';
2
+ import { PostProcessStage, PostProcessStageComposite } from '@cesium/engine';
3
+ import { acquireTerrainDepth, releaseTerrainDepth } from './depth-test.js';
4
+ import Effect from './effect.js';
5
+ import { eyeFocus } from './focus.js';
6
+ import { heightUniforms } from './height.js';
7
+ import Beam from './shaders/Beam.js';
8
+ import EyeFromDepth from './shaders/EyeFromDepth.js';
9
+ import Filmic from './shaders/Filmic.js';
10
+ import Hash from './shaders/Hash.js';
11
+ import Noise from './shaders/Noise.js';
12
+ import Normal from './shaders/Normal.js';
13
+ import SpotlightShader from './shaders/Spotlight.js';
14
+ import SpotlightBeam from './shaders/SpotlightBeam.js';
15
+ import SpotlightBeamBlur from './shaders/SpotlightBeamBlur.js';
16
+ import SpotlightCone from './shaders/SpotlightCone.js';
17
+ const focusScratch = new Cartesian4();
18
+ /**
19
+ * A searchlight above the focus, pointing down: it throws a pool of warm
20
+ * light on the scene, shades the relief under it and lights up the haze in
21
+ * its beam, the rest darkens.
22
+ */
23
+ export default class Spotlight extends Effect {
24
+ /**
25
+ * @param {import('@cesium/engine').CesiumWidget} viewer
26
+ * @param {{focus?: import('./focus.js').Focus, power?: number, radius?: number, softness?: number, darkness?: number, beam?: number, beamAnisotropy?: number}} [options]
27
+ */
28
+ constructor(viewer, options = {}) {
29
+ super(viewer);
30
+ this.focus_ = options.focus;
31
+ this.power_ = options.power ?? 1;
32
+ this.radius_ = options.radius ?? 200;
33
+ this.softness_ = options.softness ?? 0.5;
34
+ this.darkness_ = options.darkness ?? 0.8;
35
+ this.beam_ = options.beam ?? 0.25;
36
+ this.beamAnisotropy_ = options.beamAnisotropy ?? 0.4;
37
+ }
38
+ /**
39
+ * @override
40
+ * @param {import('@cesium/engine').Scene} scene
41
+ */
42
+ createStage_(scene) {
43
+ // SpotlightCone's uniforms, for all the passes
44
+ const cone = {
45
+ focus: () => eyeFocus(scene, this.focus_, focusScratch),
46
+ up: heightUniforms(scene).up,
47
+ radius: () => this.radius_,
48
+ softness: () => this.softness_,
49
+ };
50
+ // the beam is raymarched at half the resolution, then blurred at it
51
+ const beam = new PostProcessStage({
52
+ fragmentShader: EyeFromDepth + Hash + Noise + SpotlightCone + Beam + SpotlightBeam,
53
+ uniforms: {
54
+ ...cone,
55
+ beam: () => this.beam_,
56
+ beamAnisotropy: () => this.beamAnisotropy_,
57
+ },
58
+ textureScale: 0.5,
59
+ pixelDatatype: PixelDatatype.HALF_FLOAT,
60
+ });
61
+ const blurredBeam = new PostProcessStage({
62
+ fragmentShader: SpotlightBeamBlur,
63
+ uniforms: { beamTexture: beam.name },
64
+ textureScale: 0.5,
65
+ pixelDatatype: PixelDatatype.HALF_FLOAT,
66
+ });
67
+ return new PostProcessStageComposite({
68
+ stages: [
69
+ beam,
70
+ blurredBeam,
71
+ new PostProcessStage({
72
+ fragmentShader: EyeFromDepth + Normal + Filmic + SpotlightCone + SpotlightShader,
73
+ uniforms: {
74
+ ...cone,
75
+ beamTexture: blurredBeam.name,
76
+ darkness: () => this.darkness_,
77
+ beam: () => this.beam_,
78
+ power: () => this.power_,
79
+ },
80
+ }),
81
+ ],
82
+ // the light is drawn over the scene, not over the beam
83
+ inputPreviousStageTexture: false,
84
+ });
85
+ }
86
+ /**
87
+ * @override
88
+ * @param {import('@cesium/engine').Scene} scene
89
+ */
90
+ activated_(scene) {
91
+ acquireTerrainDepth(scene);
92
+ }
93
+ /**
94
+ * @override
95
+ * @param {import('@cesium/engine').Scene} scene
96
+ */
97
+ deactivating_(scene) {
98
+ releaseTerrainDepth(scene);
99
+ }
100
+ /**
101
+ * What to light: a position, a function returning one, or undefined for
102
+ * what is in the middle of the screen.
103
+ */
104
+ get focus() {
105
+ return this.focus_;
106
+ }
107
+ set focus(value) {
108
+ this.focus_ = value;
109
+ this.viewer.scene.requestRender();
110
+ }
111
+ /**
112
+ * Brightness of the light, 1 for the searchlight: the pool on the scene
113
+ * and the beam in the air scale with it.
114
+ */
115
+ get power() {
116
+ return this.power_;
117
+ }
118
+ set power(value) {
119
+ this.power_ = value;
120
+ this.viewer.scene.requestRender();
121
+ }
122
+ /**
123
+ * Radius of the pool of light on flat ground, in meters. The light hangs
124
+ * twice as high above the focus.
125
+ */
126
+ get radius() {
127
+ return this.radius_;
128
+ }
129
+ set radius(value) {
130
+ this.radius_ = value;
131
+ this.viewer.scene.requestRender();
132
+ }
133
+ /**
134
+ * Width of the penumbra, as a fraction of the radius.
135
+ */
136
+ get softness() {
137
+ return this.softness_;
138
+ }
139
+ set softness(value) {
140
+ this.softness_ = value;
141
+ this.viewer.scene.requestRender();
142
+ }
143
+ /**
144
+ * Darkening outside the light, 0 to 1.
145
+ */
146
+ get darkness() {
147
+ return this.darkness_;
148
+ }
149
+ set darkness(value) {
150
+ this.darkness_ = value;
151
+ this.viewer.scene.requestRender();
152
+ }
153
+ /**
154
+ * Brightness of the beam in the air, 0 to 1.
155
+ */
156
+ get beam() {
157
+ return this.beam_;
158
+ }
159
+ set beam(value) {
160
+ this.beam_ = value;
161
+ this.viewer.scene.requestRender();
162
+ }
163
+ /**
164
+ * Henyey-Greenstein asymmetry of the haze, 0 to 1: it scatters mostly
165
+ * forward, so the beam is brighter when looking toward the light.
166
+ */
167
+ get beamAnisotropy() {
168
+ return this.beamAnisotropy_;
169
+ }
170
+ set beamAnisotropy(value) {
171
+ this.beamAnisotropy_ = value;
172
+ this.viewer.scene.requestRender();
173
+ }
174
+ }
175
+ //# sourceMappingURL=spotlight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spotlight.js","sourceRoot":"","sources":["../src/spotlight.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export declare const MAX_STRIKES = 4;
2
+ export declare const STRIKE_LIFE = 1;
3
+ /**
4
+ * Drops the strikes that are over and, at random, starts a new one: a Poisson process of the given
5
+ * rate, whatever the time between the frames.
6
+ * @template {{start: number}} T
7
+ * @param {T[]} strikes
8
+ * @param {number} now seconds
9
+ * @param {number} dt seconds since the last call
10
+ * @param {number} rate strikes per second
11
+ * @param {() => number} random in [0, 1)
12
+ * @param {(now: number) => T | undefined} create
13
+ */
14
+ export declare function advanceStrikes<T extends {
15
+ start: number;
16
+ }>(strikes: T[], now: number, dt: number, rate: number, random: () => number, create: (now: number) => T | undefined): void;
17
+ //# sourceMappingURL=strikes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strikes.d.ts","sourceRoot":"","sources":["../src/strikes.js"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,WAAW,IAAI,CAAC;AAE7B;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CARC,CAAC,SAAlB;IAAC,KAAK,EAAE,MAAM,CAAA;CAAI,EAQD,OAAO,EAP3B,CAAC,EAO0B,EAAE,GAAG,EANhC,MAMgC,EAAE,EAAE,EALpC,MAKoC,EAAE,IAAI,EAJ1C,MAI0C,EAAE,MAAM,EAHlD,MAAM,MAG4C,EAAE,MAAM,EAF1D,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC,GAAG,SAEqC,QAapE"}
@@ -0,0 +1,30 @@
1
+ // the strikes of a storm are few and short-lived: at most this many at once, each one over after this
2
+ // many seconds
3
+ export const MAX_STRIKES = 4;
4
+ export const STRIKE_LIFE = 1;
5
+ /**
6
+ * Drops the strikes that are over and, at random, starts a new one: a Poisson process of the given
7
+ * rate, whatever the time between the frames.
8
+ * @template {{start: number}} T
9
+ * @param {T[]} strikes
10
+ * @param {number} now seconds
11
+ * @param {number} dt seconds since the last call
12
+ * @param {number} rate strikes per second
13
+ * @param {() => number} random in [0, 1)
14
+ * @param {(now: number) => T | undefined} create
15
+ */
16
+ export function advanceStrikes(strikes, now, dt, rate, random, create) {
17
+ for (let i = strikes.length - 1; i >= 0; i--) {
18
+ if (now - strikes[i].start > STRIKE_LIFE) {
19
+ strikes.splice(i, 1);
20
+ }
21
+ }
22
+ if (strikes.length < MAX_STRIKES && random() < 1 - Math.exp(-rate * dt)) {
23
+ // the create function declines a strike where it does not strike
24
+ const strike = create(now);
25
+ if (strike) {
26
+ strikes.push(strike);
27
+ }
28
+ }
29
+ }
30
+ //# sourceMappingURL=strikes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strikes.js","sourceRoot":"","sources":["../src/strikes.js"],"names":[],"mappings":"AAAA,sGAAsG;AACtG,eAAe;AACf,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC;AAC7B,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC;AAE7B;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;IACnE,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,IAAI,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,WAAW,EAAE,CAAC;YACzC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,WAAW,IAAI,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC;QACxE,iEAAiE;QACjE,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;AACH,CAAC"}