@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
@@ -0,0 +1,24 @@
1
+ in vec3 position;
2
+ out vec3 v_textureCoordinates;
3
+
4
+ uniform vec3 u_faceDirection;
5
+
6
+ vec3 getCubeMapDirection(vec2 uv, vec3 faceDir) {
7
+ vec2 scaledUV = uv;
8
+
9
+ if (faceDir.x != 0.0) {
10
+ return vec3(faceDir.x, scaledUV.y, scaledUV.x * faceDir.x);
11
+ } else if (faceDir.y != 0.0) {
12
+ return vec3(scaledUV.x, -faceDir.y, -scaledUV.y * faceDir.y);
13
+ } else {
14
+ return vec3(scaledUV.x * faceDir.z, scaledUV.y, -faceDir.z);
15
+ }
16
+ }
17
+
18
+ void main()
19
+ {
20
+ v_textureCoordinates = getCubeMapDirection(position.xy, u_faceDirection);
21
+ v_textureCoordinates.y = -v_textureCoordinates.y;
22
+ v_textureCoordinates.z = -v_textureCoordinates.z;
23
+ gl_Position = vec4(position, 1.0);
24
+ }
@@ -0,0 +1,26 @@
1
+ //This file is automatically rebuilt by the Cesium build process.
2
+ export default "in vec3 position;\n\
3
+ out vec3 v_textureCoordinates;\n\
4
+ \n\
5
+ uniform vec3 u_faceDirection;\n\
6
+ \n\
7
+ vec3 getCubeMapDirection(vec2 uv, vec3 faceDir) {\n\
8
+ vec2 scaledUV = uv;\n\
9
+ \n\
10
+ if (faceDir.x != 0.0) {\n\
11
+ return vec3(faceDir.x, scaledUV.y, scaledUV.x * faceDir.x);\n\
12
+ } else if (faceDir.y != 0.0) {\n\
13
+ return vec3(scaledUV.x, -faceDir.y, -scaledUV.y * faceDir.y);\n\
14
+ } else {\n\
15
+ return vec3(scaledUV.x * faceDir.z, scaledUV.y, -faceDir.z); \n\
16
+ }\n\
17
+ }\n\
18
+ \n\
19
+ void main() \n\
20
+ {\n\
21
+ v_textureCoordinates = getCubeMapDirection(position.xy, u_faceDirection);\n\
22
+ v_textureCoordinates.y = -v_textureCoordinates.y;\n\
23
+ v_textureCoordinates.z = -v_textureCoordinates.z;\n\
24
+ gl_Position = vec4(position, 1.0);\n\
25
+ }\n\
26
+ ";
@@ -5,7 +5,7 @@ out vec4 positionEC;
5
5
  void main()
6
6
  {
7
7
  positionEC = czm_modelView * position;
8
- gl_Position = czm_projection * positionEC;
8
+ gl_Position = czm_modelViewProjection * position;
9
9
 
10
10
  czm_vertexLogDepth();
11
11
  }
@@ -6,7 +6,7 @@ out vec4 positionEC;\n\
6
6
  void main()\n\
7
7
  {\n\
8
8
  positionEC = czm_modelView * position;\n\
9
- gl_Position = czm_projection * positionEC;\n\
9
+ gl_Position = czm_modelViewProjection * position;\n\
10
10
  \n\
11
11
  czm_vertexLogDepth();\n\
12
12
  }\n\
@@ -499,8 +499,7 @@ void main()
499
499
  fogColor.rgb = czm_inverseGamma(fogColor.rgb);
500
500
  #endif
501
501
 
502
- const float modifier = 0.15;
503
- finalColor = vec4(czm_fog(v_distance, finalColor.rgb, fogColor.rgb, modifier), finalColor.a);
502
+ finalColor = vec4(czm_fog(v_distance, finalColor.rgb, fogColor.rgb, czm_fogVisualDensityScalar), finalColor.a);
504
503
 
505
504
  #else
506
505
  // Apply ground atmosphere. This happens when the camera is far away from the earth.
@@ -500,8 +500,7 @@ void main()\n\
500
500
  fogColor.rgb = czm_inverseGamma(fogColor.rgb);\n\
501
501
  #endif\n\
502
502
  \n\
503
- const float modifier = 0.15;\n\
504
- finalColor = vec4(czm_fog(v_distance, finalColor.rgb, fogColor.rgb, modifier), finalColor.a);\n\
503
+ finalColor = vec4(czm_fog(v_distance, finalColor.rgb, fogColor.rgb, czm_fogVisualDensityScalar), finalColor.a);\n\
505
504
  \n\
506
505
  #else\n\
507
506
  // Apply ground atmosphere. This happens when the camera is far away from the earth.\n\
