@cesium/engine 11.0.0 → 12.0.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 (774) hide show
  1. package/Build/Workers/{chunk-HFPMX5L2.js → chunk-2B5H7KIN.js} +1 -1
  2. package/Build/Workers/{chunk-KKAEXHDY.js → chunk-2RHMHHJH.js} +2 -2
  3. package/Build/Workers/{chunk-AI3O7UN2.js → chunk-3OHDXGFC.js} +6 -6
  4. package/Build/Workers/{chunk-TTI2SUWJ.js → chunk-3OM5QZSI.js} +2 -2
  5. package/Build/Workers/{chunk-2EDC3QGH.js → chunk-3UJV3W4Y.js} +1 -1
  6. package/Build/Workers/{chunk-N3BIL6WA.js → chunk-3X2LXRHU.js} +13 -13
  7. package/Build/Workers/{chunk-FJT3ERV7.js → chunk-4ESQ3DN2.js} +9 -9
  8. package/Build/Workers/{chunk-HO2NTC7I.js → chunk-4IQPX22D.js} +6 -6
  9. package/Build/Workers/{chunk-L6FARMF6.js → chunk-4XPGN5Y7.js} +11 -11
  10. package/Build/Workers/{chunk-4NBRIKB3.js → chunk-56LALJCU.js} +2 -2
  11. package/Build/Workers/{chunk-HC7RYWPZ.js → chunk-5FSKL7US.js} +12 -12
  12. package/Build/Workers/{chunk-54VC7SCM.js → chunk-5YKJKOFE.js} +7 -7
  13. package/Build/Workers/{chunk-6ZREIBKS.js → chunk-62YGXNGC.js} +7 -7
  14. package/Build/Workers/{chunk-BH5ZEN4I.js → chunk-6DYMJ57Z.js} +10 -10
  15. package/Build/Workers/{chunk-AS7P4BHI.js → chunk-7DSVCRFD.js} +6 -6
  16. package/Build/Workers/{chunk-6FFGOENI.js → chunk-7OISMGQF.js} +46 -23
  17. package/Build/Workers/{chunk-BJ3WF5RW.js → chunk-AL7BHP36.js} +6 -6
  18. package/Build/Workers/{chunk-WQRXRDCZ.js → chunk-AOCENJVH.js} +11 -11
  19. package/Build/Workers/{chunk-2MKRG7L7.js → chunk-ARTM66DL.js} +5 -5
  20. package/Build/Workers/{chunk-VSFFJGTA.js → chunk-B4AZL6Q4.js} +5 -5
  21. package/Build/Workers/{chunk-5IY5BXCT.js → chunk-BQNTN4CC.js} +83 -79
  22. package/Build/Workers/{chunk-AUM45VEG.js → chunk-C4IAULHW.js} +15 -15
  23. package/Build/Workers/{chunk-6PJIHPQB.js → chunk-ES6Q5HWK.js} +13 -13
  24. package/Build/Workers/{chunk-DVAIU7A4.js → chunk-GKBICLGC.js} +19 -23
  25. package/Build/Workers/{chunk-IBG5FVXC.js → chunk-GMGUR5GM.js} +4 -4
  26. package/Build/Workers/{chunk-OOA6GXKD.js → chunk-GUW6BS72.js} +7 -7
  27. package/Build/Workers/{chunk-KFW4UNQH.js → chunk-GYHHNFW5.js} +15 -25
  28. package/Build/Workers/{chunk-GOHDOWU5.js → chunk-GZG526CC.js} +14 -14
  29. package/Build/Workers/{chunk-BZXF3GNX.js → chunk-HILBDZUP.js} +2 -2
  30. package/Build/Workers/{chunk-BBO6BGLC.js → chunk-HYUTWUXN.js} +13 -13
  31. package/Build/Workers/{chunk-HA6TZ3XT.js → chunk-IL6SMMDD.js} +4 -4
  32. package/Build/Workers/{chunk-T4MB73MC.js → chunk-IT6AWHFV.js} +2 -2
  33. package/Build/Workers/{chunk-SRZJCF7G.js → chunk-J64XIF5C.js} +10 -36
  34. package/Build/Workers/{chunk-BUOFSNFW.js → chunk-JGGZ3H4W.js} +1 -1
  35. package/Build/Workers/{chunk-SIZXFNJY.js → chunk-JRULXFCC.js} +5 -5
  36. package/Build/Workers/{chunk-QGT2GMOK.js → chunk-MSY2AAW2.js} +4 -4
  37. package/Build/Workers/{chunk-XLCZE6DD.js → chunk-QXBRZZQS.js} +10 -10
  38. package/Build/Workers/{chunk-JYUCC5NV.js → chunk-SXJ37VUC.js} +7 -7
  39. package/Build/Workers/{chunk-OC4MYPVW.js → chunk-T6FZFMTF.js} +2 -2
  40. package/Build/Workers/{chunk-OSCHEWSG.js → chunk-TQK4D4AR.js} +7 -7
  41. package/Build/Workers/{chunk-2RZYNSMR.js → chunk-US3L7FXC.js} +7 -9
  42. package/Build/Workers/{chunk-RFQYEYAL.js → chunk-VGT4ONMC.js} +18 -20
  43. package/Build/Workers/{chunk-VHJ5ESXF.js → chunk-VJVTWBXB.js} +1 -1
  44. package/Build/Workers/{chunk-RJF5ZP76.js → chunk-VQZNBD3T.js} +4 -4
  45. package/Build/Workers/{chunk-WXDGOYTT.js → chunk-VUCVRDLD.js} +7 -7
  46. package/Build/Workers/{chunk-DJXXI7UF.js → chunk-W2Q2F7JS.js} +5 -5
  47. package/Build/Workers/{chunk-HZPMWR4H.js → chunk-WQCX7U65.js} +7 -7
  48. package/Build/Workers/{chunk-HFMJM3SX.js → chunk-WW5RTJ72.js} +1 -1
  49. package/Build/Workers/{chunk-IXLNNST6.js → chunk-X67KKHI7.js} +4 -4
  50. package/Build/Workers/{chunk-4TK5YR6Q.js → chunk-X7VRF25X.js} +5 -5
  51. package/Build/Workers/{chunk-O5SSW3B3.js → chunk-YANQEHO5.js} +6 -6
  52. package/Build/Workers/{chunk-HBZSCVZC.js → chunk-ZZNBFQL5.js} +11 -11
  53. package/Build/Workers/combineGeometry.js +23 -25
  54. package/Build/Workers/createBoxGeometry.js +16 -16
  55. package/Build/Workers/createBoxOutlineGeometry.js +14 -14
  56. package/Build/Workers/createCircleGeometry.js +24 -24
  57. package/Build/Workers/createCircleOutlineGeometry.js +17 -17
  58. package/Build/Workers/createCoplanarPolygonGeometry.js +31 -31
  59. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +29 -29
  60. package/Build/Workers/createCorridorGeometry.js +27 -27
  61. package/Build/Workers/createCorridorOutlineGeometry.js +26 -26
  62. package/Build/Workers/createCylinderGeometry.js +18 -18
  63. package/Build/Workers/createCylinderOutlineGeometry.js +16 -16
  64. package/Build/Workers/createEllipseGeometry.js +24 -24
  65. package/Build/Workers/createEllipseOutlineGeometry.js +17 -17
  66. package/Build/Workers/createEllipsoidGeometry.js +17 -17
  67. package/Build/Workers/createEllipsoidOutlineGeometry.js +16 -16
  68. package/Build/Workers/createFrustumGeometry.js +16 -16
  69. package/Build/Workers/createFrustumOutlineGeometry.js +16 -16
  70. package/Build/Workers/createGeometry.js +25 -26
  71. package/Build/Workers/createGroundPolylineGeometry.js +20 -20
  72. package/Build/Workers/createPlaneGeometry.js +14 -14
  73. package/Build/Workers/createPlaneOutlineGeometry.js +13 -13
  74. package/Build/Workers/createPolygonGeometry.js +36 -40
  75. package/Build/Workers/createPolygonOutlineGeometry.js +40 -48
  76. package/Build/Workers/createPolylineGeometry.js +23 -23
  77. package/Build/Workers/createPolylineVolumeGeometry.js +32 -31
  78. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +25 -25
  79. package/Build/Workers/createRectangleGeometry.js +28 -30
  80. package/Build/Workers/createRectangleOutlineGeometry.js +19 -19
  81. package/Build/Workers/createSimplePolylineGeometry.js +21 -21
  82. package/Build/Workers/createSphereGeometry.js +17 -17
  83. package/Build/Workers/createSphereOutlineGeometry.js +16 -16
  84. package/Build/Workers/createTaskProcessorWorker.js +3 -3
  85. package/Build/Workers/createVectorTileClampedPolylines.js +13 -13
  86. package/Build/Workers/createVectorTileGeometries.js +22 -22
  87. package/Build/Workers/createVectorTilePoints.js +12 -12
  88. package/Build/Workers/createVectorTilePolygons.js +20 -20
  89. package/Build/Workers/createVectorTilePolylines.js +13 -13
  90. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +22 -26
  91. package/Build/Workers/createVerticesFromHeightmap.js +22 -26
  92. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +42 -32
  93. package/Build/Workers/createWallGeometry.js +22 -22
  94. package/Build/Workers/createWallOutlineGeometry.js +21 -21
  95. package/Build/Workers/decodeDraco.js +11 -11
  96. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
  97. package/Build/Workers/decodeI3S.js +10 -10
  98. package/Build/Workers/transcodeKTX2.js +7 -7
  99. package/Build/Workers/transferTypedArrayTest.js +1 -1
  100. package/Build/Workers/upsampleQuantizedTerrainMesh.js +20 -20
  101. package/Source/Core/ApproximateTerrainHeights.js +15 -15
  102. package/Source/Core/ArcGISTiledElevationTerrainProvider.js +33 -35
  103. package/Source/Core/AttributeCompression.js +12 -12
  104. package/Source/Core/AxisAlignedBoundingBox.js +2 -2
  105. package/Source/Core/BingMapsGeocoderService.js +1 -1
  106. package/Source/Core/BoundingRectangle.js +3 -3
  107. package/Source/Core/BoundingSphere.js +45 -45
  108. package/Source/Core/BoxGeometry.js +6 -6
  109. package/Source/Core/BoxOutlineGeometry.js +3 -3
  110. package/Source/Core/Cartesian2.js +7 -7
  111. package/Source/Core/Cartesian3.js +20 -20
  112. package/Source/Core/Cartesian4.js +8 -8
  113. package/Source/Core/Cartographic.js +6 -6
  114. package/Source/Core/CatmullRomSpline.js +6 -6
  115. package/Source/Core/CesiumTerrainProvider.js +66 -68
  116. package/Source/Core/Check.d.ts +3 -3
  117. package/Source/Core/Check.js +11 -11
  118. package/Source/Core/CircleGeometry.js +6 -6
  119. package/Source/Core/CircleOutlineGeometry.js +4 -4
  120. package/Source/Core/Clock.js +4 -4
  121. package/Source/Core/Color.js +12 -9
  122. package/Source/Core/ColorGeometryInstanceAttribute.js +1 -1
  123. package/Source/Core/ComponentDatatype.js +4 -4
  124. package/Source/Core/CompressedTextureBuffer.js +2 -2
  125. package/Source/Core/ConstantSpline.js +1 -1
  126. package/Source/Core/CoplanarPolygonGeometry.js +44 -41
  127. package/Source/Core/CoplanarPolygonGeometryLibrary.js +5 -5
  128. package/Source/Core/CoplanarPolygonOutlineGeometry.js +6 -6
  129. package/Source/Core/CorridorGeometry.js +77 -77
  130. package/Source/Core/CorridorGeometryLibrary.js +48 -48
  131. package/Source/Core/CorridorOutlineGeometry.js +16 -16
  132. package/Source/Core/CullingVolume.js +4 -4
  133. package/Source/Core/CustomHeightmapTerrainProvider.js +13 -13
  134. package/Source/Core/CylinderGeometry.js +8 -8
  135. package/Source/Core/CylinderGeometryLibrary.js +1 -1
  136. package/Source/Core/CylinderOutlineGeometry.js +4 -4
  137. package/Source/Core/DeveloperError.js +1 -1
  138. package/Source/Core/DistanceDisplayConditionGeometryInstanceAttribute.js +20 -21
  139. package/Source/Core/DoubleEndedPriorityQueue.js +2 -2
  140. package/Source/Core/EarthOrientationParameters.js +21 -25
  141. package/Source/Core/EarthOrientationParametersSample.js +1 -1
  142. package/Source/Core/EllipseGeometry.js +55 -56
  143. package/Source/Core/EllipseGeometryLibrary.js +12 -12
  144. package/Source/Core/EllipseOutlineGeometry.js +19 -19
  145. package/Source/Core/Ellipsoid.js +25 -33
  146. package/Source/Core/EllipsoidGeodesic.js +18 -17
  147. package/Source/Core/EllipsoidGeometry.js +9 -8
  148. package/Source/Core/EllipsoidOutlineGeometry.js +4 -4
  149. package/Source/Core/EllipsoidRhumbLine.js +33 -32
  150. package/Source/Core/EllipsoidTangentPlane.js +16 -16
  151. package/Source/Core/EllipsoidTerrainProvider.js +11 -10
  152. package/Source/Core/EllipsoidalOccluder.js +110 -130
  153. package/Source/Core/FeatureDetection.js +4 -4
  154. package/Source/Core/FrustumGeometry.js +15 -15
  155. package/Source/Core/FrustumOutlineGeometry.js +4 -4
  156. package/Source/Core/GeographicTilingScheme.js +6 -6
  157. package/Source/Core/Geometry.js +15 -17
  158. package/Source/Core/GeometryAttribute.js +4 -9
  159. package/Source/Core/GeometryAttributes.js +6 -6
  160. package/Source/Core/GeometryInstance.js +3 -4
  161. package/Source/Core/GeometryInstanceAttribute.js +1 -6
  162. package/Source/Core/GeometryPipeline.js +133 -137
  163. package/Source/Core/GoogleEarthEnterpriseMetadata.js +19 -20
  164. package/Source/Core/GoogleEarthEnterpriseTerrainData.js +25 -24
  165. package/Source/Core/GoogleEarthEnterpriseTerrainProvider.js +17 -21
  166. package/Source/Core/GoogleEarthEnterpriseTileInformation.js +2 -2
  167. package/Source/Core/GoogleMaps.js +1 -1
  168. package/Source/Core/GregorianDate.js +4 -4
  169. package/Source/Core/GroundPolylineGeometry.js +104 -104
  170. package/Source/Core/HeadingPitchRoll.js +7 -7
  171. package/Source/Core/HeightmapTerrainData.js +58 -54
  172. package/Source/Core/HeightmapTessellator.js +22 -23
  173. package/Source/Core/HermitePolynomialApproximation.js +8 -8
  174. package/Source/Core/HermiteSpline.js +11 -11
  175. package/Source/Core/HilbertOrder.js +1 -1
  176. package/Source/Core/Iau2006XysData.js +6 -6
  177. package/Source/Core/IauOrientationAxes.js +2 -2
  178. package/Source/Core/IauOrientationParameters.js +1 -1
  179. package/Source/Core/IndexDatatype.js +5 -5
  180. package/Source/Core/IntersectionTests.js +36 -78
  181. package/Source/Core/Intersections2D.js +3 -3
  182. package/Source/Core/Ion.js +1 -1
  183. package/Source/Core/IonGeocoderService.js +2 -2
  184. package/Source/Core/IonResource.js +5 -5
  185. package/Source/Core/Iso8601.js +3 -3
  186. package/Source/Core/JulianDate.js +23 -33
  187. package/Source/Core/KTX2Transcoder.js +2 -2
  188. package/Source/Core/LagrangePolynomialApproximation.js +1 -1
  189. package/Source/Core/LinearApproximation.js +4 -4
  190. package/Source/Core/LinearSpline.js +2 -2
  191. package/Source/Core/Math.js +6 -4
  192. package/Source/Core/Matrix2.js +3 -3
  193. package/Source/Core/Matrix3.js +16 -16
  194. package/Source/Core/Matrix4.js +31 -31
  195. package/Source/Core/MorphWeightSpline.js +2 -2
  196. package/Source/Core/NearFarScalar.js +1 -1
  197. package/Source/Core/Occluder.js +52 -56
  198. package/Source/Core/OpenCageGeocoderService.js +2 -2
  199. package/Source/Core/OrientedBoundingBox.js +52 -51
  200. package/Source/Core/OrthographicFrustum.js +11 -11
  201. package/Source/Core/OrthographicOffCenterFrustum.js +17 -17
  202. package/Source/Core/PeliasGeocoderService.js +1 -1
  203. package/Source/Core/PerspectiveFrustum.js +61 -55
  204. package/Source/Core/PerspectiveOffCenterFrustum.js +58 -59
  205. package/Source/Core/PinBuilder.js +1 -1
  206. package/Source/Core/PixelFormat.js +6 -6
  207. package/Source/Core/Plane.js +9 -9
  208. package/Source/Core/PlaneGeometry.js +1 -1
  209. package/Source/Core/PolygonGeometry.js +95 -94
  210. package/Source/Core/PolygonGeometryLibrary.js +49 -51
  211. package/Source/Core/PolygonOutlineGeometry.js +49 -51
  212. package/Source/Core/PolygonPipeline.js +31 -31
  213. package/Source/Core/PolylineGeometry.js +10 -10
  214. package/Source/Core/PolylinePipeline.js +25 -25
  215. package/Source/Core/PolylineVolumeGeometry.js +9 -9
  216. package/Source/Core/PolylineVolumeGeometryLibrary.js +53 -53
  217. package/Source/Core/PolylineVolumeOutlineGeometry.js +6 -6
  218. package/Source/Core/QuadraticRealPolynomial.js +1 -1
  219. package/Source/Core/QuantizedMeshTerrainData.js +28 -28
  220. package/Source/Core/QuarticRealPolynomial.js +1 -1
  221. package/Source/Core/Quaternion.js +19 -19
  222. package/Source/Core/QuaternionSpline.js +2 -2
  223. package/Source/Core/Rectangle.js +34 -13
  224. package/Source/Core/RectangleCollisionChecker.js +3 -3
  225. package/Source/Core/RectangleGeometry.js +55 -56
  226. package/Source/Core/RectangleGeometryLibrary.js +8 -8
  227. package/Source/Core/RectangleOutlineGeometry.js +20 -20
  228. package/Source/Core/RequestScheduler.js +6 -6
  229. package/Source/Core/Resource.js +24 -24
  230. package/Source/Core/S2Cell.js +16 -80
  231. package/Source/Core/ScreenSpaceEventHandler.js +54 -53
  232. package/Source/Core/Simon1994PlanetaryPositions.js +13 -13
  233. package/Source/Core/SimplePolylineGeometry.js +7 -7
  234. package/Source/Core/SphereGeometry.js +2 -2
  235. package/Source/Core/SphereOutlineGeometry.js +3 -3
  236. package/Source/Core/Spline.js +1 -1
  237. package/Source/Core/SteppedSpline.js +1 -1
  238. package/Source/Core/Stereographic.js +9 -9
  239. package/Source/Core/TaskProcessor.js +13 -13
  240. package/Source/Core/TerrainEncoding.js +33 -38
  241. package/Source/Core/TerrainMesh.js +1 -1
  242. package/Source/Core/TerrainProvider.js +12 -12
  243. package/Source/Core/TileAvailability.js +28 -28
  244. package/Source/Core/TileProviderError.js +5 -5
  245. package/Source/Core/TilingScheme.js +1 -1
  246. package/Source/Core/TimeInterval.js +4 -4
  247. package/Source/Core/TimeIntervalCollection.js +16 -15
  248. package/Source/Core/Tipsify.js +2 -2
  249. package/Source/Core/Transforms.js +52 -54
  250. package/Source/Core/TranslationRotationScale.js +1 -1
  251. package/Source/Core/TridiagonalSystemSolver.js +4 -4
  252. package/Source/Core/VRTheWorldTerrainProvider.js +28 -26
  253. package/Source/Core/VertexFormat.js +6 -6
  254. package/Source/Core/VerticalExaggeration.js +4 -4
  255. package/Source/Core/VideoSynchronizer.js +1 -1
  256. package/Source/Core/WallGeometry.js +18 -18
  257. package/Source/Core/WallGeometryLibrary.js +7 -7
  258. package/Source/Core/WallOutlineGeometry.js +8 -8
  259. package/Source/Core/WebMercatorProjection.js +5 -6
  260. package/Source/Core/WebMercatorTilingScheme.js +13 -13
  261. package/Source/Core/WireframeIndexGenerator.js +8 -8
  262. package/Source/Core/arrayRemoveDuplicates.js +1 -1
  263. package/Source/Core/buildModuleUrl.js +2 -2
  264. package/Source/Core/decodeGoogleEarthEnterpriseData.js +4 -4
  265. package/Source/Core/decodeVectorPolylinePositions.js +4 -4
  266. package/Source/Core/destroyObject.js +1 -1
  267. package/Source/Core/getJsonFromTypedArray.js +1 -1
  268. package/Source/Core/getMagic.js +1 -1
  269. package/Source/Core/loadImageFromTypedArray.js +2 -2
  270. package/Source/Core/loadKTX2.js +1 -1
  271. package/Source/Core/pointInsideTriangle.js +1 -1
  272. package/Source/Core/resizeImageToNextPowerOfTwo.js +1 -1
  273. package/Source/Core/sampleTerrain.js +7 -7
  274. package/Source/Core/sampleTerrainMostDetailed.js +7 -7
  275. package/Source/Core/scaleToGeodeticSurface.js +3 -3
  276. package/Source/Core/srgbToLinear.js +1 -1
  277. package/Source/Core/writeTextToCanvas.js +1 -1
  278. package/Source/DataSources/BillboardGraphics.js +13 -13
  279. package/Source/DataSources/BillboardVisualizer.js +24 -24
  280. package/Source/DataSources/BoxGeometryUpdater.js +33 -32
  281. package/Source/DataSources/BoxGraphics.js +3 -3
  282. package/Source/DataSources/CallbackPositionProperty.js +173 -0
  283. package/Source/DataSources/Cesium3DTilesetGraphics.js +1 -1
  284. package/Source/DataSources/Cesium3DTilesetVisualizer.js +6 -6
  285. package/Source/DataSources/CheckerboardMaterialProperty.js +2 -2
  286. package/Source/DataSources/ColorMaterialProperty.js +1 -1
  287. package/Source/DataSources/CompositeEntityCollection.js +14 -15
  288. package/Source/DataSources/CompositeMaterialProperty.js +5 -7
  289. package/Source/DataSources/CompositePositionProperty.js +4 -5
  290. package/Source/DataSources/CompositeProperty.js +2 -2
  291. package/Source/DataSources/ConstantPositionProperty.js +2 -2
  292. package/Source/DataSources/CorridorGeometryUpdater.js +61 -56
  293. package/Source/DataSources/CorridorGraphics.js +6 -6
  294. package/Source/DataSources/CylinderGeometryUpdater.js +42 -40
  295. package/Source/DataSources/CylinderGraphics.js +4 -4
  296. package/Source/DataSources/CzmlDataSource.js +365 -368
  297. package/Source/DataSources/DataSourceCollection.js +1 -1
  298. package/Source/DataSources/DataSourceDisplay.js +24 -24
  299. package/Source/DataSources/DynamicGeometryBatch.js +2 -2
  300. package/Source/DataSources/DynamicGeometryUpdater.js +14 -18
  301. package/Source/DataSources/EllipseGeometryUpdater.js +67 -63
  302. package/Source/DataSources/EllipseGraphics.js +7 -7
  303. package/Source/DataSources/EllipsoidGeometryUpdater.js +88 -86
  304. package/Source/DataSources/EllipsoidGraphics.js +5 -5
  305. package/Source/DataSources/Entity.js +13 -13
  306. package/Source/DataSources/EntityCluster.js +29 -27
  307. package/Source/DataSources/EntityCollection.js +7 -7
  308. package/Source/DataSources/EntityView.js +23 -23
  309. package/Source/DataSources/GeoJsonDataSource.js +25 -25
  310. package/Source/DataSources/GeometryUpdater.js +9 -10
  311. package/Source/DataSources/GeometryUpdaterSet.js +3 -3
  312. package/Source/DataSources/GeometryVisualizer.js +65 -71
  313. package/Source/DataSources/GpxDataSource.js +10 -10
  314. package/Source/DataSources/GridMaterialProperty.js +5 -5
  315. package/Source/DataSources/GroundGeometryUpdater.js +6 -6
  316. package/Source/DataSources/ImageMaterialProperty.js +2 -2
  317. package/Source/DataSources/KmlDataSource.js +212 -212
  318. package/Source/DataSources/LabelGraphics.js +14 -14
  319. package/Source/DataSources/LabelVisualizer.js +24 -24
  320. package/Source/DataSources/ModelGraphics.js +38 -17
  321. package/Source/DataSources/ModelVisualizer.js +41 -32
  322. package/Source/DataSources/NodeTransformationProperty.js +3 -3
  323. package/Source/DataSources/PathGraphics.js +2 -2
  324. package/Source/DataSources/PathVisualizer.js +99 -35
  325. package/Source/DataSources/PlaneGeometryUpdater.js +38 -37
  326. package/Source/DataSources/PlaneGraphics.js +2 -2
  327. package/Source/DataSources/PointGraphics.js +8 -8
  328. package/Source/DataSources/PointVisualizer.js +29 -29
  329. package/Source/DataSources/PolygonGeometryUpdater.js +68 -64
  330. package/Source/DataSources/PolygonGraphics.js +9 -9
  331. package/Source/DataSources/PolylineArrowMaterialProperty.js +1 -1
  332. package/Source/DataSources/PolylineDashMaterialProperty.js +4 -4
  333. package/Source/DataSources/PolylineGeometryUpdater.js +39 -44
  334. package/Source/DataSources/PolylineGlowMaterialProperty.js +3 -3
  335. package/Source/DataSources/PolylineGraphics.js +4 -4
  336. package/Source/DataSources/PolylineOutlineMaterialProperty.js +3 -3
  337. package/Source/DataSources/PolylineVisualizer.js +39 -43
  338. package/Source/DataSources/PolylineVolumeGeometryUpdater.js +70 -68
  339. package/Source/DataSources/PolylineVolumeGraphics.js +2 -2
  340. package/Source/DataSources/PositionProperty.js +4 -3
  341. package/Source/DataSources/PositionPropertyArray.js +3 -3
  342. package/Source/DataSources/Property.js +1 -1
  343. package/Source/DataSources/PropertyArray.js +1 -1
  344. package/Source/DataSources/PropertyBag.js +5 -5
  345. package/Source/DataSources/RectangleGeometryUpdater.js +68 -63
  346. package/Source/DataSources/RectangleGraphics.js +6 -6
  347. package/Source/DataSources/ReferenceProperty.js +6 -6
  348. package/Source/DataSources/Rotation.js +2 -2
  349. package/Source/DataSources/SampledPositionProperty.js +6 -6
  350. package/Source/DataSources/SampledProperty.js +16 -16
  351. package/Source/DataSources/ScaledPositionProperty.js +2 -2
  352. package/Source/DataSources/StaticGeometryColorBatch.js +41 -41
  353. package/Source/DataSources/StaticGeometryPerMaterialBatch.js +40 -40
  354. package/Source/DataSources/StaticGroundGeometryColorBatch.js +26 -27
  355. package/Source/DataSources/StaticGroundGeometryPerMaterialBatch.js +46 -44
  356. package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +44 -43
  357. package/Source/DataSources/StaticOutlineGeometryBatch.js +28 -29
  358. package/Source/DataSources/StripeMaterialProperty.js +2 -2
  359. package/Source/DataSources/TerrainOffsetProperty.js +11 -11
  360. package/Source/DataSources/TimeIntervalCollectionPositionProperty.js +28 -30
  361. package/Source/DataSources/TimeIntervalCollectionProperty.js +1 -1
  362. package/Source/DataSources/VelocityOrientationProperty.js +3 -3
  363. package/Source/DataSources/VelocityVectorProperty.js +4 -4
  364. package/Source/DataSources/WallGeometryUpdater.js +25 -25
  365. package/Source/DataSources/WallGraphics.js +4 -4
  366. package/Source/DataSources/createPropertyDescriptor.js +3 -3
  367. package/Source/DataSources/exportKml.js +90 -86
  368. package/Source/DataSources/getElement.js +1 -1
  369. package/Source/DataSources/heightReferenceOnEntityPropertyChanged.js +4 -4
  370. package/Source/Renderer/AutomaticUniforms.js +14 -1
  371. package/Source/Renderer/Buffer.js +18 -18
  372. package/Source/Renderer/ClearCommand.js +1 -1
  373. package/Source/Renderer/ComputeEngine.js +1 -1
  374. package/Source/Renderer/Context.js +40 -40
  375. package/Source/Renderer/CubeMap.js +109 -32
  376. package/Source/Renderer/CubeMapFace.js +109 -32
  377. package/Source/Renderer/DrawCommand.js +50 -5
  378. package/Source/Renderer/Framebuffer.js +48 -49
  379. package/Source/Renderer/FramebufferManager.js +40 -34
  380. package/Source/Renderer/MultisampleFramebuffer.js +35 -14
  381. package/Source/Renderer/RenderState.js +36 -36
  382. package/Source/Renderer/Renderbuffer.js +3 -3
  383. package/Source/Renderer/Sampler.js +2 -2
  384. package/Source/Renderer/ShaderBuilder.js +8 -8
  385. package/Source/Renderer/ShaderCache.js +11 -15
  386. package/Source/Renderer/ShaderFunction.js +1 -1
  387. package/Source/Renderer/ShaderProgram.js +15 -15
  388. package/Source/Renderer/ShaderSource.js +40 -40
  389. package/Source/Renderer/Texture.js +74 -63
  390. package/Source/Renderer/UniformState.js +78 -58
  391. package/Source/Renderer/VertexArray.js +20 -20
  392. package/Source/Renderer/VertexArrayFacade.js +15 -16
  393. package/Source/Renderer/createUniform.js +1 -1
  394. package/Source/Renderer/createUniformArray.js +4 -4
  395. package/Source/Renderer/demodernizeShader.js +5 -5
  396. package/Source/Renderer/loadCubeMap.js +1 -1
  397. package/Source/Scene/ArcGisMapServerImageryProvider.js +39 -45
  398. package/Source/Scene/ArcGisMapService.js +4 -7
  399. package/Source/Scene/Atmosphere.js +22 -0
  400. package/Source/Scene/AutoExposure.js +4 -5
  401. package/Source/Scene/Axis.js +6 -6
  402. package/Source/Scene/B3dmParser.js +9 -9
  403. package/Source/Scene/BatchTable.js +7 -7
  404. package/Source/Scene/BatchTableHierarchy.js +62 -59
  405. package/Source/Scene/BatchTexture.js +2 -2
  406. package/Source/Scene/Billboard.js +45 -43
  407. package/Source/Scene/BillboardCollection.js +81 -83
  408. package/Source/Scene/BingMapsImageryProvider.js +13 -13
  409. package/Source/Scene/BoundingVolumeSemantics.js +10 -10
  410. package/Source/Scene/BoxEmitter.js +1 -1
  411. package/Source/Scene/BufferLoader.js +1 -1
  412. package/Source/Scene/Camera.js +161 -164
  413. package/Source/Scene/CameraEventAggregator.js +18 -18
  414. package/Source/Scene/CameraFlightPath.js +25 -25
  415. package/Source/Scene/Cesium3DTile.js +89 -95
  416. package/Source/Scene/Cesium3DTileBatchTable.js +61 -61
  417. package/Source/Scene/Cesium3DTileContentFactory.js +7 -7
  418. package/Source/Scene/Cesium3DTileFeature.js +1 -1
  419. package/Source/Scene/Cesium3DTileFeatureTable.js +8 -8
  420. package/Source/Scene/Cesium3DTileOptimizations.js +1 -1
  421. package/Source/Scene/Cesium3DTilePointFeature.js +11 -11
  422. package/Source/Scene/Cesium3DTileStyle.js +26 -24
  423. package/Source/Scene/Cesium3DTilesVoxelProvider.js +14 -20
  424. package/Source/Scene/Cesium3DTileset.js +120 -83
  425. package/Source/Scene/Cesium3DTilesetBaseTraversal.js +8 -16
  426. package/Source/Scene/Cesium3DTilesetCache.js +2 -2
  427. package/Source/Scene/Cesium3DTilesetHeatmap.js +5 -5
  428. package/Source/Scene/Cesium3DTilesetMetadata.js +2 -2
  429. package/Source/Scene/Cesium3DTilesetMostDetailedTraversal.js +2 -2
  430. package/Source/Scene/Cesium3DTilesetSkipTraversal.js +8 -12
  431. package/Source/Scene/Cesium3DTilesetStatistics.js +1 -1
  432. package/Source/Scene/Cesium3DTilesetTraversal.js +8 -10
  433. package/Source/Scene/ClassificationPrimitive.js +70 -69
  434. package/Source/Scene/ClippingPlaneCollection.js +39 -41
  435. package/Source/Scene/ClippingPolygon.js +8 -8
  436. package/Source/Scene/ClippingPolygonCollection.js +62 -63
  437. package/Source/Scene/CloudCollection.js +3 -10
  438. package/Source/Scene/Composite3DTileContent.js +6 -6
  439. package/Source/Scene/ConditionsExpression.js +5 -5
  440. package/Source/Scene/ContentMetadata.js +4 -4
  441. package/Source/Scene/CreditDisplay.js +8 -8
  442. package/Source/Scene/CumulusCloud.js +4 -4
  443. package/Source/Scene/DebugAppearance.js +2 -2
  444. package/Source/Scene/DebugCameraPrimitive.js +2 -2
  445. package/Source/Scene/DebugInspector.js +3 -3
  446. package/Source/Scene/DebugModelMatrixPrimitive.js +4 -4
  447. package/Source/Scene/DepthPlane.js +7 -7
  448. package/Source/Scene/DerivedCommand.js +422 -238
  449. package/Source/Scene/DiscardMissingTileImagePolicy.js +1 -1
  450. package/Source/Scene/DracoLoader.js +3 -3
  451. package/Source/Scene/DynamicEnvironmentMapManager.js +852 -0
  452. package/Source/Scene/EllipsoidPrimitive.js +7 -7
  453. package/Source/Scene/EllipsoidSurfaceAppearance.js +3 -3
  454. package/Source/Scene/Empty3DTileContent.js +1 -1
  455. package/Source/Scene/Expression.js +91 -91
  456. package/Source/Scene/Fog.js +76 -116
  457. package/Source/Scene/FrameRateMonitor.js +22 -22
  458. package/Source/Scene/FrameState.js +36 -3
  459. package/Source/Scene/Geometry3DTileContent.js +20 -20
  460. package/Source/Scene/GetFeatureInfoFormat.js +15 -14
  461. package/Source/Scene/Globe.js +32 -27
  462. package/Source/Scene/GlobeDepth.js +95 -66
  463. package/Source/Scene/GlobeSurfaceShaderSet.js +12 -10
  464. package/Source/Scene/GlobeSurfaceTile.js +33 -33
  465. package/Source/Scene/GlobeSurfaceTileProvider.js +127 -124
  466. package/Source/Scene/GlobeTranslucency.js +4 -4
  467. package/Source/Scene/GlobeTranslucencyFramebuffer.js +9 -9
  468. package/Source/Scene/GlobeTranslucencyState.js +53 -55
  469. package/Source/Scene/GltfBufferViewLoader.js +2 -2
  470. package/Source/Scene/GltfIndexBufferLoader.js +5 -5
  471. package/Source/Scene/GltfJsonLoader.js +2 -2
  472. package/Source/Scene/GltfLoader.js +177 -100
  473. package/Source/Scene/GltfStructuralMetadataLoader.js +9 -8
  474. package/Source/Scene/GltfTextureLoader.js +5 -5
  475. package/Source/Scene/GltfVertexBufferLoader.js +12 -13
  476. package/Source/Scene/GoogleEarthEnterpriseImageryProvider.js +9 -9
  477. package/Source/Scene/GoogleEarthEnterpriseMapsProvider.js +9 -9
  478. package/Source/Scene/GridImageryProvider.js +2 -2
  479. package/Source/Scene/GroundPolylinePrimitive.js +38 -39
  480. package/Source/Scene/GroundPrimitive.js +47 -45
  481. package/Source/Scene/GroupMetadata.js +4 -4
  482. package/Source/Scene/I3SDataProvider.js +12 -12
  483. package/Source/Scene/I3SDecoder.js +7 -8
  484. package/Source/Scene/I3SField.js +8 -8
  485. package/Source/Scene/I3SGeometry.js +14 -14
  486. package/Source/Scene/I3SLayer.js +26 -20
  487. package/Source/Scene/I3SNode.js +17 -17
  488. package/Source/Scene/I3SSublayer.js +4 -4
  489. package/Source/Scene/I3SSymbology.js +8 -8
  490. package/Source/Scene/I3dmParser.js +9 -9
  491. package/Source/Scene/ImageBasedLighting.js +32 -87
  492. package/Source/Scene/Imagery.js +3 -3
  493. package/Source/Scene/ImageryLayer.js +64 -66
  494. package/Source/Scene/ImageryLayerCollection.js +13 -15
  495. package/Source/Scene/ImageryLayerFeatureInfo.js +19 -20
  496. package/Source/Scene/ImageryProvider.js +1 -1
  497. package/Source/Scene/Implicit3DTileContent.js +34 -37
  498. package/Source/Scene/ImplicitAvailabilityBitstream.js +2 -2
  499. package/Source/Scene/ImplicitMetadataView.js +2 -2
  500. package/Source/Scene/ImplicitSubtree.js +29 -30
  501. package/Source/Scene/ImplicitSubtreeCache.js +1 -1
  502. package/Source/Scene/ImplicitSubtreeMetadata.js +5 -5
  503. package/Source/Scene/ImplicitTileCoordinates.js +11 -11
  504. package/Source/Scene/ImplicitTileset.js +2 -2
  505. package/Source/Scene/InvertClassification.js +7 -7
  506. package/Source/Scene/IonImageryProvider.js +6 -6
  507. package/Source/Scene/JobScheduler.js +4 -4
  508. package/Source/Scene/Label.js +29 -29
  509. package/Source/Scene/LabelCollection.js +17 -15
  510. package/Source/Scene/MapboxImageryProvider.js +3 -3
  511. package/Source/Scene/MapboxStyleImageryProvider.js +4 -4
  512. package/Source/Scene/Material.js +26 -27
  513. package/Source/Scene/MaterialAppearance.js +4 -4
  514. package/Source/Scene/Megatexture.js +21 -24
  515. package/Source/Scene/MetadataClassProperty.js +11 -11
  516. package/Source/Scene/MetadataComponentType.js +1 -1
  517. package/Source/Scene/MetadataEntity.js +8 -8
  518. package/Source/Scene/MetadataEnum.js +1 -1
  519. package/Source/Scene/MetadataPicking.js +305 -0
  520. package/Source/Scene/MetadataSchemaLoader.js +1 -1
  521. package/Source/Scene/MetadataTable.js +2 -2
  522. package/Source/Scene/MetadataTableProperty.js +22 -22
  523. package/Source/Scene/Model/AlphaPipelineStage.js +2 -2
  524. package/Source/Scene/Model/AtmospherePipelineStage.js +13 -8
  525. package/Source/Scene/Model/B3dmLoader.js +8 -8
  526. package/Source/Scene/Model/BatchTexturePipelineStage.js +2 -2
  527. package/Source/Scene/Model/CPUStylingPipelineStage.js +4 -4
  528. package/Source/Scene/Model/ClassificationModelDrawCommand.js +8 -8
  529. package/Source/Scene/Model/ClassificationPipelineStage.js +5 -5
  530. package/Source/Scene/Model/CustomShader.js +9 -9
  531. package/Source/Scene/Model/CustomShaderPipelineStage.js +37 -38
  532. package/Source/Scene/Model/DequantizationPipelineStage.js +5 -5
  533. package/Source/Scene/Model/Extensions/Gpm/AnchorPointDirect.js +61 -0
  534. package/Source/Scene/Model/Extensions/Gpm/AnchorPointIndirect.js +77 -0
  535. package/Source/Scene/Model/Extensions/Gpm/CorrelationGroup.js +81 -0
  536. package/Source/Scene/Model/Extensions/Gpm/GltfGpmLoader.js +248 -0
  537. package/Source/Scene/Model/Extensions/Gpm/GltfGpmLocal.js +179 -0
  538. package/Source/Scene/Model/Extensions/Gpm/GltfMeshPrimitiveGpmLoader.js +548 -0
  539. package/Source/Scene/Model/Extensions/Gpm/MeshPrimitiveGpmLocal.js +28 -0
  540. package/Source/Scene/Model/Extensions/Gpm/PpeMetadata.js +79 -0
  541. package/Source/Scene/Model/Extensions/Gpm/PpeSource.js +75 -0
  542. package/Source/Scene/Model/Extensions/Gpm/PpeTexture.js +127 -0
  543. package/Source/Scene/Model/Extensions/Gpm/Spdcf.js +103 -0
  544. package/Source/Scene/Model/Extensions/Gpm/StorageType.js +30 -0
  545. package/Source/Scene/Model/FeatureIdPipelineStage.js +40 -40
  546. package/Source/Scene/Model/GeoJsonLoader.js +17 -17
  547. package/Source/Scene/Model/GeometryPipelineStage.js +23 -24
  548. package/Source/Scene/Model/I3dmLoader.js +36 -36
  549. package/Source/Scene/Model/ImageBasedLightingPipelineStage.js +56 -34
  550. package/Source/Scene/Model/InstancingPipelineStage.js +86 -86
  551. package/Source/Scene/Model/LightingPipelineStage.js +4 -4
  552. package/Source/Scene/Model/MaterialPipelineStage.js +78 -93
  553. package/Source/Scene/Model/MetadataPickingPipelineStage.js +96 -0
  554. package/Source/Scene/Model/MetadataPipelineStage.js +39 -47
  555. package/Source/Scene/Model/Model.js +228 -75
  556. package/Source/Scene/Model/Model3DTileContent.js +37 -13
  557. package/Source/Scene/Model/ModelAnimationChannel.js +2 -2
  558. package/Source/Scene/Model/ModelAnimationCollection.js +9 -9
  559. package/Source/Scene/Model/ModelArticulation.js +2 -2
  560. package/Source/Scene/Model/ModelArticulationStage.js +4 -4
  561. package/Source/Scene/Model/ModelClippingPlanesPipelineStage.js +11 -11
  562. package/Source/Scene/Model/ModelClippingPolygonsPipelineStage.js +6 -6
  563. package/Source/Scene/Model/ModelColorPipelineStage.js +12 -13
  564. package/Source/Scene/Model/ModelDrawCommand.js +5 -5
  565. package/Source/Scene/Model/{buildDrawCommand.js → ModelDrawCommands.js} +85 -28
  566. package/Source/Scene/Model/ModelFeatureTable.js +5 -5
  567. package/Source/Scene/Model/ModelMatrixUpdateStage.js +24 -12
  568. package/Source/Scene/Model/ModelRenderResources.js +1 -1
  569. package/Source/Scene/Model/ModelRuntimeNode.js +15 -15
  570. package/Source/Scene/Model/ModelRuntimePrimitive.js +8 -5
  571. package/Source/Scene/Model/ModelSceneGraph.js +43 -43
  572. package/Source/Scene/Model/ModelSilhouettePipelineStage.js +4 -4
  573. package/Source/Scene/Model/ModelSkin.js +4 -4
  574. package/Source/Scene/Model/ModelSplitterPipelineStage.js +8 -9
  575. package/Source/Scene/Model/ModelUtility.js +5 -5
  576. package/Source/Scene/Model/MorphTargetsPipelineStage.js +18 -18
  577. package/Source/Scene/Model/NodeRenderResources.js +1 -1
  578. package/Source/Scene/Model/NodeStatisticsPipelineStage.js +1 -1
  579. package/Source/Scene/Model/PickingPipelineStage.js +5 -5
  580. package/Source/Scene/Model/PntsLoader.js +7 -7
  581. package/Source/Scene/Model/PointCloudStylingPipelineStage.js +22 -23
  582. package/Source/Scene/Model/PrimitiveOutlineGenerator.js +6 -6
  583. package/Source/Scene/Model/PrimitiveOutlinePipelineStage.js +7 -7
  584. package/Source/Scene/Model/PrimitiveRenderResources.js +3 -3
  585. package/Source/Scene/Model/PrimitiveStatisticsPipelineStage.js +1 -1
  586. package/Source/Scene/Model/SceneMode2DPipelineStage.js +23 -23
  587. package/Source/Scene/Model/SelectedFeatureIdPipelineStage.js +10 -14
  588. package/Source/Scene/Model/SkinningPipelineStage.js +5 -5
  589. package/Source/Scene/Model/StyleCommandsNeeded.js +1 -1
  590. package/Source/Scene/Model/TextureManager.js +2 -2
  591. package/Source/Scene/Model/TextureUniform.js +3 -3
  592. package/Source/Scene/Model/TilesetPipelineStage.js +2 -2
  593. package/Source/Scene/Model/VerticalExaggerationPipelineStage.js +4 -4
  594. package/Source/Scene/Model/WireframePipelineStage.js +7 -7
  595. package/Source/Scene/Model/pickModel.js +26 -26
  596. package/Source/Scene/ModelComponents.js +13 -4
  597. package/Source/Scene/Moon.js +6 -5
  598. package/Source/Scene/Multiple3DTileContent.js +15 -14
  599. package/Source/Scene/OIT.js +48 -97
  600. package/Source/Scene/OpenStreetMapImageryProvider.js +8 -7
  601. package/Source/Scene/OrderedGroundPrimitiveCollection.js +2 -2
  602. package/Source/Scene/Particle.js +3 -3
  603. package/Source/Scene/ParticleEmitter.js +1 -1
  604. package/Source/Scene/ParticleSystem.js +32 -32
  605. package/Source/Scene/PerInstanceColorAppearance.js +1 -1
  606. package/Source/Scene/PickDepth.js +16 -4
  607. package/Source/Scene/PickDepthFramebuffer.js +1 -1
  608. package/Source/Scene/PickFramebuffer.js +24 -12
  609. package/Source/Scene/PickedMetadataInfo.js +39 -0
  610. package/Source/Scene/Picking.js +270 -120
  611. package/Source/Scene/PntsParser.js +28 -28
  612. package/Source/Scene/PointCloud.js +39 -38
  613. package/Source/Scene/PointCloudEyeDomeLighting.js +6 -6
  614. package/Source/Scene/PointCloudShading.js +3 -3
  615. package/Source/Scene/PointPrimitive.js +31 -28
  616. package/Source/Scene/PointPrimitiveCollection.js +34 -33
  617. package/Source/Scene/Polyline.js +9 -9
  618. package/Source/Scene/PolylineCollection.js +55 -57
  619. package/Source/Scene/PolylineColorAppearance.js +3 -3
  620. package/Source/Scene/PolylineMaterialAppearance.js +3 -3
  621. package/Source/Scene/PostProcessStage.js +95 -115
  622. package/Source/Scene/PostProcessStageCollection.js +35 -41
  623. package/Source/Scene/PostProcessStageComposite.js +2 -2
  624. package/Source/Scene/PostProcessStageLibrary.js +5 -5
  625. package/Source/Scene/PostProcessStageTextureCache.js +10 -10
  626. package/Source/Scene/Primitive.js +93 -93
  627. package/Source/Scene/PrimitiveCollection.js +1 -1
  628. package/Source/Scene/PrimitiveLoadPlan.js +1 -1
  629. package/Source/Scene/PrimitivePipeline.js +30 -30
  630. package/Source/Scene/PropertyTable.js +5 -5
  631. package/Source/Scene/PropertyTextureProperty.js +36 -7
  632. package/Source/Scene/QuadtreePrimitive.js +56 -58
  633. package/Source/Scene/QuadtreeTile.js +4 -4
  634. package/Source/Scene/QuadtreeTileProvider.js +1 -1
  635. package/Source/Scene/ResourceCache.js +7 -7
  636. package/Source/Scene/ResourceCacheKey.js +15 -15
  637. package/Source/Scene/Scene.js +879 -657
  638. package/Source/Scene/SceneFramebuffer.js +2 -2
  639. package/Source/Scene/SceneTransforms.js +30 -30
  640. package/Source/Scene/SceneTransitioner.js +47 -47
  641. package/Source/Scene/ScreenSpaceCameraController.js +180 -154
  642. package/Source/Scene/SensorVolumePortionToDisplay.js +1 -1
  643. package/Source/Scene/ShadowMap.js +71 -72
  644. package/Source/Scene/ShadowMapShader.js +9 -9
  645. package/Source/Scene/ShadowVolumeAppearance.js +39 -39
  646. package/Source/Scene/SingleTileImageryProvider.js +3 -3
  647. package/Source/Scene/SkyAtmosphere.js +8 -8
  648. package/Source/Scene/SkyBox.js +7 -8
  649. package/Source/Scene/SpatialNode.js +13 -13
  650. package/Source/Scene/SphereEmitter.js +1 -1
  651. package/Source/Scene/StructuralMetadata.js +1 -1
  652. package/Source/Scene/StyleExpression.js +1 -1
  653. package/Source/Scene/Sun.js +11 -7
  654. package/Source/Scene/SunPostProcess.js +6 -6
  655. package/Source/Scene/TerrainFillMesh.js +157 -156
  656. package/Source/Scene/TextureAtlas.js +11 -11
  657. package/Source/Scene/TileBoundingRegion.js +31 -31
  658. package/Source/Scene/TileBoundingS2Cell.js +37 -40
  659. package/Source/Scene/TileBoundingSphere.js +2 -2
  660. package/Source/Scene/TileCoordinatesImageryProvider.js +3 -3
  661. package/Source/Scene/TileImagery.js +7 -11
  662. package/Source/Scene/TileMapServiceImageryProvider.js +26 -25
  663. package/Source/Scene/TileMetadata.js +4 -4
  664. package/Source/Scene/TileOrientedBoundingBox.js +6 -6
  665. package/Source/Scene/Tileset3DTileContent.js +1 -1
  666. package/Source/Scene/TilesetMetadata.js +4 -4
  667. package/Source/Scene/TimeDynamicImagery.js +3 -3
  668. package/Source/Scene/TimeDynamicPointCloud.js +9 -9
  669. package/Source/Scene/TranslucentTileClassification.js +48 -58
  670. package/Source/Scene/TweenCollection.js +9 -9
  671. package/Source/Scene/UrlTemplateImageryProvider.js +23 -23
  672. package/Source/Scene/Vector3DTileClampedPolylines.js +21 -21
  673. package/Source/Scene/Vector3DTileContent.js +38 -39
  674. package/Source/Scene/Vector3DTileGeometry.js +11 -8
  675. package/Source/Scene/Vector3DTilePoints.js +18 -22
  676. package/Source/Scene/Vector3DTilePolygons.js +6 -6
  677. package/Source/Scene/Vector3DTilePolylines.js +8 -8
  678. package/Source/Scene/Vector3DTilePrimitive.js +30 -31
  679. package/Source/Scene/View.js +111 -80
  680. package/Source/Scene/VoxelBoxShape.js +34 -34
  681. package/Source/Scene/VoxelCell.js +7 -7
  682. package/Source/Scene/VoxelContent.js +1 -1
  683. package/Source/Scene/VoxelCylinderShape.js +48 -48
  684. package/Source/Scene/VoxelEllipsoidShape.js +83 -97
  685. package/Source/Scene/VoxelPrimitive.js +80 -80
  686. package/Source/Scene/VoxelRenderResources.js +13 -13
  687. package/Source/Scene/VoxelTraversal.js +41 -41
  688. package/Source/Scene/WebMapServiceImageryProvider.js +12 -12
  689. package/Source/Scene/WebMapTileServiceImageryProvider.js +8 -8
  690. package/Source/Scene/buildVoxelDrawCommands.js +10 -14
  691. package/Source/Scene/computeFlyToLocationForRectangle.js +7 -5
  692. package/Source/Scene/createBillboardPointCallback.js +2 -2
  693. package/Source/Scene/createElevationBandMaterial.js +8 -8
  694. package/Source/Scene/createGooglePhotorealistic3DTileset.js +1 -1
  695. package/Source/Scene/createOsmBuildingsAsync.js +1 -1
  696. package/Source/Scene/createTangentSpaceDebugPrimitive.js +7 -7
  697. package/Source/Scene/findContentMetadata.js +2 -2
  698. package/Source/Scene/findTileMetadata.js +2 -2
  699. package/Source/Scene/getBinaryAccessor.js +1 -1
  700. package/Source/Scene/getClipAndStyleCode.js +1 -1
  701. package/Source/Scene/getClippingFunction.js +1 -1
  702. package/Source/Scene/getMetadataClassProperty.js +43 -0
  703. package/Source/Scene/parseBatchTable.js +21 -24
  704. package/Source/Scene/parseFeatureMetadataLegacy.js +3 -3
  705. package/Source/Scene/parseStructuralMetadata.js +3 -3
  706. package/Source/Scene/processVoxelProperties.js +28 -33
  707. package/Source/Shaders/Builtin/Functions/computeAtmosphereColor.glsl +44 -0
  708. package/Source/Shaders/Builtin/Functions/computeAtmosphereColor.js +44 -0
  709. package/Source/Shaders/Builtin/Functions/computeScattering.glsl +0 -1
  710. package/Source/Shaders/Builtin/Functions/computeScattering.js +0 -1
  711. package/Source/Shaders/Builtin/Functions/packDepth.glsl +2 -2
  712. package/Source/Shaders/Builtin/Functions/packDepth.js +2 -2
  713. package/Source/Shaders/Builtin/Functions/sphericalHarmonics.glsl +3 -1
  714. package/Source/Shaders/Builtin/Functions/sphericalHarmonics.js +3 -1
  715. package/Source/Shaders/Builtin/Functions/unpackDepth.glsl +3 -3
  716. package/Source/Shaders/Builtin/Functions/unpackDepth.js +3 -3
  717. package/Source/Shaders/Builtin/Functions/windowToEyeCoordinates.glsl +1 -1
  718. package/Source/Shaders/Builtin/Functions/windowToEyeCoordinates.js +1 -1
  719. package/Source/Shaders/Builtin/Functions/writeLogDepth.glsl +2 -2
  720. package/Source/Shaders/Builtin/Functions/writeLogDepth.js +2 -2
  721. package/Source/Shaders/ComputeIrradianceFS.glsl +103 -0
  722. package/Source/Shaders/ComputeIrradianceFS.js +105 -0
  723. package/Source/Shaders/ComputeRadianceMapFS.glsl +107 -0
  724. package/Source/Shaders/ComputeRadianceMapFS.js +109 -0
  725. package/Source/Shaders/ConvolveSpecularMapFS.glsl +70 -0
  726. package/Source/Shaders/ConvolveSpecularMapFS.js +72 -0
  727. package/Source/Shaders/ConvolveSpecularMapVS.glsl +24 -0
  728. package/Source/Shaders/ConvolveSpecularMapVS.js +26 -0
  729. package/Source/Shaders/DepthPlaneVS.glsl +1 -1
  730. package/Source/Shaders/DepthPlaneVS.js +1 -1
  731. package/Source/Shaders/GlobeFS.glsl +1 -2
  732. package/Source/Shaders/GlobeFS.js +1 -2
  733. package/Source/Shaders/Model/AtmosphereStageFS.glsl +1 -4
  734. package/Source/Shaders/Model/AtmosphereStageFS.js +1 -4
  735. package/Source/Shaders/Model/ImageBasedLightingStageFS.glsl +2 -155
  736. package/Source/Shaders/Model/ImageBasedLightingStageFS.js +3 -156
  737. package/Source/Shaders/Model/LightingStageFS.glsl +3 -22
  738. package/Source/Shaders/Model/LightingStageFS.js +3 -22
  739. package/Source/Shaders/Model/ModelFS.glsl +26 -0
  740. package/Source/Shaders/Model/ModelFS.js +26 -0
  741. package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.glsl +59 -59
  742. package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.js +60 -60
  743. package/Source/Shaders/SkyBoxVS.glsl +0 -1
  744. package/Source/Shaders/SkyBoxVS.js +0 -1
  745. package/Source/Widget/CesiumWidget.js +785 -9
  746. package/Source/Workers/combineGeometry.js +3 -4
  747. package/Source/Workers/createCircleGeometry.js +2 -2
  748. package/Source/Workers/createCircleOutlineGeometry.js +2 -2
  749. package/Source/Workers/createCoplanarPolygonOutlineGeometry.js +1 -1
  750. package/Source/Workers/createCorridorOutlineGeometry.js +2 -2
  751. package/Source/Workers/createEllipsoidOutlineGeometry.js +1 -1
  752. package/Source/Workers/createGeometry.js +4 -5
  753. package/Source/Workers/createGroundPolylineGeometry.js +1 -1
  754. package/Source/Workers/createPolylineVolumeGeometry.js +2 -2
  755. package/Source/Workers/createPolylineVolumeOutlineGeometry.js +4 -4
  756. package/Source/Workers/createRectangleOutlineGeometry.js +1 -1
  757. package/Source/Workers/createSimplePolylineGeometry.js +2 -2
  758. package/Source/Workers/createTaskProcessorWorker.js +1 -1
  759. package/Source/Workers/createVectorTileClampedPolylines.js +30 -30
  760. package/Source/Workers/createVectorTileGeometries.js +18 -18
  761. package/Source/Workers/createVectorTilePoints.js +3 -3
  762. package/Source/Workers/createVectorTilePolygons.js +11 -11
  763. package/Source/Workers/createVectorTilePolylines.js +7 -7
  764. package/Source/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +29 -30
  765. package/Source/Workers/createVerticesFromQuantizedTerrainMesh.js +60 -60
  766. package/Source/Workers/decodeDraco.js +23 -23
  767. package/Source/Workers/decodeGoogleEarthEnterprisePacket.js +4 -4
  768. package/Source/Workers/decodeI3S.js +53 -53
  769. package/Source/Workers/transcodeKTX2.js +9 -9
  770. package/Source/Workers/transferTypedArrayTest.js +1 -1
  771. package/Source/Workers/upsampleQuantizedTerrainMesh.js +37 -36
  772. package/index.d.ts +769 -47
  773. package/index.js +73 -51
  774. package/package.json +3 -3
@@ -30,7 +30,7 @@ vec3 czm_sphericalHarmonics(vec3 normal, vec3 coefficients[9])\n\
30
30
  float y = normal.y;\n\
31
31
  float z = normal.z;\n\
32
32
  \n\
33
- return\n\
33
+ vec3 L =\n\
34
34
  L00\n\
35
35
  + L1_1 * y\n\
36
36
  + L10 * z\n\
@@ -40,5 +40,7 @@ vec3 czm_sphericalHarmonics(vec3 normal, vec3 coefficients[9])\n\
40
40
  + L20 * (3.0 * z * z - 1.0)\n\
41
41
  + L21 * (z * x)\n\
42
42
  + L22 * (x * x - y * y);\n\
43
+ \n\
44
+ return max(L, vec3(0.0));\n\
43
45
  }\n\
44
46
  ";
@@ -8,9 +8,9 @@
8
8
  *
9
9
  * @returns {float} The floating-point depth in [0, 1) range.
10
10
  */
11
- float czm_unpackDepth(vec4 packedDepth)
12
- {
11
+ float czm_unpackDepth(vec4 packedDepth)
12
+ {
13
13
  // See Aras Pranckevičius' post Encoding Floats to RGBA
14
14
  // http://aras-p.info/blog/2009/07/30/encoding-floats-to-rgba-the-final/
15
15
  return dot(packedDepth, vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0));
16
- }
16
+ }
@@ -9,10 +9,10 @@ export default "/**\n\
9
9
  *\n\