@@ -56,10 +56,7 @@ void applyFog(inout vec4 color, vec4 groundAtmosphereColor, vec3 lightDirection,
56
56
  fogColor.rgb = czm_inverseGamma(fogColor.rgb);
57
57
  #endif
58
58
 
59
- // Matches the constant in GlobeFS.glsl. This makes the fog falloff
60
- // more gradual.
61
- const float fogModifier = 0.15;
62
- vec3 withFog = czm_fog(distanceToCamera, color.rgb, fogColor, fogModifier);
59
+ vec3 withFog = czm_fog(distanceToCamera, color.rgb, fogColor, czm_fogVisualDensityScalar);
63
60
  color = vec4(withFog, color.a);
64
61
  }
65
62
 
@@ -57,10 +57,7 @@ void applyFog(inout vec4 color, vec4 groundAtmosphereColor, vec3 lightDirection,
57
57
  fogColor.rgb = czm_inverseGamma(fogColor.rgb);\n\
58
58
  #endif\n\
59
59
  \n\
60
- // Matches the constant in GlobeFS.glsl. This makes the fog falloff\n\
61
- // more gradual.\n\
62
- const float fogModifier = 0.15;\n\
63
- vec3 withFog = czm_fog(distanceToCamera, color.rgb, fogColor, fogModifier);\n\
60
+ vec3 withFog = czm_fog(distanceToCamera, color.rgb, fogColor, czm_fogVisualDensityScalar);\n\
64
61
  color = vec4(withFog, color.a);\n\
65
62
  }\n\
66
63
  \n\