10
10
  * @returns {float} The floating-point depth in [0, 1) range.\n\
11
11
  */\n\
12
- float czm_unpackDepth(vec4 packedDepth)\n\
13
- {\n\
12
+ float czm_unpackDepth(vec4 packedDepth)\n\
13
+ {\n\
14
14
  // See Aras Pranckevičius' post Encoding Floats to RGBA\n\
15
15
  // http://aras-p.info/blog/2009/07/30/encoding-floats-to-rgba-the-final/\n\
16
16
  return dot(packedDepth, vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0));\n\
17
- }\n\
17
+ }\n\
18
18
  ";
@@ -71,7 +71,7 @@ vec4 czm_screenToEyeCoordinates(vec2 screenCoordinateXY, float depthOrLogDepth)
71
71
  float near = czm_currentFrustum.x;
72
72
  float far = czm_currentFrustum.y;
73
73
  float log2Depth = depthOrLogDepth * czm_log2FarDepthFromNearPlusOne;
74
- float depthFromNear = pow(2.0, log2Depth) - 1.0;
74
+ float depthFromNear = exp2(log2Depth) - 1.0;
75
75
  float depthFromCamera = depthFromNear + near;
76
76
  vec4 screenCoord = vec4(screenCoordinateXY, far * (1.0 - near / depthFromCamera) / (far - near), 1.0);
77
77
  vec4 eyeCoordinate = czm_screenToEyeCoordinates(screenCoord);
@@ -72,7 +72,7 @@ vec4 czm_screenToEyeCoordinates(vec2 screenCoordinateXY, float depthOrLogDepth)\
72
72
  float near = czm_currentFrustum.x;\n\
73
73
  float far = czm_currentFrustum.y;\n\
74
74
  float log2Depth = depthOrLogDepth * czm_log2FarDepthFromNearPlusOne;\n\
75
- float depthFromNear = pow(2.0, log2Depth) - 1.0;\n\
75
+ float depthFromNear = exp2(log2Depth) - 1.0;\n\
76
76
  float depthFromCamera = depthFromNear + near;\n\
77
77
  vec4 screenCoord = vec4(screenCoordinateXY, far * (1.0 - near / depthFromCamera) / (far - near), 1.0);\n\
78
78
  vec4 eyeCoordinate = czm_screenToEyeCoordinates(screenCoord);\n\
@@ -10,7 +10,7 @@ uniform vec2 u_polygonOffset;
10
10
  /**
11
11
  * Writes the fragment depth to the logarithmic depth buffer.
12
12
  * <p>
13
- * Use this when the vertex shader does not call {@link czm_vertexlogDepth}, for example, when
13
+ * Use this when the vertex shader does not call {@link czm_vertexLogDepth}, for example, when
14
14
  * ray-casting geometry using a full screen quad.
15
15
  * </p>
16
16
  * @name czm_writeLogDepth
@@ -66,7 +66,7 @@ void czm_writeLogDepth(float depth)
66
66
  /**
67
67
  * Writes the fragment depth to the logarithmic depth buffer.
68
68
  * <p>
69
- * Use this when the vertex shader calls {@link czm_vertexlogDepth}.
69
+ * Use this when the vertex shader calls {@link czm_vertexLogDepth}.
70
70
  * </p>
71
71
  *
72
72
  * @name czm_writeLogDepth
@@ -11,7 +11,7 @@ uniform vec2 u_polygonOffset;\n\
11
11
  /**\n\
12
12
  * Writes the fragment depth to the logarithmic depth buffer.\n\
13
13
  * <p>\n\
14
- * Use this when the vertex shader does not call {@link czm_vertexlogDepth}, for example, when\n\
14
+ * Use this when the vertex shader does not call {@link czm_vertexLogDepth}, for example, when\n\
15
15
  * ray-casting geometry using a full screen quad.\n\
16
16
  * </p>\n\
17
17
  * @name czm_writeLogDepth\n\
@@ -67,7 +67,7 @@ void czm_writeLogDepth(float depth)\n\
67
67
  /**\n\
68
68
  * Writes the fragment depth to the logarithmic depth buffer.\n\
69
69
  * <p>\n\
70
- * Use this when the vertex shader calls {@link czm_vertexlogDepth}.\n\
70
+ * Use this when the vertex shader calls {@link czm_vertexLogDepth}.\n\
71
71
  * </p>\n\
72
72
  *\n\
73
73
  * @name czm_writeLogDepth\n\
@@ -0,0 +1,103 @@
1
+ uniform samplerCube u_radianceMap;
2
+
3
+ in vec2 v_textureCoordinates;
4
+
5
+
6
+ const float twoSqrtPi = 2.0 * sqrt(czm_pi);
7
+
8
+ // Coutesy of https://www.ppsloan.org/publications/StupidSH36.pdf
9
+ float computeShBasis(int index, vec3 s) {
10
+ if (index == 0) { // l = 0, m = 0
11
+ return 1.0 / twoSqrtPi;
12
+ }
13
+
14
+ if (index == 1) { // l = 1, m = -1
15
+ return -sqrt(3.0) * s.y / twoSqrtPi;
16
+ }
17
+
18
+ if (index == 2) { // l = 1, m = 0
19
+ return sqrt(3.0) * s.z / twoSqrtPi;
20
+ }
21
+
22
+ if (index == 3) { // l = 1, m = 1
23
+ return -sqrt(3.0) * s.x / twoSqrtPi;
24
+ }
25
+
26
+ if (index == 4) { // l = 2, m = -2
27
+ return sqrt(15.0) * s.y * s.x / twoSqrtPi;
28
+ }
29
+
30
+ if (index == 5) { // l = 2, m = -1
31
+ return -sqrt(15.0) * s.y * s.z / twoSqrtPi;
32
+ }
33
+
34
+ if (index == 6) { // l = 2, m = 0
35
+ return sqrt(5.0) * (3.0 * s.z * s.z - 1.0) / 2.0 / twoSqrtPi;
36
+ }
37
+
38
+ if (index == 7) { // l = 2, m = 1
39
+ return -sqrt(15.0) * s.x * s.z / twoSqrtPi;
40
+ }
41
+
42
+ if (index == 8) { // l = 2, m = 2
43
+ return sqrt(15.0) * (s.x * s.x - s.y * s.y) / 2.0 / twoSqrtPi;
44
+ }
45
+
46
+ return 0.0;
47
+ }
48
+
49
+ float vdcRadicalInverse(int i)
50
+ {
51
+ float r;
52
+ float base = 2.0;
53
+ float value = 0.0;
54
+ float invBase = 1.0 / base;
55
+ float invBi = invBase;
56
+ for (int x = 0; x < 100; x++)
57
+ {
58
+ if (i <= 0)
59
+ {
60
+ break;
61
+ }
62
+ r = mod(float(i), base);
63
+ value += r * invBi;
64
+ invBi *= invBase;
65
+ i = int(float(i) * invBase);
66
+ }
67
+ return value;
68
+ }
69
+
70
+ vec2 hammersley2D(int i, int N)
71
+ {
72
+ return vec2(float(i) / float(N), vdcRadicalInverse(i));
73
+ }
74
+
75
+ // Sample count is relatively low for the sake of performance, but should still be enough to capture directionality needed for third-order harmonics
76
+ const int samples = 256;
77
+ const float solidAngle = 1.0 / float(samples);
78
+
79
+ void main() {
80
+ // Get the current coefficient based on the uv
81
+ vec2 uv = v_textureCoordinates.xy * 3.0;
82
+ int coefficientIndex = int(floor(uv.y) * 3.0 + floor(uv.x));
83
+
84
+ for (int i = 0; i < samples; ++i) {
85
+ vec2 xi = hammersley2D(i, samples);
86
+ float phi = czm_twoPi * xi.x;
87
+ float cosTheta = 1.0 - 2.0 * sqrt(1.0 - xi.y * xi.y);
88
+ float sinTheta = sqrt(1.0 - cosTheta * cosTheta);
89
+ vec3 direction = normalize(vec3(sinTheta * cos(phi), cosTheta, sinTheta * sin(phi)));
90
+
91
+ // Generate the spherical harmonics basis from the direction
92
+ float Ylm = computeShBasis(coefficientIndex, direction);
93
+
94
+ vec3 lookupDirection = -direction.xyz;
95
+ lookupDirection.z = -lookupDirection.z;
96
+
97
+ vec4 color = czm_textureCube(u_radianceMap, lookupDirection, 0.0);
98
+
99
+ // Use the relevant function for this coefficient
100
+ out_FragColor += Ylm * color * solidAngle * sinTheta;
101
+ }
102
+
103
+ }
@@ -0,0 +1,105 @@
1
+ //This file is automatically rebuilt by the Cesium build process.
2
+ export default "uniform samplerCube u_radianceMap;\n\
3
+ \n\
4
+ in vec2 v_textureCoordinates;\n\
5
+ \n\
6
+ \n\
7
+ const float twoSqrtPi = 2.0 * sqrt(czm_pi);\n\
8
+ \n\
9
+ // Coutesy of https://www.ppsloan.org/publications/StupidSH36.pdf\n\
10
+ float computeShBasis(int index, vec3 s) {\n\
11
+ if (index == 0) { // l = 0, m = 0\n\
12
+ return 1.0 / twoSqrtPi;\n\
13
+ }\n\
14
+ \n\
15
+ if (index == 1) { // l = 1, m = -1\n\
16
+ return -sqrt(3.0) * s.y / twoSqrtPi;\n\
17
+ }\n\
18
+ \n\
19
+ if (index == 2) { // l = 1, m = 0\n\
20
+ return sqrt(3.0) * s.z / twoSqrtPi;\n\
21
+ }\n\
22
+ \n\
23
+ if (index == 3) { // l = 1, m = 1\n\
24
+ return -sqrt(3.0) * s.x / twoSqrtPi;\n\
25
+ }\n\
26
+ \n\
27
+ if (index == 4) { // l = 2, m = -2\n\
28
+ return sqrt(15.0) * s.y * s.x / twoSqrtPi;\n\
29
+ }\n\
30
+ \n\
31
+ if (index == 5) { // l = 2, m = -1\n\
32
+ return -sqrt(15.0) * s.y * s.z / twoSqrtPi;\n\
33
+ }\n\
34
+ \n\
35
+ if (index == 6) { // l = 2, m = 0\n\
36
+ return sqrt(5.0) * (3.0 * s.z * s.z - 1.0) / 2.0 / twoSqrtPi;\n\
37
+ }\n\
38
+ \n\
39
+ if (index == 7) { // l = 2, m = 1\n\
40
+ return -sqrt(15.0) * s.x * s.z / twoSqrtPi;\n\
41
+ }\n\
42
+ \n\
43
+ if (index == 8) { // l = 2, m = 2\n\
44
+ return sqrt(15.0) * (s.x * s.x - s.y * s.y) / 2.0 / twoSqrtPi;\n\
45
+ }\n\
46
+ \n\
47
+ return 0.0;\n\
48
+ }\n\
49
+ \n\
50
+ float vdcRadicalInverse(int i)\n\
51
+ {\n\
52
+ float r;\n\
53
+ float base = 2.0;\n\
54
+ float value = 0.0;\n\
55
+ float invBase = 1.0 / base;\n\
56
+ float invBi = invBase;\n\
57
+ for (int x = 0; x < 100; x++)\n\
58
+ {\n\
59
+ if (i <= 0)\n\
60
+ {\n\
61
+ break;\n\
62
+ }\n\
63
+ r = mod(float(i), base);\n\
64
+ value += r * invBi;\n\
65
+ invBi *= invBase;\n\
66
+ i = int(float(i) * invBase);\n\
67
+ }\n\
68
+ return value;\n\
69
+ }\n\
70
+ \n\
71
+ vec2 hammersley2D(int i, int N)\n\
72
+ {\n\
73
+ return vec2(float(i) / float(N), vdcRadicalInverse(i));\n\
74
+ }\n\
75
+ \n\
76
+ // Sample count is relatively low for the sake of performance, but should still be enough to capture directionality needed for third-order harmonics\n\
77
+ const int samples = 256; \n\
78
+ const float solidAngle = 1.0 / float(samples);\n\
79
+ \n\
80
+ void main() {\n\
81
+ // Get the current coefficient based on the uv\n\
82
+ vec2 uv = v_textureCoordinates.xy * 3.0;\n\
83
+ int coefficientIndex = int(floor(uv.y) * 3.0 + floor(uv.x));\n\
84
+ \n\
85
+ for (int i = 0; i < samples; ++i) {\n\
86
+ vec2 xi = hammersley2D(i, samples);\n\
87
+ float phi = czm_twoPi * xi.x;\n\
88
+ float cosTheta = 1.0 - 2.0 * sqrt(1.0 - xi.y * xi.y);\n\
89
+ float sinTheta = sqrt(1.0 - cosTheta * cosTheta);\n\
90
+ vec3 direction = normalize(vec3(sinTheta * cos(phi), cosTheta, sinTheta * sin(phi)));\n\
91
+ \n\
92
+ // Generate the spherical harmonics basis from the direction\n\
93
+ float Ylm = computeShBasis(coefficientIndex, direction);\n\
94
+ \n\
95
+ vec3 lookupDirection = -direction.xyz;\n\
96
+ lookupDirection.z = -lookupDirection.z;\n\
97
+ \n\
98
+ vec4 color = czm_textureCube(u_radianceMap, lookupDirection, 0.0);\n\
99
+ \n\
100
+ // Use the relevant function for this coefficient\n\
101
+ out_FragColor += Ylm * color * solidAngle * sinTheta;\n\
102
+ }\n\
103
+ \n\
104
+ }\n\
105
+ ";
@@ -0,0 +1,107 @@
1
+ precision highp float;
2
+
3
+ in vec2 v_textureCoordinates;
4
+
5
+ uniform vec3 u_faceDirection; // Current cubemap face
6
+ uniform vec3 u_positionWC;
7
+ uniform mat4 u_enuToFixedFrame;
8
+ uniform vec4 u_brightnessSaturationGammaIntensity;
9
+ uniform vec4 u_groundColor; // alpha component represent albedo
10
+
11
+ vec4 getCubeMapDirection(vec2 uv, vec3 faceDir) {
12
+ vec2 scaledUV = uv * 2.0 - 1.0;
13
+
14
+ if (faceDir.x != 0.0) {
15
+ return vec4(faceDir.x, scaledUV.x * faceDir.x, -scaledUV.y, 0.0);
16
+ } else if (faceDir.y != 0.0) {
17
+ return vec4(scaledUV.x, -scaledUV.y * faceDir.y, faceDir.y, 0.0);
18
+ } else {
19
+ return vec4(scaledUV.x * faceDir.z, -faceDir.z, -scaledUV.y, 0.0);
20
+ }
21
+ }
22
+
23
+ void main() {
24
+ float height = length(u_positionWC);
25
+ float atmosphereInnerRadius = u_radiiAndDynamicAtmosphereColor.y;
26
+ float ellipsoidHeight = max(height - atmosphereInnerRadius, 0.0);
27
+
28
+ // Scale the position to ensure the sky color is present, even when underground.
29
+ vec3 positionWC = u_positionWC / height * (ellipsoidHeight + atmosphereInnerRadius);
30
+
31
+ float atmosphereOuterRadius = u_radiiAndDynamicAtmosphereColor.x;
32
+ float atmosphereHeight = atmosphereOuterRadius - atmosphereInnerRadius;
33
+
34
+ vec3 direction = (u_enuToFixedFrame * getCubeMapDirection(v_textureCoordinates, u_faceDirection)).xyz;
35
+ vec3 normalizedDirection = normalize(direction);
36
+
37
+ czm_ray ray = czm_ray(positionWC, normalizedDirection);
38
+ czm_raySegment intersection = czm_raySphereIntersectionInterval(ray, vec3(0.0), atmosphereInnerRadius);
39
+ if (!czm_isEmpty(intersection)) {
40
+ intersection = czm_rayEllipsoidIntersectionInterval(ray, vec3(0.0), czm_ellipsoidInverseRadii);
41
+ }
42
+
43
+ bool onEllipsoid = intersection.start >= 0.0;
44
+ float rayLength = czm_branchFreeTernary(onEllipsoid, intersection.start, atmosphereOuterRadius);
45
+
46
+ // Compute sky color for each position on a sphere at radius centered around the provided position's origin
47
+ vec3 skyPositionWC = positionWC + normalizedDirection * rayLength;
48
+
49
+ float lightEnum = u_radiiAndDynamicAtmosphereColor.z;
50
+ vec3 lightDirectionWC = normalize(czm_getDynamicAtmosphereLightDirection(skyPositionWC, lightEnum));
51
+ vec3 mieColor;
52
+ vec3 rayleighColor;
53
+ float opacity;
54
+ czm_computeScattering(
55
+ ray,
56
+ rayLength,
57
+ lightDirectionWC,
58
+ atmosphereInnerRadius,
59
+ rayleighColor,
60
+ mieColor,
61
+ opacity
62
+ );
63
+
64
+ vec4 atmopshereColor = czm_computeAtmosphereColor(ray, lightDirectionWC, rayleighColor, mieColor, opacity);
65
+
66
+ #ifdef ATMOSPHERE_COLOR_CORRECT
67
+ const bool ignoreBlackPixels = true;
68
+ atmopshereColor.rgb = czm_applyHSBShift(atmopshereColor.rgb, czm_atmosphereHsbShift, ignoreBlackPixels);
69
+ #endif
70
+
71
+ vec3 lookupDirection = -normalizedDirection;
72
+ // Flipping the X vector is a cheap way to get the inverse of czm_temeToPseudoFixed, since that's a rotation about Z.
73
+ lookupDirection.x = -lookupDirection.x;
74
+ lookupDirection = -normalize(czm_temeToPseudoFixed * lookupDirection);
75
+ lookupDirection.x = -lookupDirection.x;
76
+
77
+ // Values outside the atmopshere are rendered as black, when they should be treated as transparent
78
+ float skyAlpha = clamp((1.0 - ellipsoidHeight / atmosphereHeight) * atmopshereColor.a, 0.0, 1.0);
79
+ skyAlpha = czm_branchFreeTernary(length(atmopshereColor.rgb) <= czm_epsilon7, 0.0, skyAlpha); // Treat black as transparent
80
+
81
+ // Blend starmap with atmopshere scattering
82
+ float intensity = u_brightnessSaturationGammaIntensity.w;
83
+ vec4 sceneSkyBoxColor = czm_textureCube(czm_environmentMap, lookupDirection);
84
+ vec3 skyBackgroundColor = mix(czm_backgroundColor.rgb, sceneSkyBoxColor.rgb, sceneSkyBoxColor.a);
85
+ vec4 combinedSkyColor = vec4(mix(skyBackgroundColor, atmopshereColor.rgb * intensity, skyAlpha), 1.0);
86
+
87
+ // Compute ground color based on amount of reflected light, then blend it with ground atmosphere based on height
88
+ vec3 up = normalize(positionWC);
89
+ float occlusion = max(dot(lightDirectionWC, up), 0.05);
90
+ vec4 groundColor = vec4(u_groundColor.rgb * u_groundColor.a * (vec3(intensity * occlusion) + atmopshereColor.rgb), 1.0);
91
+ vec4 blendedGroundColor = mix(groundColor, atmopshereColor, clamp(ellipsoidHeight / atmosphereHeight, 0.0, 1.0));
92
+
93
+ vec4 color = czm_branchFreeTernary(onEllipsoid, blendedGroundColor, combinedSkyColor);
94
+
95
+ float brightness = u_brightnessSaturationGammaIntensity.x;
96
+ float saturation = u_brightnessSaturationGammaIntensity.y;
97
+ float gamma = u_brightnessSaturationGammaIntensity.z;
98
+
99
+ #ifdef ENVIRONMENT_COLOR_CORRECT
100
+ color.rgb = mix(vec3(0.0), color.rgb, brightness);
101
+ color.rgb = czm_saturation(color.rgb, saturation);
102
+ #endif
103
+ color.rgb = pow(color.rgb, vec3(gamma)); // Normally this would be in the ifdef above, but there is a precision issue with the atmopshere scattering transmittance (alpha). Having this line is a workaround for that issue, even when gamma is 1.0.
104
+ color.rgb = czm_gammaCorrect(color.rgb);
105
+
106
+ out_FragColor = color;
107
+ }
@@ -0,0 +1,109 @@
1
+ //This file is automatically rebuilt by the Cesium build process.
2
+ export default "precision highp float;\n\
3
+ \n\
4
+ in vec2 v_textureCoordinates;\n\
5
+ \n\
6
+ uniform vec3 u_faceDirection; // Current cubemap face\n\
7
+ uniform vec3 u_positionWC;\n\
8
+ uniform mat4 u_enuToFixedFrame;\n\
9
+ uniform vec4 u_brightnessSaturationGammaIntensity;\n\
10
+ uniform vec4 u_groundColor; // alpha component represent albedo\n\
11
+ \n\
12
+ vec4 getCubeMapDirection(vec2 uv, vec3 faceDir) {\n\
13
+ vec2 scaledUV = uv * 2.0 - 1.0;\n\
14
+ \n\
15
+ if (faceDir.x != 0.0) {\n\
16
+ return vec4(faceDir.x, scaledUV.x * faceDir.x, -scaledUV.y, 0.0);\n\
17
+ } else if (faceDir.y != 0.0) {\n\
18
+ return vec4(scaledUV.x, -scaledUV.y * faceDir.y, faceDir.y, 0.0);\n\
19
+ } else {\n\
20
+ return vec4(scaledUV.x * faceDir.z, -faceDir.z, -scaledUV.y, 0.0); \n\
21
+ }\n\
22
+ }\n\
23
+ \n\
24
+ void main() { \n\
25
+ float height = length(u_positionWC);\n\
26
+ float atmosphereInnerRadius = u_radiiAndDynamicAtmosphereColor.y;\n\
27
+ float ellipsoidHeight = max(height - atmosphereInnerRadius, 0.0);\n\
28
+ \n\
29
+ // Scale the position to ensure the sky color is present, even when underground.\n\
30
+ vec3 positionWC = u_positionWC / height * (ellipsoidHeight + atmosphereInnerRadius);\n\
31
+ \n\
32
+ float atmosphereOuterRadius = u_radiiAndDynamicAtmosphereColor.x;\n\
33
+ float atmosphereHeight = atmosphereOuterRadius - atmosphereInnerRadius;\n\
34
+ \n\
35
+ vec3 direction = (u_enuToFixedFrame * getCubeMapDirection(v_textureCoordinates, u_faceDirection)).xyz;\n\
36
+ vec3 normalizedDirection = normalize(direction);\n\
37
+ \n\
38
+ czm_ray ray = czm_ray(positionWC, normalizedDirection);\n\
39
+ czm_raySegment intersection = czm_raySphereIntersectionInterval(ray, vec3(0.0), atmosphereInnerRadius);\n\
40
+ if (!czm_isEmpty(intersection)) {\n\
41
+ intersection = czm_rayEllipsoidIntersectionInterval(ray, vec3(0.0), czm_ellipsoidInverseRadii);\n\
42
+ }\n\
43
+ \n\
44
+ bool onEllipsoid = intersection.start >= 0.0;\n\
45
+ float rayLength = czm_branchFreeTernary(onEllipsoid, intersection.start, atmosphereOuterRadius);\n\
46
+ \n\
47
+ // Compute sky color for each position on a sphere at radius centered around the provided position's origin\n\
48
+ vec3 skyPositionWC = positionWC + normalizedDirection * rayLength;\n\
49
+ \n\
50
+ float lightEnum = u_radiiAndDynamicAtmosphereColor.z;\n\
51
+ vec3 lightDirectionWC = normalize(czm_getDynamicAtmosphereLightDirection(skyPositionWC, lightEnum));\n\
52
+ vec3 mieColor;\n\
53
+ vec3 rayleighColor;\n\
54
+ float opacity;\n\
55
+ czm_computeScattering(\n\
56
+ ray,\n\
57
+ rayLength,\n\
58
+ lightDirectionWC,\n\
59
+ atmosphereInnerRadius, \n\
60
+ rayleighColor,\n\
61
+ mieColor,\n\
62
+ opacity\n\
63
+ );\n\
64
+ \n\
65
+ vec4 atmopshereColor = czm_computeAtmosphereColor(ray, lightDirectionWC, rayleighColor, mieColor, opacity);\n\
66
+ \n\
67
+ #ifdef ATMOSPHERE_COLOR_CORRECT\n\
68
+ const bool ignoreBlackPixels = true;\n\
69
+ atmopshereColor.rgb = czm_applyHSBShift(atmopshereColor.rgb, czm_atmosphereHsbShift, ignoreBlackPixels);\n\
70
+ #endif\n\
71
+ \n\
72
+ vec3 lookupDirection = -normalizedDirection;\n\
73
+ // Flipping the X vector is a cheap way to get the inverse of czm_temeToPseudoFixed, since that's a rotation about Z.\n\
74
+ lookupDirection.x = -lookupDirection.x;\n\
75
+ lookupDirection = -normalize(czm_temeToPseudoFixed * lookupDirection);\n\
76
+ lookupDirection.x = -lookupDirection.x;\n\
77
+ \n\
78
+ // Values outside the atmopshere are rendered as black, when they should be treated as transparent\n\
79
+ float skyAlpha = clamp((1.0 - ellipsoidHeight / atmosphereHeight) * atmopshereColor.a, 0.0, 1.0);\n\
80
+ skyAlpha = czm_branchFreeTernary(length(atmopshereColor.rgb) <= czm_epsilon7, 0.0, skyAlpha); // Treat black as transparent\n\
81
+ \n\
82
+ // Blend starmap with atmopshere scattering\n\
83
+ float intensity = u_brightnessSaturationGammaIntensity.w;\n\
84
+ vec4 sceneSkyBoxColor = czm_textureCube(czm_environmentMap, lookupDirection);\n\
85
+ vec3 skyBackgroundColor = mix(czm_backgroundColor.rgb, sceneSkyBoxColor.rgb, sceneSkyBoxColor.a);\n\
86
+ vec4 combinedSkyColor = vec4(mix(skyBackgroundColor, atmopshereColor.rgb * intensity, skyAlpha), 1.0);\n\
87
+ \n\
88
+ // Compute ground color based on amount of reflected light, then blend it with ground atmosphere based on height\n\
89
+ vec3 up = normalize(positionWC);\n\
90
+ float occlusion = max(dot(lightDirectionWC, up), 0.05);\n\
91
+ vec4 groundColor = vec4(u_groundColor.rgb * u_groundColor.a * (vec3(intensity * occlusion) + atmopshereColor.rgb), 1.0);\n\
92
+ vec4 blendedGroundColor = mix(groundColor, atmopshereColor, clamp(ellipsoidHeight / atmosphereHeight, 0.0, 1.0));\n\
93
+ \n\
94
+ vec4 color = czm_branchFreeTernary(onEllipsoid, blendedGroundColor, combinedSkyColor);\n\
95
+ \n\
96
+ float brightness = u_brightnessSaturationGammaIntensity.x;\n\
97
+ float saturation = u_brightnessSaturationGammaIntensity.y;\n\
98
+ float gamma = u_brightnessSaturationGammaIntensity.z;\n\
99
+ \n\
100
+ #ifdef ENVIRONMENT_COLOR_CORRECT\n\
101
+ color.rgb = mix(vec3(0.0), color.rgb, brightness);\n\
102
+ color.rgb = czm_saturation(color.rgb, saturation);\n\
103
+ #endif\n\
104
+ color.rgb = pow(color.rgb, vec3(gamma)); // Normally this would be in the ifdef above, but there is a precision issue with the atmopshere scattering transmittance (alpha). Having this line is a workaround for that issue, even when gamma is 1.0.\n\
105
+ color.rgb = czm_gammaCorrect(color.rgb);\n\
106
+ \n\
107
+ out_FragColor = color;\n\
108
+ }\n\
109
+ ";
@@ -0,0 +1,70 @@
1
+ precision highp float;
2
+
3
+ in vec3 v_textureCoordinates;
4
+
5
+ uniform float u_roughness;
6
+ uniform samplerCube u_radianceTexture;
7
+ uniform vec3 u_faceDirection;
8
+
9
+ float vdcRadicalInverse(int i)
10
+ {
11
+ float r;
12
+ float base = 2.0;
13
+ float value = 0.0;
14
+ float invBase = 1.0 / base;
15
+ float invBi = invBase;
16
+ for (int x = 0; x < 100; x++)
17
+ {
18
+ if (i <= 0)
19
+ {
20
+ break;
21
+ }
22
+ r = mod(float(i), base);
23
+ value += r * invBi;
24
+ invBi *= invBase;
25
+ i = int(float(i) * invBase);
26
+ }
27
+ return value;
28
+ }
29
+
30
+ vec2 hammersley2D(int i, int N)
31
+ {
32
+ return vec2(float(i) / float(N), vdcRadicalInverse(i));
33
+ }
34
+
35
+ vec3 importanceSampleGGX(vec2 xi, float alphaRoughness, vec3 N)
36
+ {
37
+ float alphaRoughnessSquared = alphaRoughness * alphaRoughness;
38
+ float phi = czm_twoPi * xi.x;
39
+ float cosTheta = sqrt((1.0 - xi.y) / (1.0 + (alphaRoughnessSquared - 1.0) * xi.y));
40
+ float sinTheta = sqrt(1.0 - cosTheta * cosTheta);
41
+ vec3 H = vec3(sinTheta * cos(phi), sinTheta * sin(phi), cosTheta);
42
+ vec3 upVector = abs(N.z) < 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0);
43
+ vec3 tangentX = normalize(cross(upVector, N));
44
+ vec3 tangentY = cross(N, tangentX);
45
+ return tangentX * H.x + tangentY * H.y + N * H.z;
46
+ }
47
+
48
+ // Sample count is relatively low for the sake of performance, but should still be enough to prevent artifacting in lower roughnesses
49
+ const int samples = 128;
50
+
51
+ void main() {
52
+ vec3 normal = u_faceDirection;
53
+ vec3 V = normalize(v_textureCoordinates);
54
+ float roughness = u_roughness;
55
+
56
+ vec4 color = vec4(0.0);
57
+ float weight = 0.0;
58
+ for (int i = 0; i < samples; ++i) {
59
+ vec2 xi = hammersley2D(i, samples);
60
+ vec3 H = importanceSampleGGX(xi, roughness, V);
61
+ vec3 L = 2.0 * dot(V, H) * H - V; // reflected vector
62
+
63
+ float NdotL = max(dot(V, L), 0.0);
64
+ if (NdotL > 0.0) {
65
+ color += vec4(texture(u_radianceTexture, L).rgb, 1.0) * NdotL;
66
+ weight += NdotL;
67
+ }
68
+ }
69
+ out_FragColor = color / weight;
70
+ }
@@ -0,0 +1,72 @@
1
+ //This file is automatically rebuilt by the Cesium build process.
2
+ export default "precision highp float;\n\
3
+ \n\
4
+ in vec3 v_textureCoordinates;\n\
5
+ \n\
6
+ uniform float u_roughness;\n\
7
+ uniform samplerCube u_radianceTexture;\n\
8
+ uniform vec3 u_faceDirection;\n\
9
+ \n\
10
+ float vdcRadicalInverse(int i)\n\
11
+ {\n\
12
+ float r;\n\
13
+ float base = 2.0;\n\
14
+ float value = 0.0;\n\
15
+ float invBase = 1.0 / base;\n\
16
+ float invBi = invBase;\n\
17
+ for (int x = 0; x < 100; x++)\n\
18
+ {\n\
19
+ if (i <= 0)\n\
20
+ {\n\
21
+ break;\n\
22
+ }\n\
23
+ r = mod(float(i), base);\n\
24
+ value += r * invBi;\n\
25
+ invBi *= invBase;\n\
26
+ i = int(float(i) * invBase);\n\
27
+ }\n\
28
+ return value;\n\
29
+ }\n\
30
+ \n\
31
+ vec2 hammersley2D(int i, int N)\n\
32
+ {\n\
33
+ return vec2(float(i) / float(N), vdcRadicalInverse(i));\n\
34
+ }\n\
35
+ \n\
36
+ vec3 importanceSampleGGX(vec2 xi, float alphaRoughness, vec3 N)\n\
37
+ {\n\
38
+ float alphaRoughnessSquared = alphaRoughness * alphaRoughness;\n\
39
+ float phi = czm_twoPi * xi.x;\n\
40
+ float cosTheta = sqrt((1.0 - xi.y) / (1.0 + (alphaRoughnessSquared - 1.0) * xi.y));\n\
41
+ float sinTheta = sqrt(1.0 - cosTheta * cosTheta);\n\
42
+ vec3 H = vec3(sinTheta * cos(phi), sinTheta * sin(phi), cosTheta);\n\
43
+ vec3 upVector = abs(N.z) < 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0);\n\
44
+ vec3 tangentX = normalize(cross(upVector, N));\n\
45
+ vec3 tangentY = cross(N, tangentX);\n\
46
+ return tangentX * H.x + tangentY * H.y + N * H.z;\n\
47
+ }\n\
48
+ \n\
49
+ // Sample count is relatively low for the sake of performance, but should still be enough to prevent artifacting in lower roughnesses\n\
50
+ const int samples = 128;\n\
51
+ \n\
52
+ void main() {\n\
53
+ vec3 normal = u_faceDirection;\n\
54
+ vec3 V = normalize(v_textureCoordinates);\n\
55
+ float roughness = u_roughness;\n\
56
+ \n\
57
+ vec4 color = vec4(0.0);\n\
58
+ float weight = 0.0;\n\
59
+ for (int i = 0; i < samples; ++i) {\n\
60
+ vec2 xi = hammersley2D(i, samples);\n\
61
+ vec3 H = importanceSampleGGX(xi, roughness, V);\n\
62
+ vec3 L = 2.0 * dot(V, H) * H - V; // reflected vector\n\
63
+ \n\
64
+ float NdotL = max(dot(V, L), 0.0);\n\
65
+ if (NdotL > 0.0) {\n\
66
+ color += vec4(texture(u_radianceTexture, L).rgb, 1.0) * NdotL;\n\
67
+ weight += NdotL;\n\
68
+ }\n\
69
+ }\n\
70
+ out_FragColor = color / weight;\n\
71
+ }\n\
72
+ ";