@@ -1,156 +1,3 @@
1
- /**
2
- * Compute some metrics for a procedural sky lighting model
3
- *
4
- * @param {vec3} positionWC The position of the fragment in world coordinates.
5
- * @param {vec3} reflectionWC A unit vector in the direction of the reflection, in world coordinates.
6
- * @return {vec3} The dot products of the horizon and reflection directions with the nadir, and an atmosphere boundary distance.
7
- */
8
- vec3 getProceduralSkyMetrics(vec3 positionWC, vec3 reflectionWC)
9
- {
10
- // Figure out if the reflection vector hits the ellipsoid
11
- float horizonDotNadir = 1.0 - min(1.0, czm_ellipsoidRadii.x / length(positionWC));
12
- float reflectionDotNadir = dot(reflectionWC, normalize(positionWC));
13
- float atmosphereHeight = 0.05;
14
- float smoothstepHeight = smoothstep(0.0, atmosphereHeight, horizonDotNadir);
15
- return vec3(horizonDotNadir, reflectionDotNadir, smoothstepHeight);
16
- }
17
-
18
- /**
19
- * Compute the diffuse irradiance for a procedural sky lighting model.
20
- *
21
- * @param {vec3} skyMetrics The dot products of the horizon and reflection directions with the nadir, and an atmosphere boundary distance.
22
- * @return {vec3} The computed diffuse irradiance.
23
- */
24
- vec3 getProceduralDiffuseIrradiance(vec3 skyMetrics)
25
- {
26
- vec3 blueSkyDiffuseColor = vec3(0.7, 0.85, 0.9);
27
- float diffuseIrradianceFromEarth = (1.0 - skyMetrics.x) * (skyMetrics.y * 0.25 + 0.75) * skyMetrics.z;
28
- float diffuseIrradianceFromSky = (1.0 - skyMetrics.z) * (1.0 - (skyMetrics.y * 0.25 + 0.25));
29
- return blueSkyDiffuseColor * clamp(diffuseIrradianceFromEarth + diffuseIrradianceFromSky, 0.0, 1.0);
30
- }
31
-
32
- /**
33
- * Compute the specular irradiance for a procedural sky lighting model.
34
- *
35
- * @param {vec3} reflectionWC The reflection vector in world coordinates.
36
- * @param {vec3} skyMetrics The dot products of the horizon and reflection directions with the nadir, and an atmosphere boundary distance.
37
- * @param {float} roughness The roughness of the material.
38
- * @return {vec3} The computed specular irradiance.
39
- */
40
- vec3 getProceduralSpecularIrradiance(vec3 reflectionWC, vec3 skyMetrics, float roughness)
41
- {
42
- // Flipping the X vector is a cheap way to get the inverse of czm_temeToPseudoFixed, since that's a rotation about Z.
43
- reflectionWC.x = -reflectionWC.x;
44
- reflectionWC = -normalize(czm_temeToPseudoFixed * reflectionWC);
45
- reflectionWC.x = -reflectionWC.x;
46
-
47
- float inverseRoughness = 1.0 - roughness;
48
- inverseRoughness *= inverseRoughness;
49
- vec3 sceneSkyBox = czm_textureCube(czm_environmentMap, reflectionWC).rgb * inverseRoughness;
50
-
51
- // Compute colors at different angles relative to the horizon
52
- vec3 belowHorizonColor = mix(vec3(0.1, 0.15, 0.25), vec3(0.4, 0.7, 0.9), skyMetrics.z);
53
- vec3 nadirColor = belowHorizonColor * 0.5;
54
- vec3 aboveHorizonColor = mix(vec3(0.9, 1.0, 1.2), belowHorizonColor, roughness * 0.5);
55
- vec3 blueSkyColor = mix(vec3(0.18, 0.26, 0.48), aboveHorizonColor, skyMetrics.y * inverseRoughness * 0.5 + 0.75);
56
- vec3 zenithColor = mix(blueSkyColor, sceneSkyBox, skyMetrics.z);
57
-
58
- // Compute blend zones
59
- float blendRegionSize = 0.1 * ((1.0 - inverseRoughness) * 8.0 + 1.1 - skyMetrics.x);
60
- float blendRegionOffset = roughness * -1.0;
61
- float farAboveHorizon = clamp(skyMetrics.x - blendRegionSize * 0.5 + blendRegionOffset, 1.0e-10 - blendRegionSize, 0.99999);
62
- float aroundHorizon = clamp(skyMetrics.x + blendRegionSize * 0.5, 1.0e-10 - blendRegionSize, 0.99999);
63
- float farBelowHorizon = clamp(skyMetrics.x + blendRegionSize * 1.5, 1.0e-10 - blendRegionSize, 0.99999);
64
-
65
- // Blend colors
66
- float notDistantRough = (1.0 - skyMetrics.x * roughness * 0.8);
67
- vec3 specularIrradiance = mix(zenithColor, aboveHorizonColor, smoothstep(farAboveHorizon, aroundHorizon, skyMetrics.y) * notDistantRough);
68
- specularIrradiance = mix(specularIrradiance, belowHorizonColor, smoothstep(aroundHorizon, farBelowHorizon, skyMetrics.y) * inverseRoughness);
69
- specularIrradiance = mix(specularIrradiance, nadirColor, smoothstep(farBelowHorizon, 1.0, skyMetrics.y) * inverseRoughness);
70
-
71
- return specularIrradiance;
72
- }
73
-
74
- #ifdef USE_SUN_LUMINANCE
75
- float clampedDot(vec3 x, vec3 y)
76
- {
77
- return clamp(dot(x, y), 0.001, 1.0);
78
- }
79
- /**
80
- * Sun luminance following the "CIE Clear Sky Model"
81
- * See page 40 of https://3dvar.com/Green2003Spherical.pdf
82
- *
83
- * @param {vec3} positionWC The position of the fragment in world coordinates.
84
- * @param {vec3} normalEC The surface normal in eye coordinates.
85
- * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates.
86
- * @return {float} The computed sun luminance.
87
- */
88
- float getSunLuminance(vec3 positionWC, vec3 normalEC, vec3 lightDirectionEC)
89
- {
90
- vec3 normalWC = normalize(czm_inverseViewRotation * normalEC);
91
- vec3 lightDirectionWC = normalize(czm_inverseViewRotation * lightDirectionEC);
92
- vec3 vWC = -normalize(positionWC);
93
-
94
- // Angle between sun and zenith.
95
- float LdotZenith = clampedDot(lightDirectionWC, vWC);
96
- float S = acos(LdotZenith);
97
- // Angle between zenith and current pixel
98
- float NdotZenith = clampedDot(normalWC, vWC);
99
- // Angle between sun and current pixel
100
- float NdotL = clampedDot(normalEC, lightDirectionEC);
101
- float gamma = acos(NdotL);
102
-
103
- float numerator = ((0.91 + 10.0 * exp(-3.0 * gamma) + 0.45 * NdotL * NdotL) * (1.0 - exp(-0.32 / NdotZenith)));
104
- float denominator = (0.91 + 10.0 * exp(-3.0 * S) + 0.45 * LdotZenith * LdotZenith) * (1.0 - exp(-0.32));
105
- return model_luminanceAtZenith * (numerator / denominator);
106
- }
107
- #endif
108
-
109
- /**
110
- * Compute the light contribution from a procedural sky model
111
- *
112
- * @param {vec3} positionEC The position of the fragment in eye coordinates.
113
- * @param {vec3} normalEC The surface normal in eye coordinates.
114
- * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates.
115
- * @param {czm_modelMaterial} The material properties.
116
- * @return {vec3} The computed HDR color
117
- */
118
- vec3 proceduralIBL(
119
- vec3 positionEC,
120
- vec3 normalEC,
121
- vec3 lightDirectionEC,
122
- czm_modelMaterial material
123
- ) {
124
- vec3 viewDirectionEC = -normalize(positionEC);
125
- vec3 positionWC = vec3(czm_inverseView * vec4(positionEC, 1.0));
126
- vec3 reflectionWC = normalize(czm_inverseViewRotation * reflect(viewDirectionEC, normalEC));
127
- vec3 skyMetrics = getProceduralSkyMetrics(positionWC, reflectionWC);
128
-
129
- float roughness = material.roughness;
130
- vec3 f0 = material.specular;
131
-
132
- vec3 specularIrradiance = getProceduralSpecularIrradiance(reflectionWC, skyMetrics, roughness);
133
- float NdotV = abs(dot(normalEC, viewDirectionEC)) + 0.001;
134
- vec2 brdfLut = texture(czm_brdfLut, vec2(NdotV, roughness)).rg;
135
- vec3 specularColor = czm_srgbToLinear(f0 * brdfLut.x + brdfLut.y);
136
- vec3 specularContribution = specularIrradiance * specularColor * model_iblFactor.y;
137
- #ifdef USE_SPECULAR
138
- specularContribution *= material.specularWeight;
139
- #endif
140
-
141
- vec3 diffuseIrradiance = getProceduralDiffuseIrradiance(skyMetrics);
142
- vec3 diffuseColor = material.diffuse;
143
- vec3 diffuseContribution = diffuseIrradiance * diffuseColor * model_iblFactor.x;
144
-
145
- vec3 iblColor = specularContribution + diffuseContribution;
146
-
147
- #ifdef USE_SUN_LUMINANCE
148
- iblColor *= getSunLuminance(positionWC, normalEC, lightDirectionEC);
149
- #endif
150
-
151
- return iblColor;
152
- }
153
-
154
1
  #ifdef DIFFUSE_IBL
155
2
  vec3 sampleDiffuseEnvironment(vec3 cubeDir)
156
3
  {
@@ -223,7 +70,7 @@ vec3 textureIBL(vec3 viewDirectionEC, vec3 normalEC, czm_modelMaterial material)
223
70
  float Ems = specularWeight * (1.0 - brdfLut.x - brdfLut.y);
224
71
  vec3 FmsEms = FssEss * averageFresnel * Ems / (1.0 - averageFresnel * Ems);
225
72
  vec3 dielectricScattering = (1.0 - FssEss - FmsEms) * material.diffuse;
226
- vec3 diffuseContribution = irradiance * (FmsEms + dielectricScattering);
73
+ vec3 diffuseContribution = irradiance * (FmsEms + dielectricScattering) * model_iblFactor.x;
227
74
  #else
228
75
  vec3 diffuseContribution = vec3(0.0);
229
76
  #endif
@@ -244,7 +91,7 @@ vec3 textureIBL(vec3 viewDirectionEC, vec3 normalEC, czm_modelMaterial material)
244
91
  #ifdef SPECULAR_IBL
245
92
  vec3 reflectMC = normalize(model_iblReferenceFrameMatrix * reflectEC);
246
93
  vec3 radiance = sampleSpecularEnvironment(reflectMC, roughness);
247
- vec3 specularContribution = radiance * FssEss;
94
+ vec3 specularContribution = radiance * FssEss * model_iblFactor.y;
248
95
  #else
249
96
  vec3 specularContribution = vec3(0.0);
250
97
  #endif
@@ -1,158 +1,5 @@
1
1
  //This file is automatically rebuilt by the Cesium build process.
2
- export default "/**\n\
3
- * Compute some metrics for a procedural sky lighting model\n\
4
- *\n\
5
- * @param {vec3} positionWC The position of the fragment in world coordinates.\n\
6
- * @param {vec3} reflectionWC A unit vector in the direction of the reflection, in world coordinates.\n\
7
- * @return {vec3} The dot products of the horizon and reflection directions with the nadir, and an atmosphere boundary distance.\n\
8
- */\n\
9
- vec3 getProceduralSkyMetrics(vec3 positionWC, vec3 reflectionWC)\n\
10
- {\n\
11
- // Figure out if the reflection vector hits the ellipsoid\n\
12
- float horizonDotNadir = 1.0 - min(1.0, czm_ellipsoidRadii.x / length(positionWC));\n\
13
- float reflectionDotNadir = dot(reflectionWC, normalize(positionWC));\n\
14
- float atmosphereHeight = 0.05;\n\
15
- float smoothstepHeight = smoothstep(0.0, atmosphereHeight, horizonDotNadir);\n\
16
- return vec3(horizonDotNadir, reflectionDotNadir, smoothstepHeight);\n\
17
- }\n\
18
- \n\
19
- /**\n\
20
- * Compute the diffuse irradiance for a procedural sky lighting model.\n\
21
- *\n\
22
- * @param {vec3} skyMetrics The dot products of the horizon and reflection directions with the nadir, and an atmosphere boundary distance.\n\
23
- * @return {vec3} The computed diffuse irradiance.\n\
24
- */\n\
25
- vec3 getProceduralDiffuseIrradiance(vec3 skyMetrics)\n\
26
- {\n\
27
- vec3 blueSkyDiffuseColor = vec3(0.7, 0.85, 0.9); \n\
28
- float diffuseIrradianceFromEarth = (1.0 - skyMetrics.x) * (skyMetrics.y * 0.25 + 0.75) * skyMetrics.z; \n\
29
- float diffuseIrradianceFromSky = (1.0 - skyMetrics.z) * (1.0 - (skyMetrics.y * 0.25 + 0.25));\n\
30
- return blueSkyDiffuseColor * clamp(diffuseIrradianceFromEarth + diffuseIrradianceFromSky, 0.0, 1.0);\n\
31
- }\n\
32
- \n\
33
- /**\n\
34
- * Compute the specular irradiance for a procedural sky lighting model.\n\
35
- *\n\
36
- * @param {vec3} reflectionWC The reflection vector in world coordinates.\n\
37
- * @param {vec3} skyMetrics The dot products of the horizon and reflection directions with the nadir, and an atmosphere boundary distance.\n\
38
- * @param {float} roughness The roughness of the material.\n\
39
- * @return {vec3} The computed specular irradiance.\n\
40
- */\n\
41
- vec3 getProceduralSpecularIrradiance(vec3 reflectionWC, vec3 skyMetrics, float roughness)\n\
42
- {\n\
43
- // Flipping the X vector is a cheap way to get the inverse of czm_temeToPseudoFixed, since that's a rotation about Z.\n\
44
- reflectionWC.x = -reflectionWC.x;\n\
45
- reflectionWC = -normalize(czm_temeToPseudoFixed * reflectionWC);\n\
46
- reflectionWC.x = -reflectionWC.x;\n\
47
- \n\
48
- float inverseRoughness = 1.0 - roughness;\n\
49
- inverseRoughness *= inverseRoughness;\n\
50
- vec3 sceneSkyBox = czm_textureCube(czm_environmentMap, reflectionWC).rgb * inverseRoughness;\n\
51
- \n\
52
- // Compute colors at different angles relative to the horizon\n\
53
- vec3 belowHorizonColor = mix(vec3(0.1, 0.15, 0.25), vec3(0.4, 0.7, 0.9), skyMetrics.z);\n\
54
- vec3 nadirColor = belowHorizonColor * 0.5;\n\
55
- vec3 aboveHorizonColor = mix(vec3(0.9, 1.0, 1.2), belowHorizonColor, roughness * 0.5);\n\
56
- vec3 blueSkyColor = mix(vec3(0.18, 0.26, 0.48), aboveHorizonColor, skyMetrics.y * inverseRoughness * 0.5 + 0.75);\n\
57
- vec3 zenithColor = mix(blueSkyColor, sceneSkyBox, skyMetrics.z);\n\
58
- \n\
59
- // Compute blend zones\n\
60
- float blendRegionSize = 0.1 * ((1.0 - inverseRoughness) * 8.0 + 1.1 - skyMetrics.x);\n\
61
- float blendRegionOffset = roughness * -1.0;\n\
62
- float farAboveHorizon = clamp(skyMetrics.x - blendRegionSize * 0.5 + blendRegionOffset, 1.0e-10 - blendRegionSize, 0.99999);\n\
63
- float aroundHorizon = clamp(skyMetrics.x + blendRegionSize * 0.5, 1.0e-10 - blendRegionSize, 0.99999);\n\
64
- float farBelowHorizon = clamp(skyMetrics.x + blendRegionSize * 1.5, 1.0e-10 - blendRegionSize, 0.99999);\n\
65
- \n\
66
- // Blend colors\n\
67
- float notDistantRough = (1.0 - skyMetrics.x * roughness * 0.8);\n\
68
- vec3 specularIrradiance = mix(zenithColor, aboveHorizonColor, smoothstep(farAboveHorizon, aroundHorizon, skyMetrics.y) * notDistantRough);\n\
69
- specularIrradiance = mix(specularIrradiance, belowHorizonColor, smoothstep(aroundHorizon, farBelowHorizon, skyMetrics.y) * inverseRoughness);\n\
70
- specularIrradiance = mix(specularIrradiance, nadirColor, smoothstep(farBelowHorizon, 1.0, skyMetrics.y) * inverseRoughness);\n\
71
- \n\
72
- return specularIrradiance;\n\
73
- }\n\
74
- \n\
75
- #ifdef USE_SUN_LUMINANCE\n\
76
- float clampedDot(vec3 x, vec3 y)\n\
77
- {\n\
78
- return clamp(dot(x, y), 0.001, 1.0);\n\
79
- }\n\
80
- /**\n\
81
- * Sun luminance following the \"CIE Clear Sky Model\"\n\
82
- * See page 40 of https://3dvar.com/Green2003Spherical.pdf\n\
83
- *\n\
84
- * @param {vec3} positionWC The position of the fragment in world coordinates.\n\
85
- * @param {vec3} normalEC The surface normal in eye coordinates.\n\
86
- * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates.\n\
87
- * @return {float} The computed sun luminance.\n\
88
- */\n\
89
- float getSunLuminance(vec3 positionWC, vec3 normalEC, vec3 lightDirectionEC)\n\
90
- {\n\
91
- vec3 normalWC = normalize(czm_inverseViewRotation * normalEC);\n\
92
- vec3 lightDirectionWC = normalize(czm_inverseViewRotation * lightDirectionEC);\n\
93
- vec3 vWC = -normalize(positionWC);\n\
94
- \n\
95
- // Angle between sun and zenith.\n\
96
- float LdotZenith = clampedDot(lightDirectionWC, vWC);\n\
97
- float S = acos(LdotZenith);\n\
98
- // Angle between zenith and current pixel\n\
99
- float NdotZenith = clampedDot(normalWC, vWC);\n\
100
- // Angle between sun and current pixel\n\
101
- float NdotL = clampedDot(normalEC, lightDirectionEC);\n\
102
- float gamma = acos(NdotL);\n\
103
- \n\
104
- float numerator = ((0.91 + 10.0 * exp(-3.0 * gamma) + 0.45 * NdotL * NdotL) * (1.0 - exp(-0.32 / NdotZenith)));\n\
105
- float denominator = (0.91 + 10.0 * exp(-3.0 * S) + 0.45 * LdotZenith * LdotZenith) * (1.0 - exp(-0.32));\n\
106
- return model_luminanceAtZenith * (numerator / denominator);\n\
107
- }\n\
108
- #endif\n\
109
- \n\
110
- /**\n\
111
- * Compute the light contribution from a procedural sky model\n\
112
- *\n\
113
- * @param {vec3} positionEC The position of the fragment in eye coordinates.\n\
114
- * @param {vec3} normalEC The surface normal in eye coordinates.\n\
115
- * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates.\n\
116
- * @param {czm_modelMaterial} The material properties.\n\
117
- * @return {vec3} The computed HDR color\n\
118
- */\n\
119
- vec3 proceduralIBL(\n\
120
- vec3 positionEC,\n\
121
- vec3 normalEC,\n\
122
- vec3 lightDirectionEC,\n\
123
- czm_modelMaterial material\n\
124
- ) {\n\
125
- vec3 viewDirectionEC = -normalize(positionEC);\n\
126
- vec3 positionWC = vec3(czm_inverseView * vec4(positionEC, 1.0));\n\
127
- vec3 reflectionWC = normalize(czm_inverseViewRotation * reflect(viewDirectionEC, normalEC));\n\
128
- vec3 skyMetrics = getProceduralSkyMetrics(positionWC, reflectionWC);\n\
129
- \n\
130
- float roughness = material.roughness;\n\
131
- vec3 f0 = material.specular;\n\
132
- \n\
133
- vec3 specularIrradiance = getProceduralSpecularIrradiance(reflectionWC, skyMetrics, roughness);\n\
134
- float NdotV = abs(dot(normalEC, viewDirectionEC)) + 0.001;\n\
135
- vec2 brdfLut = texture(czm_brdfLut, vec2(NdotV, roughness)).rg;\n\
136
- vec3 specularColor = czm_srgbToLinear(f0 * brdfLut.x + brdfLut.y);\n\
137
- vec3 specularContribution = specularIrradiance * specularColor * model_iblFactor.y;\n\
138
- #ifdef USE_SPECULAR\n\
139
- specularContribution *= material.specularWeight;\n\
140
- #endif\n\
141
- \n\
142
- vec3 diffuseIrradiance = getProceduralDiffuseIrradiance(skyMetrics);\n\
143
- vec3 diffuseColor = material.diffuse;\n\
144
- vec3 diffuseContribution = diffuseIrradiance * diffuseColor * model_iblFactor.x;\n\
145
- \n\
146
- vec3 iblColor = specularContribution + diffuseContribution;\n\
147
- \n\
148
- #ifdef USE_SUN_LUMINANCE\n\
149
- iblColor *= getSunLuminance(positionWC, normalEC, lightDirectionEC);\n\
150
- #endif\n\
151
- \n\
152
- return iblColor;\n\
153
- }\n\
154
- \n\
155
- #ifdef DIFFUSE_IBL\n\
2
+ export default "#ifdef DIFFUSE_IBL\n\
156
3
  vec3 sampleDiffuseEnvironment(vec3 cubeDir)\n\
157
4
  {\n\
158
5
  #ifdef CUSTOM_SPHERICAL_HARMONICS\n\
@@ -224,7 +71,7 @@ vec3 textureIBL(vec3 viewDirectionEC, vec3 normalEC, czm_modelMaterial material)
224
71
  float Ems = specularWeight * (1.0 - brdfLut.x - brdfLut.y);\n\
225
72
  vec3 FmsEms = FssEss * averageFresnel * Ems / (1.0 - averageFresnel * Ems);\n\
226
73
  vec3 dielectricScattering = (1.0 - FssEss - FmsEms) * material.diffuse;\n\
227
- vec3 diffuseContribution = irradiance * (FmsEms + dielectricScattering);\n\
74
+ vec3 diffuseContribution = irradiance * (FmsEms + dielectricScattering) * model_iblFactor.x;\n\
228
75
  #else\n\
229
76
  vec3 diffuseContribution = vec3(0.0);\n\
230
77
  #endif\n\
@@ -245,7 +92,7 @@ vec3 textureIBL(vec3 viewDirectionEC, vec3 normalEC, czm_modelMaterial material)
245
92
  #ifdef SPECULAR_IBL\n\
246
93
  vec3 reflectMC = normalize(model_iblReferenceFrameMatrix * reflectEC);\n\
247
94
  vec3 radiance = sampleSpecularEnvironment(reflectMC, roughness);\n\
248
- vec3 specularContribution = radiance * FssEss;\n\
95
+ vec3 specularContribution = radiance * FssEss * model_iblFactor.y;\n\
249
96
  #else\n\
250
97
  vec3 specularContribution = vec3(0.0);\n\
251
98
  #endif\n\
@@ -5,14 +5,10 @@ vec3 computeIBL(vec3 position, vec3 normal, vec3 lightDirection, vec3 lightColor
5
5
  // Environment maps were provided, use them for IBL
6
6
  vec3 viewDirection = -normalize(position);
7
7
  vec3 iblColor = textureIBL(viewDirection, normal, material);
8
- #else
9
- // Use procedural IBL if there are no environment maps
10
- vec3 imageBasedLighting = proceduralIBL(position, normal, lightDirection, material);
11
- float maximumComponent = czm_maximumComponent(lightColorHdr);
12
- vec3 clampedLightColor = lightColorHdr / max(maximumComponent, 1.0);
13
- vec3 iblColor = clampedLightColor * imageBasedLighting;
8
+ return iblColor;
14
9
  #endif
15
- return iblColor * material.occlusion;
10
+
11
+ return vec3(0.0);
16
12
  }
17
13
  #endif
18
14
 
@@ -44,21 +40,6 @@ vec3 addClearcoatReflection(vec3 baseLayerColor, vec3 position, vec3 lightDirect
44
40
  vec3 reflectMC = normalize(model_iblReferenceFrameMatrix * reflect(-viewDirection, normal));
45
41
  vec3 iblColor = computeSpecularIBL(reflectMC, NdotV, f0, roughness);
46
42
  color += iblColor * material.occlusion;
47
- #elif defined(USE_IBL_LIGHTING)
48
- vec3 positionWC = vec3(czm_inverseView * vec4(position, 1.0));
49
- vec3 reflectionWC = normalize(czm_inverseViewRotation * reflect(viewDirection, normal));
50
- vec3 skyMetrics = getProceduralSkyMetrics(positionWC, reflectionWC);
51
-
52
- vec3 specularIrradiance = getProceduralSpecularIrradiance(reflectionWC, skyMetrics, roughness);
53
- vec2 brdfLut = texture(czm_brdfLut, vec2(NdotV, roughness)).rg;
54
- vec3 specularColor = czm_srgbToLinear(f0 * brdfLut.x + brdfLut.y);
55
- vec3 iblColor = specularIrradiance * specularColor * model_iblFactor.y;
56
- #ifdef USE_SUN_LUMINANCE
57
- iblColor *= getSunLuminance(positionWC, normal, lightDirection);
58
- #endif
59
- float maximumComponent = czm_maximumComponent(lightColorHdr);
60
- vec3 clampedLightColor = lightColorHdr / max(maximumComponent, 1.0);
61
- color += clampedLightColor * iblColor * material.occlusion;
62
43
  #endif
63
44
 
64
45
  float clearcoatFactor = material.clearcoatFactor;
@@ -6,14 +6,10 @@ vec3 computeIBL(vec3 position, vec3 normal, vec3 lightDirection, vec3 lightColor
6
6
  // Environment maps were provided, use them for IBL\n\
7
7
  vec3 viewDirection = -normalize(position);\n\
8
8
  vec3 iblColor = textureIBL(viewDirection, normal, material);\n\
9
- #else\n\
10
- // Use procedural IBL if there are no environment maps\n\
11
- vec3 imageBasedLighting = proceduralIBL(position, normal, lightDirection, material);\n\
12
- float maximumComponent = czm_maximumComponent(lightColorHdr);\n\
13
- vec3 clampedLightColor = lightColorHdr / max(maximumComponent, 1.0);\n\
14
- vec3 iblColor = clampedLightColor * imageBasedLighting;\n\
9
+ return iblColor;\n\
15
10
  #endif\n\
16
- return iblColor * material.occlusion;\n\
11
+ \n\
12
+ return vec3(0.0);\n\
17
13
  }\n\
18
14
  #endif\n\
19
15
  \n\
@@ -45,21 +41,6 @@ vec3 addClearcoatReflection(vec3 baseLayerColor, vec3 position, vec3 lightDirect
45
41
  vec3 reflectMC = normalize(model_iblReferenceFrameMatrix * reflect(-viewDirection, normal));\n\
46
42
  vec3 iblColor = computeSpecularIBL(reflectMC, NdotV, f0, roughness);\n\
47
43
  color += iblColor * material.occlusion;\n\
48
- #elif defined(USE_IBL_LIGHTING)\n\
49
- vec3 positionWC = vec3(czm_inverseView * vec4(position, 1.0));\n\
50
- vec3 reflectionWC = normalize(czm_inverseViewRotation * reflect(viewDirection, normal));\n\
51
- vec3 skyMetrics = getProceduralSkyMetrics(positionWC, reflectionWC);\n\
52
- \n\
53
- vec3 specularIrradiance = getProceduralSpecularIrradiance(reflectionWC, skyMetrics, roughness);\n\
54
- vec2 brdfLut = texture(czm_brdfLut, vec2(NdotV, roughness)).rg;\n\
55
- vec3 specularColor = czm_srgbToLinear(f0 * brdfLut.x + brdfLut.y);\n\
56
- vec3 iblColor = specularIrradiance * specularColor * model_iblFactor.y;\n\
57
- #ifdef USE_SUN_LUMINANCE\n\
58
- iblColor *= getSunLuminance(positionWC, normal, lightDirection);\n\
59
- #endif\n\
60
- float maximumComponent = czm_maximumComponent(lightColorHdr);\n\
61
- vec3 clampedLightColor = lightColorHdr / max(maximumComponent, 1.0);\n\
62
- color += clampedLightColor * iblColor * material.occlusion;\n\
63
44
  #endif\n\
64
45
  \n\
65
46
  float clearcoatFactor = material.clearcoatFactor;\n\
@@ -45,6 +45,10 @@ void main()
45
45
  MetadataStatistics metadataStatistics;
46
46
  metadataStage(metadata, metadataClass, metadataStatistics, attributes);
47
47
 
48
+ //========================================================================
49
+ // When not picking metadata START
50
+ #ifndef METADATA_PICKING_ENABLED
51
+
48
52
  #ifdef HAS_SELECTED_FEATURE_ID
49
53
  selectedFeatureIdStage(selectedFeature, featureIds);
50
54
  #endif
@@ -73,6 +77,20 @@ void main()
73
77
 
74
78
  vec4 color = handleAlpha(material.diffuse, material.alpha);
75
79
 
80
+ // When not picking metadata END
81
+ //========================================================================
82
+ #else
83
+ //========================================================================
84
+ // When picking metadata START
85
+
86
+ vec4 metadataValues = vec4(0.0, 0.0, 0.0, 0.0);
87
+ metadataPickingStage(metadata, metadataClass, metadataValues);
88
+ vec4 color = metadataValues;
89
+
90
+ #endif
91
+ // When picking metadata END
92
+ //========================================================================
93
+
76
94
  #ifdef HAS_CLIPPING_PLANES
77
95
  modelClippingPlanesStage(color);
78
96
  #endif
@@ -81,6 +99,10 @@ void main()
81
99
  modelClippingPolygonsStage();
82
100
  #endif
83
101
 
102
+ //========================================================================
103
+ // When not picking metadata START
104
+ #ifndef METADATA_PICKING_ENABLED
105
+
84
106
  #if defined(HAS_SILHOUETTE) && defined(HAS_NORMALS)
85
107
  silhouetteStage(color);
86
108
  #endif
@@ -89,5 +111,9 @@ void main()
89
111
  atmosphereStage(color, attributes);
90
112
  #endif
91
113
 
114
+ #endif
115
+ // When not picking metadata END
116
+ //========================================================================
117
+
92
118
  out_FragColor = color;
93
119
  }
@@ -45,6 +45,10 @@ void main()\n\
45
45
  MetadataClass metadataClass;\n\
46
46
  MetadataStatistics metadataStatistics;\n\
47
47
  metadataStage(metadata, metadataClass, metadataStatistics, attributes);\n\
48
+ \n\
49
+ //========================================================================\n\
50
+ // When not picking metadata START\n\
51
+ #ifndef METADATA_PICKING_ENABLED\n\
48
52
  \n\
49
53
  #ifdef HAS_SELECTED_FEATURE_ID\n\
50
54
  selectedFeatureIdStage(selectedFeature, featureIds);\n\
@@ -73,6 +77,20 @@ void main()\n\
73
77
  #endif\n\
74
78
  \n\
75
79
  vec4 color = handleAlpha(material.diffuse, material.alpha);\n\
80
+ \n\
81
+ // When not picking metadata END\n\
82
+ //========================================================================\n\
83
+ #else \n\
84
+ //========================================================================\n\
85
+ // When picking metadata START\n\
86
+ \n\
87
+ vec4 metadataValues = vec4(0.0, 0.0, 0.0, 0.0);\n\
88
+ metadataPickingStage(metadata, metadataClass, metadataValues);\n\
89
+ vec4 color = metadataValues;\n\
90
+ \n\
91
+ #endif\n\
92
+ // When picking metadata END\n\
93
+ //========================================================================\n\
76
94
  \n\
77
95
  #ifdef HAS_CLIPPING_PLANES\n\
78
96
  modelClippingPlanesStage(color);\n\
@@ -81,6 +99,10 @@ void main()\n\
81
99
  #ifdef ENABLE_CLIPPING_POLYGONS\n\
82
100
  modelClippingPolygonsStage();\n\
83
101
  #endif\n\
102
+ \n\
103
+ //========================================================================\n\
104
+ // When not picking metadata START\n\
105
+ #ifndef METADATA_PICKING_ENABLED\n\
84
106
  \n\
85
107
  #if defined(HAS_SILHOUETTE) && defined(HAS_NORMALS)\n\
86
108
  silhouetteStage(color);\n\
@@ -89,6 +111,10 @@ void main()\n\
89
111
  #ifdef HAS_ATMOSPHERE\n\
90
112
  atmosphereStage(color, attributes);\n\
91
113
  #endif\n\
114
+ \n\
115
+ #endif\n\
116
+ // When not picking metadata END\n\
117
+ //========================================================================\n\
92
118
  \n\
93
119
  out_FragColor = color;\n\
94
120
  }\n\