@cesium/engine 1.1.0 → 2.1.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 (1063) hide show
  1. package/Build/Workers/{ArcType-ce2e50ab.js → ArcType-2d9abbbc.js} +4 -4
  2. package/Build/Workers/{AttributeCompression-b646d393.js → AttributeCompression-8a5a065e.js} +24 -24
  3. package/Build/Workers/{AxisAlignedBoundingBox-a4321399.js → AxisAlignedBoundingBox-a6f9f0e5.js} +3 -3
  4. package/Build/Workers/{BoundingRectangle-80d8801f.js → BoundingRectangle-b0a68595.js} +18 -18
  5. package/Build/Workers/{BoxGeometry-33c10a4f.js → BoxGeometry-baedd794.js} +9 -9
  6. package/Build/Workers/{Check-666ab1a0.js → Check-6ede7e26.js} +22 -22
  7. package/Build/Workers/{Color-1bf9a6e0.js → Color-f85df1be.js} +59 -59
  8. package/Build/Workers/{ComponentDatatype-f7b11d02.js → ComponentDatatype-cf1fa08e.js} +16 -16
  9. package/Build/Workers/{CoplanarPolygonGeometryLibrary-5c5b981b.js → CoplanarPolygonGeometryLibrary-30516950.js} +1 -1
  10. package/Build/Workers/{CorridorGeometryLibrary-7cbae7a0.js → CorridorGeometryLibrary-5d5d3b3a.js} +1 -1
  11. package/Build/Workers/{CylinderGeometry-42740df0.js → CylinderGeometry-d899ae26.js} +12 -12
  12. package/Build/Workers/{CylinderGeometryLibrary-372c07d8.js → CylinderGeometryLibrary-135b0858.js} +1 -1
  13. package/Build/Workers/{EllipseGeometry-49a3ac21.js → EllipseGeometry-a49f8449.js} +20 -20
  14. package/Build/Workers/{EllipseGeometryLibrary-b891b2f8.js → EllipseGeometryLibrary-cba7edde.js} +1 -1
  15. package/Build/Workers/{EllipseOutlineGeometry-fbd72e07.js → EllipseOutlineGeometry-8095c8cb.js} +15 -15
  16. package/Build/Workers/{EllipsoidGeodesic-98c62a56.js → EllipsoidGeodesic-dcff5cbd.js} +6 -6
  17. package/Build/Workers/{EllipsoidGeometry-a351dba8.js → EllipsoidGeometry-ed93f571.js} +14 -14
  18. package/Build/Workers/{EllipsoidOutlineGeometry-3e8779bf.js → EllipsoidOutlineGeometry-e4854854.js} +15 -15
  19. package/Build/Workers/{EllipsoidRhumbLine-19756602.js → EllipsoidRhumbLine-b672d507.js} +9 -9
  20. package/Build/Workers/{EllipsoidTangentPlane-cfb50678.js → EllipsoidTangentPlane-7ae1aa9a.js} +1 -1
  21. package/Build/Workers/{EncodedCartesian3-81f70735.js → EncodedCartesian3-e8bbca36.js} +6 -6
  22. package/Build/Workers/{FrustumGeometry-c5754412.js → FrustumGeometry-b62db3e3.js} +108 -108
  23. package/Build/Workers/{GeometryAttribute-0bfd05e8.js → GeometryAttribute-780af4fa.js} +20 -20
  24. package/Build/Workers/{GeometryAttributes-f06a2792.js → GeometryAttributes-ad136444.js} +1 -1
  25. package/Build/Workers/{GeometryInstance-451dc1cd.js → GeometryInstance-3fb607b7.js} +6 -6
  26. package/Build/Workers/{GeometryPipeline-0166905d.js → GeometryPipeline-36b61c99.js} +22 -22
  27. package/Build/Workers/{IndexDatatype-a55ceaa1.js → IndexDatatype-b8f3e09d.js} +13 -13
  28. package/Build/Workers/{IntersectionTests-a93d3de9.js → IntersectionTests-e889fcf0.js} +37 -37
  29. package/Build/Workers/{Math-2dbd6b93.js → Math-dad82b4d.js} +137 -137
  30. package/Build/Workers/{Matrix2-13178034.js → Matrix2-1e403d0e.js} +256 -256
  31. package/Build/Workers/{Matrix3-315394f6.js → Matrix3-fa806b97.js} +150 -150
  32. package/Build/Workers/{OrientedBoundingBox-b450cb61.js → OrientedBoundingBox-43478ac8.js} +15 -15
  33. package/Build/Workers/{Plane-900aa728.js → Plane-c27e1ac6.js} +5 -5
  34. package/Build/Workers/{PolygonGeometryLibrary-f918ac26.js → PolygonGeometryLibrary-38a98276.js} +6 -6
  35. package/Build/Workers/{PolygonPipeline-f59a8f0a.js → PolygonPipeline-d31ff61c.js} +14 -14
  36. package/Build/Workers/{PolylinePipeline-d8e6bd9b.js → PolylinePipeline-30e4cec9.js} +16 -16
  37. package/Build/Workers/{PolylineVolumeGeometryLibrary-125d2edf.js → PolylineVolumeGeometryLibrary-90551d26.js} +7 -7
  38. package/Build/Workers/{PrimitivePipeline-0d7b5ed4.js → PrimitivePipeline-558d9cb0.js} +6 -6
  39. package/Build/Workers/{RectangleGeometryLibrary-0768db63.js → RectangleGeometryLibrary-815c68df.js} +1 -1
  40. package/Build/Workers/{RuntimeError-06c93819.js → RuntimeError-ef395448.js} +5 -5
  41. package/Build/Workers/{TerrainEncoding-06470d7f.js → TerrainEncoding-341ead52.js} +30 -30
  42. package/Build/Workers/{Transforms-26539bce.js → Transforms-9e9df299.js} +541 -524
  43. package/Build/Workers/{VertexFormat-6b480673.js → VertexFormat-030f11ff.js} +14 -14
  44. package/Build/Workers/{WallGeometryLibrary-6167b0fc.js → WallGeometryLibrary-ccf90976.js} +1 -1
  45. package/Build/Workers/{WebGLConstants-a8cc3e8c.js → WebGLConstants-0b1ce7ba.js} +1 -1
  46. package/Build/Workers/{WebMercatorProjection-13a90d41.js → WebMercatorProjection-76a3fcc0.js} +6 -6
  47. package/Build/Workers/{arrayRemoveDuplicates-c2038105.js → arrayRemoveDuplicates-fac118a8.js} +5 -5
  48. package/Build/Workers/cesiumWorkerBootstrapper.js +70 -4
  49. package/Build/Workers/{combine-ca22a614.js → combine-d9581036.js} +5 -5
  50. package/Build/Workers/combineGeometry.js +1 -1
  51. package/Build/Workers/createBoxGeometry.js +1 -1
  52. package/Build/Workers/createBoxOutlineGeometry.js +9 -9
  53. package/Build/Workers/createCircleGeometry.js +13 -13
  54. package/Build/Workers/createCircleOutlineGeometry.js +13 -13
  55. package/Build/Workers/createCoplanarPolygonGeometry.js +11 -11
  56. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +9 -9
  57. package/Build/Workers/createCorridorGeometry.js +14 -14
  58. package/Build/Workers/createCorridorOutlineGeometry.js +12 -12
  59. package/Build/Workers/createCylinderGeometry.js +1 -1
  60. package/Build/Workers/createCylinderOutlineGeometry.js +13 -13
  61. package/Build/Workers/createEllipseGeometry.js +1 -1
  62. package/Build/Workers/createEllipseOutlineGeometry.js +1 -1
  63. package/Build/Workers/createEllipsoidGeometry.js +1 -1
  64. package/Build/Workers/createEllipsoidOutlineGeometry.js +1 -1
  65. package/Build/Workers/createFrustumGeometry.js +1 -1
  66. package/Build/Workers/createFrustumOutlineGeometry.js +8 -8
  67. package/Build/Workers/createGeometry.js +1 -1
  68. package/Build/Workers/createGroundPolylineGeometry.js +33 -33
  69. package/Build/Workers/createPlaneGeometry.js +8 -8
  70. package/Build/Workers/createPlaneOutlineGeometry.js +6 -6
  71. package/Build/Workers/createPolygonGeometry.js +25 -25
  72. package/Build/Workers/createPolygonOutlineGeometry.js +17 -17
  73. package/Build/Workers/createPolylineGeometry.js +11 -11
  74. package/Build/Workers/createPolylineVolumeGeometry.js +9 -9
  75. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +9 -9
  76. package/Build/Workers/createRectangleGeometry.js +16 -16
  77. package/Build/Workers/createRectangleOutlineGeometry.js +12 -12
  78. package/Build/Workers/createSimplePolylineGeometry.js +10 -10
  79. package/Build/Workers/createSphereGeometry.js +11 -11
  80. package/Build/Workers/createSphereOutlineGeometry.js +12 -12
  81. package/Build/Workers/createTaskProcessorWorker.js +2 -2
  82. package/Build/Workers/createVectorTileClampedPolylines.js +1 -1
  83. package/Build/Workers/createVectorTileGeometries.js +8 -8
  84. package/Build/Workers/createVectorTilePoints.js +1 -1
  85. package/Build/Workers/createVectorTilePolygons.js +1 -1
  86. package/Build/Workers/createVectorTilePolylines.js +1 -1
  87. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +1 -1
  88. package/Build/Workers/createVerticesFromHeightmap.js +23 -21
  89. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +24 -24
  90. package/Build/Workers/createWallGeometry.js +14 -14
  91. package/Build/Workers/createWallOutlineGeometry.js +14 -14
  92. package/Build/Workers/decodeDraco.js +10 -2
  93. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +15 -15
  94. package/Build/Workers/decodeI3S.js +1 -1
  95. package/Build/Workers/{defaultValue-0a909f67.js → defaultValue-fe22d8c0.js} +2 -2
  96. package/Build/Workers/package.js +1 -1
  97. package/Build/Workers/transcodeKTX2.js +46 -26
  98. package/Build/Workers/transferTypedArrayTest.js +1 -1
  99. package/Build/Workers/upsampleQuantizedTerrainMesh.js +24 -24
  100. package/README.md +14 -16
  101. package/Source/Core/ApproximateTerrainHeights.js +3 -3
  102. package/Source/Core/ArcGISTiledElevationTerrainProvider.js +20 -20
  103. package/Source/Core/ArcType.js +4 -4
  104. package/Source/Core/ArticulationStageType.js +1 -1
  105. package/Source/Core/AssociativeArray.js +7 -7
  106. package/Source/Core/AttributeCompression.js +12 -12
  107. package/Source/Core/AxisAlignedBoundingBox.js +2 -2
  108. package/Source/Core/BingMapsGeocoderService.js +6 -6
  109. package/Source/Core/BoundingRectangle.js +17 -17
  110. package/Source/Core/BoundingSphere.js +25 -25
  111. package/Source/Core/BoxGeometry.js +8 -8
  112. package/Source/Core/BoxOutlineGeometry.js +8 -8
  113. package/Source/Core/Cartesian2.js +38 -38
  114. package/Source/Core/Cartesian3.js +50 -50
  115. package/Source/Core/Cartesian4.js +44 -44
  116. package/Source/Core/Cartographic.js +19 -19
  117. package/Source/Core/CartographicGeocoderService.js +1 -1
  118. package/Source/Core/CatmullRomSpline.js +10 -10
  119. package/Source/Core/CesiumTerrainProvider.js +33 -33
  120. package/Source/Core/Check.js +17 -17
  121. package/Source/Core/CircleGeometry.js +12 -12
  122. package/Source/Core/CircleOutlineGeometry.js +12 -12
  123. package/Source/Core/Clock.js +7 -7
  124. package/Source/Core/ClockRange.js +4 -4
  125. package/Source/Core/ClockStep.js +4 -4
  126. package/Source/Core/Color.js +58 -58
  127. package/Source/Core/ColorGeometryInstanceAttribute.js +7 -7
  128. package/Source/Core/ComponentDatatype.js +15 -15
  129. package/Source/Core/CompressedTextureBuffer.js +7 -7
  130. package/Source/Core/ConstantSpline.js +9 -9
  131. package/Source/Core/CoplanarPolygonGeometry.js +10 -10
  132. package/Source/Core/CoplanarPolygonOutlineGeometry.js +8 -8
  133. package/Source/Core/CornerType.js +4 -4
  134. package/Source/Core/CorridorGeometry.js +13 -13
  135. package/Source/Core/CorridorOutlineGeometry.js +11 -11
  136. package/Source/Core/Credit.js +7 -7
  137. package/Source/Core/CubicRealPolynomial.js +10 -10
  138. package/Source/Core/CullingVolume.js +7 -7
  139. package/Source/Core/CustomHeightmapTerrainProvider.js +28 -28
  140. package/Source/Core/CylinderGeometry.js +11 -11
  141. package/Source/Core/CylinderOutlineGeometry.js +12 -12
  142. package/Source/Core/DefaultProxy.js +3 -3
  143. package/Source/Core/DeveloperError.js +4 -4
  144. package/Source/Core/DistanceDisplayCondition.js +12 -12
  145. package/Source/Core/DistanceDisplayConditionGeometryInstanceAttribute.js +5 -5
  146. package/Source/Core/DoubleEndedPriorityQueue.js +5 -5
  147. package/Source/Core/EarthOrientationParameters.js +6 -6
  148. package/Source/Core/EarthOrientationParametersSample.js +10 -10
  149. package/Source/Core/EasingFunction.js +2 -2
  150. package/Source/Core/EllipseGeometry.js +19 -19
  151. package/Source/Core/EllipseOutlineGeometry.js +14 -14
  152. package/Source/Core/Ellipsoid.js +20 -20
  153. package/Source/Core/EllipsoidGeodesic.js +5 -5
  154. package/Source/Core/EllipsoidGeometry.js +13 -13
  155. package/Source/Core/EllipsoidOutlineGeometry.js +14 -14
  156. package/Source/Core/EllipsoidRhumbLine.js +8 -8
  157. package/Source/Core/EllipsoidTerrainProvider.js +18 -18
  158. package/Source/Core/EllipsoidalOccluder.js +9 -9
  159. package/Source/Core/EncodedCartesian3.js +5 -5
  160. package/Source/Core/Event.js +4 -4
  161. package/Source/Core/EventHelper.js +1 -1
  162. package/Source/Core/ExtrapolationType.js +4 -4
  163. package/Source/Core/FeatureDetection.js +26 -8
  164. package/Source/Core/FrustumGeometry.js +7 -7
  165. package/Source/Core/FrustumOutlineGeometry.js +7 -7
  166. package/Source/Core/Fullscreen.js +8 -8
  167. package/Source/Core/GeocodeType.js +3 -3
  168. package/Source/Core/GeocoderService.js +3 -3
  169. package/Source/Core/GeographicTilingScheme.js +16 -16
  170. package/Source/Core/Geometry.js +5 -5
  171. package/Source/Core/GeometryAttribute.js +6 -6
  172. package/Source/Core/GeometryInstance.js +5 -5
  173. package/Source/Core/GeometryInstanceAttribute.js +7 -7
  174. package/Source/Core/GeometryPipeline.js +11 -11
  175. package/Source/Core/GoogleEarthEnterpriseMetadata.js +22 -22
  176. package/Source/Core/GoogleEarthEnterpriseTerrainData.js +29 -29
  177. package/Source/Core/GoogleEarthEnterpriseTerrainProvider.js +21 -21
  178. package/Source/Core/GoogleEarthEnterpriseTileInformation.js +14 -14
  179. package/Source/Core/GregorianDate.js +16 -16
  180. package/Source/Core/GroundPolylineGeometry.js +13 -13
  181. package/Source/Core/HeadingPitchRange.js +6 -6
  182. package/Source/Core/HeadingPitchRoll.js +18 -18
  183. package/Source/Core/Heap.js +7 -7
  184. package/Source/Core/HeightmapEncoding.js +3 -3
  185. package/Source/Core/HeightmapTerrainData.js +44 -44
  186. package/Source/Core/HeightmapTessellator.js +16 -16
  187. package/Source/Core/HermitePolynomialApproximation.js +17 -17
  188. package/Source/Core/HermiteSpline.js +17 -17
  189. package/Source/Core/HilbertOrder.js +7 -7
  190. package/Source/Core/Iau2006XysData.js +13 -13
  191. package/Source/Core/Iau2006XysSample.js +6 -6
  192. package/Source/Core/IauOrientationParameters.js +4 -4
  193. package/Source/Core/IndexDatatype.js +12 -12
  194. package/Source/Core/InterpolationAlgorithm.js +17 -17
  195. package/Source/Core/InterpolationType.js +1 -1
  196. package/Source/Core/Intersect.js +4 -4
  197. package/Source/Core/IntersectionTests.js +5 -5
  198. package/Source/Core/Intersections2D.js +23 -23
  199. package/Source/Core/Interval.js +4 -4
  200. package/Source/Core/Ion.js +3 -4
  201. package/Source/Core/IonGeocoderService.js +4 -4
  202. package/Source/Core/IonResource.js +6 -6
  203. package/Source/Core/JulianDate.js +27 -27
  204. package/Source/Core/KeyboardEventModifier.js +4 -4
  205. package/Source/Core/LagrangePolynomialApproximation.js +8 -8
  206. package/Source/Core/LeapSecond.js +2 -2
  207. package/Source/Core/LinearApproximation.js +8 -8
  208. package/Source/Core/LinearSpline.js +13 -13
  209. package/Source/Core/ManagedArray.js +8 -8
  210. package/Source/Core/Math.js +136 -136
  211. package/Source/Core/Matrix2.js +44 -44
  212. package/Source/Core/Matrix3.js +59 -59
  213. package/Source/Core/Matrix4.js +91 -91
  214. package/Source/Core/MorphWeightSpline.js +14 -14
  215. package/Source/Core/MortonOrder.js +21 -21
  216. package/Source/Core/NearFarScalar.js +16 -16
  217. package/Source/Core/Occluder.js +5 -5
  218. package/Source/Core/OffsetGeometryInstanceAttribute.js +5 -5
  219. package/Source/Core/OpenCageGeocoderService.js +18 -18
  220. package/Source/Core/OrientedBoundingBox.js +14 -14
  221. package/Source/Core/OrthographicFrustum.js +23 -23
  222. package/Source/Core/OrthographicOffCenterFrustum.js +21 -21
  223. package/Source/Core/Packable.js +7 -7
  224. package/Source/Core/PackableForInterpolation.js +11 -11
  225. package/Source/Core/PeliasGeocoderService.js +2 -2
  226. package/Source/Core/PerspectiveFrustum.js +28 -28
  227. package/Source/Core/PerspectiveOffCenterFrustum.js +21 -21
  228. package/Source/Core/PinBuilder.js +9 -9
  229. package/Source/Core/PixelFormat.js +43 -23
  230. package/Source/Core/Plane.js +4 -4
  231. package/Source/Core/PlaneGeometry.js +7 -7
  232. package/Source/Core/PlaneOutlineGeometry.js +5 -5
  233. package/Source/Core/PolygonGeometry.js +24 -24
  234. package/Source/Core/PolygonGeometryLibrary.js +4 -4
  235. package/Source/Core/PolygonOutlineGeometry.js +16 -16
  236. package/Source/Core/PolygonPipeline.js +10 -10
  237. package/Source/Core/PolylineGeometry.js +10 -10
  238. package/Source/Core/PolylinePipeline.js +15 -15
  239. package/Source/Core/PolylineVolumeGeometry.js +8 -8
  240. package/Source/Core/PolylineVolumeOutlineGeometry.js +8 -8
  241. package/Source/Core/PrimitiveType.js +8 -8
  242. package/Source/Core/Proxy.js +2 -2
  243. package/Source/Core/QuadraticRealPolynomial.js +8 -8
  244. package/Source/Core/QuantizedMeshTerrainData.js +37 -37
  245. package/Source/Core/QuarticRealPolynomial.js +12 -12
  246. package/Source/Core/Quaternion.js +42 -42
  247. package/Source/Core/QuaternionSpline.js +10 -10
  248. package/Source/Core/Queue.js +2 -2
  249. package/Source/Core/Ray.js +1 -1
  250. package/Source/Core/Rectangle.js +38 -38
  251. package/Source/Core/RectangleCollisionChecker.js +3 -3
  252. package/Source/Core/RectangleGeometry.js +15 -15
  253. package/Source/Core/RectangleOutlineGeometry.js +11 -11
  254. package/Source/Core/ReferenceFrame.js +3 -3
  255. package/Source/Core/Request.js +13 -13
  256. package/Source/Core/RequestErrorEvent.js +7 -7
  257. package/Source/Core/RequestScheduler.js +14 -14
  258. package/Source/Core/RequestState.js +7 -7
  259. package/Source/Core/RequestType.js +5 -5
  260. package/Source/Core/Resource.js +223 -223
  261. package/Source/Core/RuntimeError.js +4 -4
  262. package/Source/Core/S2Cell.js +15 -15
  263. package/Source/Core/ScreenSpaceEventHandler.js +7 -7
  264. package/Source/Core/ScreenSpaceEventType.js +16 -16
  265. package/Source/Core/ShowGeometryInstanceAttribute.js +4 -4
  266. package/Source/Core/SimplePolylineGeometry.js +9 -9
  267. package/Source/Core/SphereGeometry.js +10 -10
  268. package/Source/Core/SphereOutlineGeometry.js +11 -11
  269. package/Source/Core/Spherical.js +13 -13
  270. package/Source/Core/Spline.js +14 -14
  271. package/Source/Core/SteppedSpline.js +14 -14
  272. package/Source/Core/TaskProcessor.js +10 -10
  273. package/Source/Core/TerrainData.js +25 -25
  274. package/Source/Core/TerrainEncoding.js +14 -14
  275. package/Source/Core/TerrainExaggeration.js +3 -3
  276. package/Source/Core/TerrainMesh.js +18 -18
  277. package/Source/Core/TerrainProvider.js +23 -23
  278. package/Source/Core/TerrainQuantization.js +3 -3
  279. package/Source/Core/TileAvailability.js +16 -16
  280. package/Source/Core/TileProviderError.js +15 -15
  281. package/Source/Core/TilingScheme.js +13 -13
  282. package/Source/Core/TimeConstants.js +10 -10
  283. package/Source/Core/TimeInterval.js +23 -23
  284. package/Source/Core/TimeIntervalCollection.js +39 -39
  285. package/Source/Core/TimeStandard.js +3 -3
  286. package/Source/Core/Tipsify.js +10 -10
  287. package/Source/Core/Transforms.js +2 -2
  288. package/Source/Core/TranslationRotationScale.js +1 -1
  289. package/Source/Core/TridiagonalSystemSolver.js +3 -3
  290. package/Source/Core/TrustedServers.js +5 -5
  291. package/Source/Core/VRTheWorldTerrainProvider.js +20 -20
  292. package/Source/Core/VertexFormat.js +13 -13
  293. package/Source/Core/VideoSynchronizer.js +4 -4
  294. package/Source/Core/Visibility.js +4 -4
  295. package/Source/Core/VulkanConstants.js +1 -1
  296. package/Source/Core/WallGeometry.js +13 -13
  297. package/Source/Core/WallOutlineGeometry.js +13 -13
  298. package/Source/Core/WebGLConstants.js +1 -1
  299. package/Source/Core/WebMercatorProjection.js +5 -5
  300. package/Source/Core/WebMercatorTilingScheme.js +16 -16
  301. package/Source/Core/WindingOrder.js +3 -3
  302. package/Source/Core/WireframeIndexGenerator.js +3 -3
  303. package/Source/Core/arrayRemoveDuplicates.js +4 -4
  304. package/Source/Core/binarySearch.js +2 -2
  305. package/Source/Core/buildModuleUrl.js +4 -4
  306. package/Source/Core/clone.js +3 -3
  307. package/Source/Core/combine.js +4 -4
  308. package/Source/Core/createGuid.js +1 -1
  309. package/Source/Core/createWorldTerrain.js +3 -3
  310. package/Source/Core/defaultValue.js +1 -1
  311. package/Source/Core/defer.js +1 -1
  312. package/Source/Core/defined.js +1 -1
  313. package/Source/Core/deprecationWarning.js +2 -2
  314. package/Source/Core/destroyObject.js +2 -2
  315. package/Source/Core/formatError.js +1 -1
  316. package/Source/Core/getAbsoluteUri.js +3 -3
  317. package/Source/Core/getBaseUri.js +3 -3
  318. package/Source/Core/getExtensionFromUri.js +2 -2
  319. package/Source/Core/getFilenameFromUri.js +2 -2
  320. package/Source/Core/getImageFromTypedArray.js +2 -2
  321. package/Source/Core/getImagePixels.js +4 -3
  322. package/Source/Core/getJsonFromTypedArray.js +3 -3
  323. package/Source/Core/getStringFromTypedArray.js +3 -3
  324. package/Source/Core/getTimestamp.js +1 -1
  325. package/Source/Core/isBlobUri.js +2 -2
  326. package/Source/Core/isDataUri.js +2 -2
  327. package/Source/Core/isLeapYear.js +2 -2
  328. package/Source/Core/loadKTX2.js +8 -8
  329. package/Source/Core/mergeSort.js +1 -1
  330. package/Source/Core/objectToQuery.js +2 -2
  331. package/Source/Core/oneTimeWarning.js +2 -2
  332. package/Source/Core/parseResponseHeaders.js +2 -2
  333. package/Source/Core/pointInsideTriangle.js +1 -1
  334. package/Source/Core/queryToObject.js +2 -2
  335. package/Source/Core/sampleTerrain.js +12 -7
  336. package/Source/Core/sampleTerrainMostDetailed.js +1 -1
  337. package/Source/Core/scaleToGeodeticSurface.js +1 -1
  338. package/Source/Core/subdivideArray.js +1 -1
  339. package/Source/Core/writeTextToCanvas.js +10 -9
  340. package/Source/DataSources/BillboardGraphics.js +1 -1
  341. package/Source/DataSources/BillboardVisualizer.js +2 -2
  342. package/Source/DataSources/BoundingSphereState.js +1 -1
  343. package/Source/DataSources/BoxGraphics.js +1 -1
  344. package/Source/DataSources/CallbackProperty.js +8 -8
  345. package/Source/DataSources/Cesium3DTilesetGraphics.js +1 -1
  346. package/Source/DataSources/Cesium3DTilesetVisualizer.js +2 -2
  347. package/Source/DataSources/CheckerboardMaterialProperty.js +6 -6
  348. package/Source/DataSources/ColorMaterialProperty.js +5 -5
  349. package/Source/DataSources/CompositeEntityCollection.js +8 -8
  350. package/Source/DataSources/CompositeMaterialProperty.js +5 -5
  351. package/Source/DataSources/CompositePositionProperty.js +2 -2
  352. package/Source/DataSources/CompositeProperty.js +4 -4
  353. package/Source/DataSources/ConstantPositionProperty.js +4 -4
  354. package/Source/DataSources/ConstantProperty.js +5 -5
  355. package/Source/DataSources/CorridorGraphics.js +1 -1
  356. package/Source/DataSources/CustomDataSource.js +5 -5
  357. package/Source/DataSources/CylinderGraphics.js +1 -1
  358. package/Source/DataSources/CzmlDataSource.js +26 -26
  359. package/Source/DataSources/DataSource.js +4 -4
  360. package/Source/DataSources/DataSourceClock.js +2 -2
  361. package/Source/DataSources/DataSourceCollection.js +11 -11
  362. package/Source/DataSources/DataSourceDisplay.js +5 -5
  363. package/Source/DataSources/DynamicGeometryUpdater.js +1 -1
  364. package/Source/DataSources/EllipseGraphics.js +1 -1
  365. package/Source/DataSources/EllipsoidGeometryUpdater.js +2 -2
  366. package/Source/DataSources/EllipsoidGraphics.js +1 -1
  367. package/Source/DataSources/Entity.js +14 -14
  368. package/Source/DataSources/EntityCluster.js +16 -16
  369. package/Source/DataSources/EntityCollection.js +8 -8
  370. package/Source/DataSources/GeoJsonDataSource.js +27 -27
  371. package/Source/DataSources/GeometryUpdater.js +22 -22
  372. package/Source/DataSources/GeometryVisualizer.js +2 -2
  373. package/Source/DataSources/GpxDataSource.js +23 -23
  374. package/Source/DataSources/GridMaterialProperty.js +7 -7
  375. package/Source/DataSources/GroundGeometryUpdater.js +5 -5
  376. package/Source/DataSources/ImageMaterialProperty.js +8 -8
  377. package/Source/DataSources/KmlDataSource.js +32 -32
  378. package/Source/DataSources/KmlTour.js +7 -7
  379. package/Source/DataSources/KmlTourFlyTo.js +6 -6
  380. package/Source/DataSources/KmlTourWait.js +2 -2
  381. package/Source/DataSources/LabelGraphics.js +1 -1
  382. package/Source/DataSources/LabelVisualizer.js +2 -2
  383. package/Source/DataSources/MaterialProperty.js +5 -5
  384. package/Source/DataSources/ModelGraphics.js +3 -3
  385. package/Source/DataSources/ModelVisualizer.js +2 -2
  386. package/Source/DataSources/NodeTransformationProperty.js +3 -3
  387. package/Source/DataSources/PathGraphics.js +1 -1
  388. package/Source/DataSources/PathVisualizer.js +2 -2
  389. package/Source/DataSources/PlaneGraphics.js +1 -1
  390. package/Source/DataSources/PointGraphics.js +1 -1
  391. package/Source/DataSources/PointVisualizer.js +2 -2
  392. package/Source/DataSources/PolygonGraphics.js +3 -3
  393. package/Source/DataSources/PolylineArrowMaterialProperty.js +5 -5
  394. package/Source/DataSources/PolylineDashMaterialProperty.js +8 -8
  395. package/Source/DataSources/PolylineGeometryUpdater.js +13 -13
  396. package/Source/DataSources/PolylineGlowMaterialProperty.js +8 -8
  397. package/Source/DataSources/PolylineGraphics.js +2 -2
  398. package/Source/DataSources/PolylineOutlineMaterialProperty.js +7 -7
  399. package/Source/DataSources/PolylineVisualizer.js +2 -2
  400. package/Source/DataSources/PolylineVolumeGraphics.js +3 -3
  401. package/Source/DataSources/PositionProperty.js +2 -2
  402. package/Source/DataSources/PositionPropertyArray.js +2 -2
  403. package/Source/DataSources/Property.js +4 -4
  404. package/Source/DataSources/PropertyArray.js +2 -2
  405. package/Source/DataSources/PropertyBag.js +10 -10
  406. package/Source/DataSources/RectangleGraphics.js +1 -1
  407. package/Source/DataSources/ReferenceProperty.js +10 -10
  408. package/Source/DataSources/Rotation.js +14 -14
  409. package/Source/DataSources/SampledPositionProperty.js +11 -11
  410. package/Source/DataSources/SampledProperty.js +12 -12
  411. package/Source/DataSources/StripeMaterialProperty.js +8 -8
  412. package/Source/DataSources/StripeOrientation.js +3 -3
  413. package/Source/DataSources/TerrainOffsetProperty.js +1 -1
  414. package/Source/DataSources/TimeIntervalCollectionPositionProperty.js +3 -3
  415. package/Source/DataSources/TimeIntervalCollectionProperty.js +4 -4
  416. package/Source/DataSources/VelocityOrientationProperty.js +2 -2
  417. package/Source/DataSources/VelocityVectorProperty.js +4 -4
  418. package/Source/DataSources/Visualizer.js +2 -2
  419. package/Source/DataSources/WallGraphics.js +4 -4
  420. package/Source/DataSources/exportKml.js +9 -9
  421. package/Source/Renderer/AutomaticUniforms.js +3 -3
  422. package/Source/Renderer/Buffer.js +4 -4
  423. package/Source/Renderer/ClearCommand.js +3 -3
  424. package/Source/Renderer/ComputeCommand.js +3 -3
  425. package/Source/Renderer/Context.js +49 -59
  426. package/Source/Renderer/ContextLimits.js +22 -22
  427. package/Source/Renderer/CubeMapFace.js +11 -11
  428. package/Source/Renderer/DrawCommand.js +15 -15
  429. package/Source/Renderer/Framebuffer.js +4 -4
  430. package/Source/Renderer/FramebufferManager.js +9 -9
  431. package/Source/Renderer/MultisampleFramebuffer.js +1 -1
  432. package/Source/Renderer/PassState.js +2 -2
  433. package/Source/Renderer/PixelDatatype.js +1 -1
  434. package/Source/Renderer/RenderState.js +1 -1
  435. package/Source/Renderer/ShaderBuilder.js +37 -36
  436. package/Source/Renderer/ShaderCache.js +8 -8
  437. package/Source/Renderer/ShaderDestination.js +2 -2
  438. package/Source/Renderer/ShaderFunction.js +3 -3
  439. package/Source/Renderer/ShaderSource.js +38 -33
  440. package/Source/Renderer/ShaderStruct.js +4 -4
  441. package/Source/Renderer/Texture.js +18 -18
  442. package/Source/Renderer/TextureMagnificationFilter.js +4 -4
  443. package/Source/Renderer/TextureMinificationFilter.js +8 -8
  444. package/Source/Renderer/UniformState.js +14 -14
  445. package/Source/Renderer/VertexArray.js +2 -2
  446. package/Source/Renderer/createUniform.js +12 -12
  447. package/Source/Renderer/createUniformArray.js +12 -12
  448. package/Source/Renderer/demodernizeShader.js +76 -0
  449. package/Source/Renderer/freezeRenderState.js +2 -2
  450. package/Source/Renderer/loadCubeMap.js +3 -3
  451. package/Source/Scene/AlphaMode.js +4 -4
  452. package/Source/Scene/Appearance.js +14 -14
  453. package/Source/Scene/ArcGisMapServerImageryProvider.js +43 -43
  454. package/Source/Scene/AttributeType.js +11 -11
  455. package/Source/Scene/AutoExposure.js +11 -11
  456. package/Source/Scene/Axis.js +6 -6
  457. package/Source/Scene/B3dmParser.js +2 -2
  458. package/Source/Scene/BatchTable.js +18 -18
  459. package/Source/Scene/BatchTableHierarchy.js +22 -22
  460. package/Source/Scene/BatchTexture.js +14 -14
  461. package/Source/Scene/Billboard.js +17 -17
  462. package/Source/Scene/BillboardCollection.js +15 -15
  463. package/Source/Scene/BingMapsImageryProvider.js +41 -41
  464. package/Source/Scene/BingMapsStyle.js +11 -11
  465. package/Source/Scene/BlendEquation.js +6 -6
  466. package/Source/Scene/BlendFunction.js +16 -16
  467. package/Source/Scene/BlendOption.js +4 -4
  468. package/Source/Scene/BlendingState.js +4 -4
  469. package/Source/Scene/BufferLoader.js +5 -5
  470. package/Source/Scene/Camera.js +57 -57
  471. package/Source/Scene/CameraEventAggregator.js +26 -16
  472. package/Source/Scene/CameraEventType.js +6 -6
  473. package/Source/Scene/Cesium3DContentGroup.js +1 -1
  474. package/Source/Scene/Cesium3DTile.js +32 -26
  475. package/Source/Scene/Cesium3DTileBatchTable.js +29 -29
  476. package/Source/Scene/Cesium3DTileColorBlendMode.js +4 -4
  477. package/Source/Scene/Cesium3DTileContent.js +15 -15
  478. package/Source/Scene/Cesium3DTileContentType.js +17 -17
  479. package/Source/Scene/Cesium3DTileFeature.js +16 -16
  480. package/Source/Scene/Cesium3DTileOptimizationHint.js +1 -1
  481. package/Source/Scene/Cesium3DTileOptimizations.js +1 -1
  482. package/Source/Scene/Cesium3DTilePassState.js +1 -1
  483. package/Source/Scene/Cesium3DTilePointFeature.js +23 -23
  484. package/Source/Scene/Cesium3DTileRefine.js +3 -3
  485. package/Source/Scene/Cesium3DTileStyle.js +17 -17
  486. package/Source/Scene/Cesium3DTilesVoxelProvider.js +14 -2
  487. package/Source/Scene/Cesium3DTileset.js +117 -112
  488. package/Source/Scene/Cesium3DTilesetHeatmap.js +4 -4
  489. package/Source/Scene/Cesium3DTilesetMetadata.js +5 -5
  490. package/Source/Scene/CircleEmitter.js +2 -2
  491. package/Source/Scene/ClassificationPrimitive.js +28 -33
  492. package/Source/Scene/ClassificationType.js +4 -4
  493. package/Source/Scene/ClippingPlane.js +2 -2
  494. package/Source/Scene/ClippingPlaneCollection.js +17 -17
  495. package/Source/Scene/CloudCollection.js +16 -16
  496. package/Source/Scene/CloudType.js +3 -3
  497. package/Source/Scene/ColorBlendMode.js +1 -1
  498. package/Source/Scene/ConditionsExpression.js +11 -11
  499. package/Source/Scene/ConeEmitter.js +2 -2
  500. package/Source/Scene/ContentMetadata.js +16 -16
  501. package/Source/Scene/CreditDisplay.js +2 -2
  502. package/Source/Scene/CullFace.js +4 -4
  503. package/Source/Scene/CumulusCloud.js +3 -3
  504. package/Source/Scene/DebugAppearance.js +24 -26
  505. package/Source/Scene/DebugCameraPrimitive.js +7 -7
  506. package/Source/Scene/DebugInspector.js +5 -5
  507. package/Source/Scene/DebugModelMatrixPrimitive.js +9 -9
  508. package/Source/Scene/DepthFunction.js +9 -9
  509. package/Source/Scene/DepthPlane.js +0 -6
  510. package/Source/Scene/DerivedCommand.js +8 -22
  511. package/Source/Scene/DeviceOrientationCameraController.js +1 -1
  512. package/Source/Scene/DirectionalLight.js +3 -3
  513. package/Source/Scene/DiscardEmptyTileImagePolicy.js +2 -2
  514. package/Source/Scene/DiscardMissingTileImagePolicy.js +5 -5
  515. package/Source/Scene/DracoLoader.js +4 -4
  516. package/Source/Scene/EllipsoidPrimitive.js +8 -15
  517. package/Source/Scene/EllipsoidSurfaceAppearance.js +19 -19
  518. package/Source/Scene/Expression.js +14 -14
  519. package/Source/Scene/Fog.js +5 -5
  520. package/Source/Scene/FrameRateMonitor.js +14 -14
  521. package/Source/Scene/FrameState.js +36 -36
  522. package/Source/Scene/FrustumCommands.js +2 -2
  523. package/Source/Scene/GetFeatureInfoFormat.js +2 -2
  524. package/Source/Scene/Globe.js +34 -34
  525. package/Source/Scene/GlobeSurfaceTile.js +1 -1
  526. package/Source/Scene/GlobeSurfaceTileProvider.js +6 -6
  527. package/Source/Scene/GlobeTranslucency.js +3 -3
  528. package/Source/Scene/GlobeTranslucencyState.js +6 -6
  529. package/Source/Scene/GltfBufferViewLoader.js +7 -7
  530. package/Source/Scene/GltfDracoLoader.js +8 -8
  531. package/Source/Scene/GltfImageLoader.js +7 -7
  532. package/Source/Scene/GltfIndexBufferLoader.js +11 -11
  533. package/Source/Scene/GltfJsonLoader.js +7 -7
  534. package/Source/Scene/GltfLoader.js +24 -24
  535. package/Source/Scene/GltfLoaderUtil.js +11 -11
  536. package/Source/Scene/GltfPipeline/addBuffer.js +2 -2
  537. package/Source/Scene/GltfPipeline/addDefaults.js +2 -2
  538. package/Source/Scene/GltfPipeline/addExtensionsRequired.js +2 -2
  539. package/Source/Scene/GltfPipeline/addExtensionsUsed.js +2 -2
  540. package/Source/Scene/GltfPipeline/addPipelineExtras.js +2 -2
  541. package/Source/Scene/GltfPipeline/addToArray.js +2 -2
  542. package/Source/Scene/GltfPipeline/findAccessorMinMax.js +2 -2
  543. package/Source/Scene/GltfPipeline/forEachTextureInMaterial.js +3 -3
  544. package/Source/Scene/GltfPipeline/getAccessorByteStride.js +3 -3
  545. package/Source/Scene/GltfPipeline/getComponentReader.js +5 -5
  546. package/Source/Scene/GltfPipeline/moveTechniqueRenderStates.js +2 -2
  547. package/Source/Scene/GltfPipeline/moveTechniquesToExtension.js +2 -2
  548. package/Source/Scene/GltfPipeline/numberOfComponentsForType.js +2 -2
  549. package/Source/Scene/GltfPipeline/parseGlb.js +1 -1
  550. package/Source/Scene/GltfPipeline/readAccessorPacked.js +2 -2
  551. package/Source/Scene/GltfPipeline/removeExtension.js +2 -2
  552. package/Source/Scene/GltfPipeline/removeExtensionsRequired.js +2 -2
  553. package/Source/Scene/GltfPipeline/removeExtensionsUsed.js +2 -2
  554. package/Source/Scene/GltfPipeline/removePipelineExtras.js +2 -2
  555. package/Source/Scene/GltfPipeline/removeUnusedElements.js +2 -2
  556. package/Source/Scene/GltfPipeline/updateAccessorComponentTypes.js +2 -2
  557. package/Source/Scene/GltfPipeline/updateVersion.js +4 -4
  558. package/Source/Scene/GltfPipeline/usesExtension.js +3 -3
  559. package/Source/Scene/GltfStructuralMetadataLoader.js +9 -9
  560. package/Source/Scene/GltfTextureLoader.js +8 -8
  561. package/Source/Scene/GltfVertexBufferLoader.js +13 -13
  562. package/Source/Scene/GoogleEarthEnterpriseImageryProvider.js +33 -33
  563. package/Source/Scene/GoogleEarthEnterpriseMapsProvider.js +38 -38
  564. package/Source/Scene/GridImageryProvider.js +33 -33
  565. package/Source/Scene/GroundPolylinePrimitive.js +22 -24
  566. package/Source/Scene/GroundPrimitive.js +26 -26
  567. package/Source/Scene/GroupMetadata.js +17 -17
  568. package/Source/Scene/HeightReference.js +4 -4
  569. package/Source/Scene/HorizontalOrigin.js +4 -4
  570. package/Source/Scene/I3SDataProvider.js +13 -13
  571. package/Source/Scene/I3SFeature.js +1 -1
  572. package/Source/Scene/I3SField.js +5 -5
  573. package/Source/Scene/I3SGeometry.js +8 -8
  574. package/Source/Scene/I3SLayer.js +7 -7
  575. package/Source/Scene/I3SNode.js +6 -6
  576. package/Source/Scene/I3dmParser.js +2 -2
  577. package/Source/Scene/ImageBasedLighting.js +21 -17
  578. package/Source/Scene/ImageryLayer.js +39 -39
  579. package/Source/Scene/ImageryLayerCollection.js +11 -11
  580. package/Source/Scene/ImageryLayerFeatureInfo.js +6 -6
  581. package/Source/Scene/ImageryProvider.js +30 -30
  582. package/Source/Scene/Implicit3DTileContent.js +56 -56
  583. package/Source/Scene/ImplicitAvailabilityBitstream.js +10 -10
  584. package/Source/Scene/ImplicitMetadataView.js +16 -16
  585. package/Source/Scene/ImplicitSubdivisionScheme.js +4 -4
  586. package/Source/Scene/ImplicitSubtree.js +48 -48
  587. package/Source/Scene/ImplicitSubtreeCache.js +6 -6
  588. package/Source/Scene/ImplicitSubtreeMetadata.js +16 -16
  589. package/Source/Scene/ImplicitTileCoordinates.js +27 -27
  590. package/Source/Scene/ImplicitTileset.js +10 -10
  591. package/Source/Scene/InstanceAttributeSemantic.js +5 -5
  592. package/Source/Scene/InvertClassification.js +9 -10
  593. package/Source/Scene/IonImageryProvider.js +32 -32
  594. package/Source/Scene/IonWorldImageryStyle.js +4 -4
  595. package/Source/Scene/JsonMetadataTable.js +11 -11
  596. package/Source/Scene/KeyframeNode.js +1 -1
  597. package/Source/Scene/Label.js +14 -14
  598. package/Source/Scene/LabelCollection.js +12 -11
  599. package/Source/Scene/LabelStyle.js +4 -4
  600. package/Source/Scene/Light.js +1 -1
  601. package/Source/Scene/MapMode2D.js +3 -3
  602. package/Source/Scene/MapboxImageryProvider.js +37 -37
  603. package/Source/Scene/MapboxStyleImageryProvider.js +39 -39
  604. package/Source/Scene/Material.js +53 -53
  605. package/Source/Scene/MaterialAppearance.js +21 -21
  606. package/Source/Scene/Megatexture.js +17 -17
  607. package/Source/Scene/MetadataClass.js +16 -16
  608. package/Source/Scene/MetadataClassProperty.js +41 -41
  609. package/Source/Scene/MetadataComponentType.js +21 -21
  610. package/Source/Scene/MetadataEntity.js +31 -31
  611. package/Source/Scene/MetadataEnum.js +14 -14
  612. package/Source/Scene/MetadataEnumValue.js +10 -10
  613. package/Source/Scene/MetadataSchema.js +16 -16
  614. package/Source/Scene/MetadataSchemaLoader.js +6 -6
  615. package/Source/Scene/MetadataSemantic.js +24 -16
  616. package/Source/Scene/MetadataTable.js +24 -24
  617. package/Source/Scene/MetadataTableProperty.js +9 -9
  618. package/Source/Scene/MetadataType.js +15 -15
  619. package/Source/Scene/Model/B3dmLoader.js +13 -13
  620. package/Source/Scene/Model/ClassificationModelDrawCommand.js +3 -3
  621. package/Source/Scene/Model/CustomShader.js +19 -19
  622. package/Source/Scene/Model/CustomShaderMode.js +4 -4
  623. package/Source/Scene/Model/CustomShaderTranslucencyMode.js +4 -4
  624. package/Source/Scene/Model/FeatureIdPipelineStage.js +4 -4
  625. package/Source/Scene/Model/GeoJsonLoader.js +5 -5
  626. package/Source/Scene/Model/I3dmLoader.js +11 -11
  627. package/Source/Scene/Model/LightingModel.js +4 -4
  628. package/Source/Scene/Model/MaterialPipelineStage.js +6 -6
  629. package/Source/Scene/Model/MetadataPipelineStage.js +26 -27
  630. package/Source/Scene/Model/Model.js +85 -85
  631. package/Source/Scene/Model/ModelAlphaOptions.js +1 -1
  632. package/Source/Scene/Model/ModelAnimation.js +11 -11
  633. package/Source/Scene/Model/ModelAnimationChannel.js +2 -2
  634. package/Source/Scene/Model/ModelAnimationCollection.js +18 -18
  635. package/Source/Scene/Model/ModelArticulation.js +4 -4
  636. package/Source/Scene/Model/ModelArticulationStage.js +5 -5
  637. package/Source/Scene/Model/ModelDrawCommand.js +3 -3
  638. package/Source/Scene/Model/ModelFeature.js +12 -12
  639. package/Source/Scene/Model/ModelFeatureTable.js +5 -5
  640. package/Source/Scene/Model/ModelLightingOptions.js +1 -1
  641. package/Source/Scene/Model/ModelNode.js +3 -3
  642. package/Source/Scene/Model/ModelRenderResources.js +4 -4
  643. package/Source/Scene/Model/ModelRuntimeNode.js +7 -7
  644. package/Source/Scene/Model/ModelRuntimePrimitive.js +3 -3
  645. package/Source/Scene/Model/ModelSceneGraph.js +11 -11
  646. package/Source/Scene/Model/ModelSilhouettePipelineStage.js +1 -1
  647. package/Source/Scene/Model/ModelSkin.js +1 -1
  648. package/Source/Scene/Model/ModelStatistics.js +7 -7
  649. package/Source/Scene/Model/ModelType.js +8 -8
  650. package/Source/Scene/Model/ModelUtility.js +10 -10
  651. package/Source/Scene/Model/NodeRenderResources.js +7 -7
  652. package/Source/Scene/Model/PickingPipelineStage.js +1 -1
  653. package/Source/Scene/Model/PntsLoader.js +6 -6
  654. package/Source/Scene/Model/PointCloudStylingPipelineStage.js +1 -1
  655. package/Source/Scene/Model/PrimitiveOutlineGenerator.js +28 -28
  656. package/Source/Scene/Model/PrimitiveRenderResources.js +10 -10
  657. package/Source/Scene/Model/StyleCommandsNeeded.js +1 -1
  658. package/Source/Scene/Model/TextureManager.js +3 -3
  659. package/Source/Scene/Model/TextureUniform.js +6 -6
  660. package/Source/Scene/Model/UniformType.js +17 -17
  661. package/Source/Scene/Model/VaryingType.js +8 -8
  662. package/Source/Scene/ModelAnimationLoop.js +4 -4
  663. package/Source/Scene/ModelComponents.js +61 -61
  664. package/Source/Scene/Moon.js +8 -8
  665. package/Source/Scene/Multiple3DTileContent.js +14 -14
  666. package/Source/Scene/NeverTileDiscardPolicy.js +2 -2
  667. package/Source/Scene/OIT.js +211 -119
  668. package/Source/Scene/OctahedralProjectedCubeMap.js +28 -39
  669. package/Source/Scene/OpenStreetMapImageryProvider.js +6 -6
  670. package/Source/Scene/OrderedGroundPrimitiveCollection.js +9 -9
  671. package/Source/Scene/Particle.js +13 -13
  672. package/Source/Scene/ParticleBurst.js +8 -8
  673. package/Source/Scene/ParticleSystem.js +41 -36
  674. package/Source/Scene/PerInstanceColorAppearance.js +18 -18
  675. package/Source/Scene/PerformanceDisplay.js +2 -2
  676. package/Source/Scene/PickDepth.js +2 -2
  677. package/Source/Scene/PntsParser.js +1 -1
  678. package/Source/Scene/PointCloud.js +11 -11
  679. package/Source/Scene/PointCloudEyeDomeLighting.js +10 -5
  680. package/Source/Scene/PointCloudShading.js +20 -20
  681. package/Source/Scene/PointPrimitive.js +6 -6
  682. package/Source/Scene/PointPrimitiveCollection.js +11 -11
  683. package/Source/Scene/Polyline.js +9 -9
  684. package/Source/Scene/PolylineCollection.js +13 -18
  685. package/Source/Scene/PolylineColorAppearance.js +13 -13
  686. package/Source/Scene/PolylineMaterialAppearance.js +15 -16
  687. package/Source/Scene/PostProcessStage.js +28 -28
  688. package/Source/Scene/PostProcessStageCollection.js +10 -10
  689. package/Source/Scene/PostProcessStageComposite.js +13 -13
  690. package/Source/Scene/PostProcessStageLibrary.js +11 -11
  691. package/Source/Scene/PostProcessStageSampleMode.js +3 -3
  692. package/Source/Scene/PostProcessStageTextureCache.js +4 -4
  693. package/Source/Scene/Primitive.js +52 -61
  694. package/Source/Scene/PrimitiveCollection.js +20 -20
  695. package/Source/Scene/PrimitiveLoadPlan.js +6 -6
  696. package/Source/Scene/PropertyAttribute.js +9 -9
  697. package/Source/Scene/PropertyAttributeProperty.js +6 -6
  698. package/Source/Scene/PropertyTable.js +34 -34
  699. package/Source/Scene/PropertyTexture.js +9 -9
  700. package/Source/Scene/PropertyTextureProperty.js +8 -8
  701. package/Source/Scene/QuadtreePrimitive.js +9 -9
  702. package/Source/Scene/QuadtreeTile.js +11 -11
  703. package/Source/Scene/QuadtreeTileLoadState.js +1 -1
  704. package/Source/Scene/QuadtreeTileProvider.js +6 -6
  705. package/Source/Scene/ResourceCache.js +39 -39
  706. package/Source/Scene/ResourceCacheKey.js +42 -42
  707. package/Source/Scene/ResourceCacheStatistics.js +2 -2
  708. package/Source/Scene/ResourceLoader.js +5 -5
  709. package/Source/Scene/ResourceLoaderState.js +5 -5
  710. package/Source/Scene/SDFSettings.js +4 -4
  711. package/Source/Scene/Scene.js +88 -88
  712. package/Source/Scene/SceneMode.js +6 -6
  713. package/Source/Scene/SceneTransitioner.js +1 -1
  714. package/Source/Scene/ScreenSpaceCameraController.js +40 -22
  715. package/Source/Scene/ShadowMap.js +29 -29
  716. package/Source/Scene/ShadowMapShader.js +9 -9
  717. package/Source/Scene/ShadowMode.js +5 -5
  718. package/Source/Scene/ShadowVolumeAppearance.js +18 -18
  719. package/Source/Scene/SingleTileImageryProvider.js +31 -31
  720. package/Source/Scene/SkyAtmosphere.js +10 -10
  721. package/Source/Scene/SkyBox.js +6 -6
  722. package/Source/Scene/SpatialNode.js +103 -87
  723. package/Source/Scene/SphereEmitter.js +2 -2
  724. package/Source/Scene/SplitDirection.js +4 -4
  725. package/Source/Scene/Splitter.js +2 -2
  726. package/Source/Scene/StencilFunction.js +9 -9
  727. package/Source/Scene/StencilOperation.js +9 -9
  728. package/Source/Scene/StructuralMetadata.js +11 -11
  729. package/Source/Scene/StyleExpression.js +8 -8
  730. package/Source/Scene/Sun.js +3 -3
  731. package/Source/Scene/SunLight.js +3 -3
  732. package/Source/Scene/SupportedImageFormats.js +3 -3
  733. package/Source/Scene/TextureAtlas.js +21 -19
  734. package/Source/Scene/TileBoundingRegion.js +6 -6
  735. package/Source/Scene/TileBoundingS2Cell.js +6 -6
  736. package/Source/Scene/TileBoundingSphere.js +5 -5
  737. package/Source/Scene/TileBoundingVolume.js +2 -2
  738. package/Source/Scene/TileCoordinatesImageryProvider.js +30 -30
  739. package/Source/Scene/TileDiscardPolicy.js +2 -2
  740. package/Source/Scene/TileImagery.js +3 -3
  741. package/Source/Scene/TileMapServiceImageryProvider.js +9 -9
  742. package/Source/Scene/TileMetadata.js +16 -16
  743. package/Source/Scene/TileOrientedBoundingBox.js +2 -2
  744. package/Source/Scene/TileReplacementQueue.js +1 -1
  745. package/Source/Scene/TileSelectionResult.js +1 -1
  746. package/Source/Scene/TilesetMetadata.js +15 -15
  747. package/Source/Scene/TimeDynamicImagery.js +8 -8
  748. package/Source/Scene/TimeDynamicPointCloud.js +9 -9
  749. package/Source/Scene/Tonemapper.js +5 -5
  750. package/Source/Scene/TranslucentTileClassification.js +1 -1
  751. package/Source/Scene/TweenCollection.js +31 -31
  752. package/Source/Scene/UrlTemplateImageryProvider.js +47 -47
  753. package/Source/Scene/Vector3DTileBatch.js +7 -7
  754. package/Source/Scene/Vector3DTileClampedPolylines.js +9 -9
  755. package/Source/Scene/Vector3DTileGeometry.js +8 -8
  756. package/Source/Scene/Vector3DTilePoints.js +7 -7
  757. package/Source/Scene/Vector3DTilePolygons.js +10 -10
  758. package/Source/Scene/Vector3DTilePolylines.js +10 -10
  759. package/Source/Scene/Vector3DTilePrimitive.js +10 -10
  760. package/Source/Scene/VertexAttributeSemantic.js +15 -15
  761. package/Source/Scene/VerticalOrigin.js +5 -5
  762. package/Source/Scene/ViewportQuad.js +2 -2
  763. package/Source/Scene/VoxelBoxShape.js +27 -118
  764. package/Source/Scene/VoxelContent.js +3 -3
  765. package/Source/Scene/VoxelCylinderShape.js +21 -21
  766. package/Source/Scene/VoxelEllipsoidShape.js +28 -20
  767. package/Source/Scene/VoxelPrimitive.js +48 -48
  768. package/Source/Scene/VoxelProvider.js +13 -13
  769. package/Source/Scene/VoxelRenderResources.js +6 -3
  770. package/Source/Scene/VoxelShape.js +9 -9
  771. package/Source/Scene/VoxelShapeType.js +4 -4
  772. package/Source/Scene/VoxelTraversal.js +86 -144
  773. package/Source/Scene/WebMapServiceImageryProvider.js +49 -49
  774. package/Source/Scene/WebMapTileServiceImageryProvider.js +43 -43
  775. package/Source/Scene/buildVoxelDrawCommands.js +1 -0
  776. package/Source/Scene/computeFlyToLocationForRectangle.js +10 -1
  777. package/Source/Scene/createBillboardPointCallback.js +5 -5
  778. package/Source/Scene/createElevationBandMaterial.js +15 -20
  779. package/Source/Scene/createOsmBuildings.js +3 -3
  780. package/Source/Scene/createTangentSpaceDebugPrimitive.js +2 -2
  781. package/Source/Scene/createWorldImagery.js +1 -1
  782. package/Source/Scene/findContentMetadata.js +1 -1
  783. package/Source/Scene/findGroupMetadata.js +1 -1
  784. package/Source/Scene/findTileMetadata.js +1 -1
  785. package/Source/Scene/getClipAndStyleCode.js +5 -5
  786. package/Source/Scene/getClippingFunction.js +4 -4
  787. package/Source/Scene/hasExtension.js +3 -3
  788. package/Source/Scene/parseBatchTable.js +14 -14
  789. package/Source/Scene/parseBoundingVolumeSemantics.js +7 -7
  790. package/Source/Scene/parseFeatureMetadataLegacy.js +4 -4
  791. package/Source/Scene/parseStructuralMetadata.js +4 -4
  792. package/Source/Scene/preprocess3DTileContent.js +2 -2
  793. package/Source/Scene/processVoxelProperties.js +9 -8
  794. package/Source/Shaders/AdjustTranslucentFS.glsl +9 -6
  795. package/Source/Shaders/AdjustTranslucentFS.js +9 -6
  796. package/Source/Shaders/Appearances/AllMaterialAppearanceFS.glsl +7 -7
  797. package/Source/Shaders/Appearances/AllMaterialAppearanceFS.js +7 -7
  798. package/Source/Shaders/Appearances/AllMaterialAppearanceVS.glsl +12 -12
  799. package/Source/Shaders/Appearances/AllMaterialAppearanceVS.js +12 -12
  800. package/Source/Shaders/Appearances/BasicMaterialAppearanceFS.glsl +4 -4
  801. package/Source/Shaders/Appearances/BasicMaterialAppearanceFS.js +4 -4
  802. package/Source/Shaders/Appearances/BasicMaterialAppearanceVS.glsl +6 -6
  803. package/Source/Shaders/Appearances/BasicMaterialAppearanceVS.js +6 -6
  804. package/Source/Shaders/Appearances/EllipsoidSurfaceAppearanceFS.glsl +5 -5
  805. package/Source/Shaders/Appearances/EllipsoidSurfaceAppearanceFS.js +5 -5
  806. package/Source/Shaders/Appearances/EllipsoidSurfaceAppearanceVS.glsl +7 -7
  807. package/Source/Shaders/Appearances/EllipsoidSurfaceAppearanceVS.js +7 -7
  808. package/Source/Shaders/Appearances/PerInstanceColorAppearanceFS.glsl +4 -4
  809. package/Source/Shaders/Appearances/PerInstanceColorAppearanceFS.js +4 -4
  810. package/Source/Shaders/Appearances/PerInstanceColorAppearanceVS.glsl +8 -8
  811. package/Source/Shaders/Appearances/PerInstanceColorAppearanceVS.js +8 -8
  812. package/Source/Shaders/Appearances/PerInstanceFlatColorAppearanceFS.glsl +2 -2
  813. package/Source/Shaders/Appearances/PerInstanceFlatColorAppearanceFS.js +2 -2
  814. package/Source/Shaders/Appearances/PerInstanceFlatColorAppearanceVS.glsl +5 -5
  815. package/Source/Shaders/Appearances/PerInstanceFlatColorAppearanceVS.js +5 -5
  816. package/Source/Shaders/Appearances/PolylineColorAppearanceVS.glsl +10 -10
  817. package/Source/Shaders/Appearances/PolylineColorAppearanceVS.js +10 -10
  818. package/Source/Shaders/Appearances/PolylineMaterialAppearanceVS.glsl +12 -12
  819. package/Source/Shaders/Appearances/PolylineMaterialAppearanceVS.js +12 -12
  820. package/Source/Shaders/Appearances/TexturedMaterialAppearanceFS.glsl +5 -5
  821. package/Source/Shaders/Appearances/TexturedMaterialAppearanceFS.js +5 -5
  822. package/Source/Shaders/Appearances/TexturedMaterialAppearanceVS.glsl +8 -8
  823. package/Source/Shaders/Appearances/TexturedMaterialAppearanceVS.js +8 -8
  824. package/Source/Shaders/BillboardCollectionFS.glsl +15 -15
  825. package/Source/Shaders/BillboardCollectionFS.js +15 -15
  826. package/Source/Shaders/BillboardCollectionVS.glsl +23 -23
  827. package/Source/Shaders/BillboardCollectionVS.js +23 -23
  828. package/Source/Shaders/BrdfLutGeneratorFS.glsl +2 -2
  829. package/Source/Shaders/BrdfLutGeneratorFS.js +2 -2
  830. package/Source/Shaders/Builtin/CzmBuiltins.js +2 -0
  831. package/Source/Shaders/Builtin/Functions/depthClamp.glsl +3 -3
  832. package/Source/Shaders/Builtin/Functions/depthClamp.js +3 -3
  833. package/Source/Shaders/Builtin/Functions/getWaterNoise.glsl +4 -4
  834. package/Source/Shaders/Builtin/Functions/getWaterNoise.js +4 -4
  835. package/Source/Shaders/Builtin/Functions/phong.glsl +1 -1
  836. package/Source/Shaders/Builtin/Functions/phong.js +1 -1
  837. package/Source/Shaders/Builtin/Functions/readDepth.glsl +1 -1
  838. package/Source/Shaders/Builtin/Functions/readDepth.js +1 -1
  839. package/Source/Shaders/Builtin/Functions/sampleOctahedralProjection.glsl +5 -5
  840. package/Source/Shaders/Builtin/Functions/sampleOctahedralProjection.js +5 -5
  841. package/Source/Shaders/Builtin/Functions/shadowDepthCompare.glsl +3 -3
  842. package/Source/Shaders/Builtin/Functions/shadowDepthCompare.js +3 -3
  843. package/Source/Shaders/Builtin/Functions/tangentToEyeSpaceMatrix.glsl +1 -1
  844. package/Source/Shaders/Builtin/Functions/tangentToEyeSpaceMatrix.js +1 -1
  845. package/Source/Shaders/Builtin/Functions/textureCube.glsl +17 -0
  846. package/Source/Shaders/Builtin/Functions/textureCube.js +18 -0
  847. package/Source/Shaders/Builtin/Functions/translateRelativeToEye.glsl +2 -2
  848. package/Source/Shaders/Builtin/Functions/translateRelativeToEye.js +2 -2
  849. package/Source/Shaders/Builtin/Functions/vertexLogDepth.glsl +2 -2
  850. package/Source/Shaders/Builtin/Functions/vertexLogDepth.js +2 -2
  851. package/Source/Shaders/Builtin/Functions/writeDepthClamp.glsl +5 -8
  852. package/Source/Shaders/Builtin/Functions/writeDepthClamp.js +5 -8
  853. package/Source/Shaders/Builtin/Functions/writeLogDepth.glsl +6 -6
  854. package/Source/Shaders/Builtin/Functions/writeLogDepth.js +6 -6
  855. package/Source/Shaders/CloudCollectionFS.glsl +18 -18
  856. package/Source/Shaders/CloudCollectionFS.js +18 -18
  857. package/Source/Shaders/CloudCollectionVS.glsl +11 -11
  858. package/Source/Shaders/CloudCollectionVS.js +11 -11
  859. package/Source/Shaders/CloudNoiseFS.glsl +5 -5
  860. package/Source/Shaders/CloudNoiseFS.js +5 -5
  861. package/Source/Shaders/CloudNoiseVS.glsl +2 -2
  862. package/Source/Shaders/CloudNoiseVS.js +2 -2
  863. package/Source/Shaders/CompareAndPackTranslucentDepth.glsl +4 -4
  864. package/Source/Shaders/CompareAndPackTranslucentDepth.js +4 -4
  865. package/Source/Shaders/CompositeOITFS.glsl +6 -6
  866. package/Source/Shaders/CompositeOITFS.js +6 -6
  867. package/Source/Shaders/DepthPlaneFS.glsl +2 -2
  868. package/Source/Shaders/DepthPlaneFS.js +2 -2
  869. package/Source/Shaders/DepthPlaneVS.glsl +2 -2
  870. package/Source/Shaders/DepthPlaneVS.js +2 -2
  871. package/Source/Shaders/EllipsoidFS.glsl +5 -13
  872. package/Source/Shaders/EllipsoidFS.js +6 -14
  873. package/Source/Shaders/EllipsoidVS.glsl +2 -2
  874. package/Source/Shaders/EllipsoidVS.js +2 -2
  875. package/Source/Shaders/FXAA3_11.glsl +4 -4
  876. package/Source/Shaders/FXAA3_11.js +4 -4
  877. package/Source/Shaders/GlobeFS.glsl +15 -15
  878. package/Source/Shaders/GlobeFS.js +15 -15
  879. package/Source/Shaders/GlobeVS.glsl +17 -17
  880. package/Source/Shaders/GlobeVS.js +17 -17
  881. package/Source/Shaders/Materials/AspectRampMaterial.glsl +1 -1
  882. package/Source/Shaders/Materials/AspectRampMaterial.js +1 -1
  883. package/Source/Shaders/Materials/BumpMapMaterial.glsl +3 -3
  884. package/Source/Shaders/Materials/BumpMapMaterial.js +3 -3
  885. package/Source/Shaders/Materials/ElevationBandMaterial.glsl +3 -3
  886. package/Source/Shaders/Materials/ElevationBandMaterial.js +3 -3
  887. package/Source/Shaders/Materials/ElevationContourMaterial.glsl +2 -1
  888. package/Source/Shaders/Materials/ElevationContourMaterial.js +2 -1
  889. package/Source/Shaders/Materials/ElevationRampMaterial.glsl +1 -1
  890. package/Source/Shaders/Materials/ElevationRampMaterial.js +1 -1
  891. package/Source/Shaders/Materials/GridMaterial.glsl +3 -2
  892. package/Source/Shaders/Materials/GridMaterial.js +3 -2
  893. package/Source/Shaders/Materials/NormalMapMaterial.glsl +1 -1
  894. package/Source/Shaders/Materials/NormalMapMaterial.js +1 -1
  895. package/Source/Shaders/Materials/PolylineArrowMaterial.glsl +3 -2
  896. package/Source/Shaders/Materials/PolylineArrowMaterial.js +3 -2
  897. package/Source/Shaders/Materials/PolylineDashMaterial.glsl +1 -1
  898. package/Source/Shaders/Materials/PolylineDashMaterial.js +1 -1
  899. package/Source/Shaders/Materials/PolylineOutlineMaterial.glsl +1 -1
  900. package/Source/Shaders/Materials/PolylineOutlineMaterial.js +1 -1
  901. package/Source/Shaders/Materials/SlopeRampMaterial.glsl +1 -1
  902. package/Source/Shaders/Materials/SlopeRampMaterial.js +1 -1
  903. package/Source/Shaders/Materials/Water.glsl +1 -1
  904. package/Source/Shaders/Materials/Water.js +1 -1
  905. package/Source/Shaders/Model/ImageBasedLightingStageFS.glsl +3 -3
  906. package/Source/Shaders/Model/ImageBasedLightingStageFS.js +3 -3
  907. package/Source/Shaders/Model/MaterialStageFS.glsl +10 -10
  908. package/Source/Shaders/Model/MaterialStageFS.js +10 -10
  909. package/Source/Shaders/Model/ModelClippingPlanesStageFS.glsl +3 -3
  910. package/Source/Shaders/Model/ModelClippingPlanesStageFS.js +3 -3
  911. package/Source/Shaders/Model/ModelFS.glsl +1 -1
  912. package/Source/Shaders/Model/ModelFS.js +1 -1
  913. package/Source/Shaders/Model/PrimitiveOutlineStageFS.glsl +3 -3
  914. package/Source/Shaders/Model/PrimitiveOutlineStageFS.js +3 -3
  915. package/Source/Shaders/Model/SelectedFeatureIdStageCommon.glsl +1 -1
  916. package/Source/Shaders/Model/SelectedFeatureIdStageCommon.js +1 -1
  917. package/Source/Shaders/OctahedralProjectionAtlasFS.glsl +8 -8
  918. package/Source/Shaders/OctahedralProjectionAtlasFS.js +8 -8
  919. package/Source/Shaders/OctahedralProjectionFS.glsl +4 -4
  920. package/Source/Shaders/OctahedralProjectionFS.js +4 -4
  921. package/Source/Shaders/OctahedralProjectionVS.glsl +3 -3
  922. package/Source/Shaders/OctahedralProjectionVS.js +3 -3
  923. package/Source/Shaders/PointPrimitiveCollectionFS.glsl +6 -6
  924. package/Source/Shaders/PointPrimitiveCollectionFS.js +6 -6
  925. package/Source/Shaders/PointPrimitiveCollectionVS.glsl +12 -12
  926. package/Source/Shaders/PointPrimitiveCollectionVS.js +12 -12
  927. package/Source/Shaders/PolylineFS.glsl +3 -3
  928. package/Source/Shaders/PolylineFS.js +3 -3
  929. package/Source/Shaders/PolylineShadowVolumeFS.glsl +12 -16
  930. package/Source/Shaders/PolylineShadowVolumeFS.js +12 -16
  931. package/Source/Shaders/PolylineShadowVolumeMorphFS.glsl +8 -8
  932. package/Source/Shaders/PolylineShadowVolumeMorphFS.js +8 -8
  933. package/Source/Shaders/PolylineShadowVolumeMorphVS.glsl +20 -20
  934. package/Source/Shaders/PolylineShadowVolumeMorphVS.js +20 -20
  935. package/Source/Shaders/PolylineShadowVolumeVS.glsl +20 -20
  936. package/Source/Shaders/PolylineShadowVolumeVS.js +20 -20
  937. package/Source/Shaders/PolylineVS.glsl +17 -17
  938. package/Source/Shaders/PolylineVS.js +17 -17
  939. package/Source/Shaders/PostProcessStages/AcesTonemappingStage.glsl +4 -4
  940. package/Source/Shaders/PostProcessStages/AcesTonemappingStage.js +4 -4
  941. package/Source/Shaders/PostProcessStages/AdditiveBlend.glsl +4 -4
  942. package/Source/Shaders/PostProcessStages/AdditiveBlend.js +4 -4
  943. package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.glsl +4 -4
  944. package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.js +4 -4
  945. package/Source/Shaders/PostProcessStages/AmbientOcclusionModulate.glsl +4 -4
  946. package/Source/Shaders/PostProcessStages/AmbientOcclusionModulate.js +4 -4
  947. package/Source/Shaders/PostProcessStages/BlackAndWhite.glsl +4 -4
  948. package/Source/Shaders/PostProcessStages/BlackAndWhite.js +4 -4
  949. package/Source/Shaders/PostProcessStages/BloomComposite.glsl +5 -5
  950. package/Source/Shaders/PostProcessStages/BloomComposite.js +5 -5
  951. package/Source/Shaders/PostProcessStages/BrightPass.glsl +3 -3
  952. package/Source/Shaders/PostProcessStages/BrightPass.js +3 -3
  953. package/Source/Shaders/PostProcessStages/Brightness.glsl +3 -3
  954. package/Source/Shaders/PostProcessStages/Brightness.js +3 -3
  955. package/Source/Shaders/PostProcessStages/CompositeTranslucentClassification.glsl +5 -5
  956. package/Source/Shaders/PostProcessStages/CompositeTranslucentClassification.js +5 -5
  957. package/Source/Shaders/PostProcessStages/ContrastBias.glsl +3 -3
  958. package/Source/Shaders/PostProcessStages/ContrastBias.js +3 -3
  959. package/Source/Shaders/PostProcessStages/DepthOfField.glsl +2 -2
  960. package/Source/Shaders/PostProcessStages/DepthOfField.js +2 -2
  961. package/Source/Shaders/PostProcessStages/DepthView.glsl +2 -2
  962. package/Source/Shaders/PostProcessStages/DepthView.js +2 -2
  963. package/Source/Shaders/PostProcessStages/DepthViewPacked.glsl +3 -3
  964. package/Source/Shaders/PostProcessStages/DepthViewPacked.js +3 -3
  965. package/Source/Shaders/PostProcessStages/EdgeDetection.glsl +7 -7
  966. package/Source/Shaders/PostProcessStages/EdgeDetection.js +7 -7
  967. package/Source/Shaders/PostProcessStages/FXAA.glsl +3 -3
  968. package/Source/Shaders/PostProcessStages/FXAA.js +3 -3
  969. package/Source/Shaders/PostProcessStages/FilmicTonemapping.glsl +4 -4
  970. package/Source/Shaders/PostProcessStages/FilmicTonemapping.js +4 -4
  971. package/Source/Shaders/PostProcessStages/GaussianBlur1D.glsl +5 -5
  972. package/Source/Shaders/PostProcessStages/GaussianBlur1D.js +5 -5
  973. package/Source/Shaders/PostProcessStages/LensFlare.glsl +13 -13
  974. package/Source/Shaders/PostProcessStages/LensFlare.js +13 -13
  975. package/Source/Shaders/PostProcessStages/ModifiedReinhardTonemapping.glsl +4 -4
  976. package/Source/Shaders/PostProcessStages/ModifiedReinhardTonemapping.js +4 -4
  977. package/Source/Shaders/PostProcessStages/NightVision.glsl +3 -3
  978. package/Source/Shaders/PostProcessStages/NightVision.js +3 -3
  979. package/Source/Shaders/PostProcessStages/PassThrough.glsl +2 -2
  980. package/Source/Shaders/PostProcessStages/PassThrough.js +2 -2
  981. package/Source/Shaders/PostProcessStages/PassThroughDepth.glsl +2 -2
  982. package/Source/Shaders/PostProcessStages/PassThroughDepth.js +2 -2
  983. package/Source/Shaders/PostProcessStages/PointCloudEyeDomeLighting.glsl +7 -9
  984. package/Source/Shaders/PostProcessStages/PointCloudEyeDomeLighting.js +8 -10
  985. package/Source/Shaders/PostProcessStages/ReinhardTonemapping.glsl +4 -4
  986. package/Source/Shaders/PostProcessStages/ReinhardTonemapping.js +4 -4
  987. package/Source/Shaders/PostProcessStages/Silhouette.glsl +4 -4
  988. package/Source/Shaders/PostProcessStages/Silhouette.js +4 -4
  989. package/Source/Shaders/ReprojectWebMercatorFS.glsl +2 -2
  990. package/Source/Shaders/ReprojectWebMercatorFS.js +2 -2
  991. package/Source/Shaders/ReprojectWebMercatorVS.glsl +3 -3
  992. package/Source/Shaders/ReprojectWebMercatorVS.js +3 -3
  993. package/Source/Shaders/ShadowVolumeAppearanceFS.glsl +19 -23
  994. package/Source/Shaders/ShadowVolumeAppearanceFS.js +20 -24
  995. package/Source/Shaders/ShadowVolumeAppearanceVS.glsl +12 -12
  996. package/Source/Shaders/ShadowVolumeAppearanceVS.js +12 -12
  997. package/Source/Shaders/ShadowVolumeFS.glsl +2 -6
  998. package/Source/Shaders/ShadowVolumeFS.js +3 -7
  999. package/Source/Shaders/SkyAtmosphereFS.glsl +6 -6
  1000. package/Source/Shaders/SkyAtmosphereFS.js +6 -6
  1001. package/Source/Shaders/SkyAtmosphereVS.glsl +6 -6
  1002. package/Source/Shaders/SkyAtmosphereVS.js +6 -6
  1003. package/Source/Shaders/SkyBoxFS.glsl +3 -3
  1004. package/Source/Shaders/SkyBoxFS.js +3 -3
  1005. package/Source/Shaders/SkyBoxVS.glsl +2 -2
  1006. package/Source/Shaders/SkyBoxVS.js +2 -2
  1007. package/Source/Shaders/SunFS.glsl +3 -3
  1008. package/Source/Shaders/SunFS.js +3 -3
  1009. package/Source/Shaders/SunTextureFS.glsl +2 -2
  1010. package/Source/Shaders/SunTextureFS.js +2 -2
  1011. package/Source/Shaders/SunVS.glsl +2 -2
  1012. package/Source/Shaders/SunVS.js +2 -2
  1013. package/Source/Shaders/Vector3DTileClampedPolylinesFS.glsl +9 -13
  1014. package/Source/Shaders/Vector3DTileClampedPolylinesFS.js +9 -13
  1015. package/Source/Shaders/Vector3DTileClampedPolylinesVS.glsl +12 -12
  1016. package/Source/Shaders/Vector3DTileClampedPolylinesVS.js +12 -12
  1017. package/Source/Shaders/Vector3DTilePolylinesVS.glsl +5 -5
  1018. package/Source/Shaders/Vector3DTilePolylinesVS.js +5 -5
  1019. package/Source/Shaders/VectorTileVS.glsl +2 -2
  1020. package/Source/Shaders/VectorTileVS.js +2 -2
  1021. package/Source/Shaders/ViewportQuadFS.glsl +2 -2
  1022. package/Source/Shaders/ViewportQuadFS.js +2 -2
  1023. package/Source/Shaders/ViewportQuadVS.glsl +3 -3
  1024. package/Source/Shaders/ViewportQuadVS.js +3 -3
  1025. package/Source/Shaders/Voxels/IntersectBox.glsl +52 -58
  1026. package/Source/Shaders/Voxels/IntersectBox.js +52 -58
  1027. package/Source/Shaders/Voxels/IntersectClippingPlanes.glsl +38 -30
  1028. package/Source/Shaders/Voxels/IntersectClippingPlanes.js +38 -30
  1029. package/Source/Shaders/Voxels/IntersectDepth.glsl +2 -2
  1030. package/Source/Shaders/Voxels/IntersectDepth.js +2 -2
  1031. package/Source/Shaders/Voxels/IntersectEllipsoid.glsl +12 -2
  1032. package/Source/Shaders/Voxels/IntersectEllipsoid.js +12 -2
  1033. package/Source/Shaders/Voxels/Intersection.glsl +10 -12
  1034. package/Source/Shaders/Voxels/Intersection.js +10 -12
  1035. package/Source/Shaders/Voxels/IntersectionUtils.glsl +52 -59
  1036. package/Source/Shaders/Voxels/IntersectionUtils.js +52 -59
  1037. package/Source/Shaders/Voxels/Megatexture.glsl +1 -1
  1038. package/Source/Shaders/Voxels/Megatexture.js +1 -1
  1039. package/Source/Shaders/Voxels/Octree.glsl +75 -76
  1040. package/Source/Shaders/Voxels/Octree.js +75 -76
  1041. package/Source/Shaders/Voxels/VoxelFS.glsl +44 -24
  1042. package/Source/Shaders/Voxels/VoxelFS.js +44 -24
  1043. package/Source/Shaders/Voxels/VoxelVS.glsl +1 -1
  1044. package/Source/Shaders/Voxels/VoxelVS.js +1 -1
  1045. package/Source/Shaders/Voxels/convertUvToBox.glsl +13 -5
  1046. package/Source/Shaders/Voxels/convertUvToBox.js +13 -5
  1047. package/Source/Shaders/Voxels/convertUvToCylinder.glsl +5 -9
  1048. package/Source/Shaders/Voxels/convertUvToCylinder.js +5 -9
  1049. package/Source/Shaders/Voxels/convertUvToEllipsoid.glsl +3 -6
  1050. package/Source/Shaders/Voxels/convertUvToEllipsoid.js +3 -6
  1051. package/Source/ThirdParty/Workers/draco_decoder_nodejs.js +91 -91
  1052. package/Source/ThirdParty/draco_decoder.wasm +0 -0
  1053. package/Source/Widget/CesiumWidget.js +23 -23
  1054. package/Source/Workers/cesiumWorkerBootstrapper.js +18 -18
  1055. package/Source/WorkersES6/createTaskProcessorWorker.js +3 -3
  1056. package/Source/WorkersES6/decodeDraco.js +9 -1
  1057. package/index.d.ts +37 -46
  1058. package/index.js +103 -104
  1059. package/package.json +1 -1
  1060. package/Source/Core/cancelAnimationFrame.js +0 -53
  1061. package/Source/Core/requestAnimationFrame.js +0 -83
  1062. package/Source/Renderer/modernizeShader.js +0 -242
  1063. /package/Build/Workers/{GeometryOffsetAttribute-04332ce7.js → GeometryOffsetAttribute-9ad0019c.js} +0 -0
@@ -7,8 +7,8 @@
7
7
 
8
8
  uniform mat4 u_transformPositionViewToUv;
9
9
 
10
- void intersectDepth(vec2 screenCoord, Ray ray, inout Intersections ix) {
11
- float logDepthOrDepth = czm_unpackDepth(texture2D(czm_globeDepthTexture, screenCoord));
10
+ void intersectDepth(in vec2 screenCoord, in Ray ray, inout Intersections ix) {
11
+ float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, screenCoord));
12
12
  if (logDepthOrDepth != 0.0) {
13
13
  // Calculate how far the ray must travel before it hits the depth buffer.
14
14
  vec4 eyeCoordinateDepth = czm_screenToEyeCoordinates(screenCoord, logDepthOrDepth);
@@ -8,8 +8,8 @@ export default "// See IntersectionUtils.glsl for the definitions of Ray, Inters
8
8
  \n\
9
9
  uniform mat4 u_transformPositionViewToUv;\n\
10
10
  \n\
11
- void intersectDepth(vec2 screenCoord, Ray ray, inout Intersections ix) {\n\
12
- float logDepthOrDepth = czm_unpackDepth(texture2D(czm_globeDepthTexture, screenCoord));\n\
11
+ void intersectDepth(in vec2 screenCoord, in Ray ray, inout Intersections ix) {\n\
12
+ float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, screenCoord));\n\
13
13
  if (logDepthOrDepth != 0.0) {\n\
14
14
  // Calculate how far the ray must travel before it hits the depth buffer.\n\
15
15
  vec4 eyeCoordinateDepth = czm_screenToEyeCoordinates(screenCoord, logDepthOrDepth);\n\
@@ -14,6 +14,7 @@
14
14
  #define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF
15
15
  #define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF
16
16
  #define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF
17
+ #define ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MAX
17
18
  #define ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MIN
18
19
  #define ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_FLAT
19
20
  #define ELLIPSOID_INTERSECTION_INDEX_LONGITUDE
@@ -29,6 +30,9 @@
29
30
  #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF)
30
31
  uniform vec2 u_ellipsoidRenderLatitudeCosSqrHalfMinMax;
31
32
  #endif
33
+ #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MAX)
34
+ uniform float u_ellipsoidInverseOuterScaleUv;
35
+ #endif
32
36
  #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MIN)
33
37
  uniform float u_ellipsoidInverseInnerScaleUv;
34
38
  #endif
@@ -230,8 +234,14 @@ void intersectShape(in Ray ray, inout Intersections ix) {
230
234
  ray.pos = ray.pos * 2.0 - 1.0;
231
235
  ray.dir *= 2.0;
232
236
 
237
+ #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MAX)
238
+ Ray outerRay = Ray(ray.pos * u_ellipsoidInverseOuterScaleUv, ray.dir * u_ellipsoidInverseOuterScaleUv);
239
+ #else
240
+ Ray outerRay = ray;
241
+ #endif
242
+
233
243
  // Outer ellipsoid
234
- vec2 outerIntersect = intersectUnitSphereUnnormalizedDirection(ray);
244
+ vec2 outerIntersect = intersectUnitSphereUnnormalizedDirection(outerRay);
235
245
  setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX, outerIntersect);
236
246
 
237
247
  // Exit early if the outer ellipsoid was missed.
@@ -287,7 +297,7 @@ void intersectShape(in Ray ray, inout Intersections ix) {
287
297
 
288
298
  // Flip the ray because the intersection function expects a cone growing towards +Z.
289
299
  #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF)
290
- Ray flippedRay = ray;
300
+ Ray flippedRay = outerRay;
291
301
  flippedRay.dir.z *= -1.0;
292
302
  flippedRay.pos.z *= -1.0;
293
303
  #endif
@@ -15,6 +15,7 @@ export default "// See IntersectionUtils.glsl for the definitions of Ray, Inters
15
15
  #define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF\n\
16
16
  #define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF\n\
17
17
  #define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF\n\
18
+ #define ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MAX\n\
18
19
  #define ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MIN\n\
19
20
  #define ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_FLAT\n\
20
21
  #define ELLIPSOID_INTERSECTION_INDEX_LONGITUDE\n\
@@ -30,6 +31,9 @@ export default "// See IntersectionUtils.glsl for the definitions of Ray, Inters
30
31
  #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF)\n\
31
32
  uniform vec2 u_ellipsoidRenderLatitudeCosSqrHalfMinMax;\n\
32
33
  #endif\n\
34
+ #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MAX)\n\
35
+ uniform float u_ellipsoidInverseOuterScaleUv;\n\
36
+ #endif\n\
33
37
  #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MIN)\n\
34
38
  uniform float u_ellipsoidInverseInnerScaleUv;\n\
35
39
  #endif\n\
@@ -230,9 +234,15 @@ void intersectShape(in Ray ray, inout Intersections ix) {\n\
230
234
  // Direction is scaled as well to be in sync with position.\n\
231
235
  ray.pos = ray.pos * 2.0 - 1.0;\n\
232
236
  ray.dir *= 2.0;\n\
237
+ \n\
238
+ #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_HEIGHT_MAX)\n\
239
+ Ray outerRay = Ray(ray.pos * u_ellipsoidInverseOuterScaleUv, ray.dir * u_ellipsoidInverseOuterScaleUv);\n\
240
+ #else\n\
241
+ Ray outerRay = ray;\n\
242
+ #endif\n\
233
243
  \n\
234
244
  // Outer ellipsoid\n\
235
- vec2 outerIntersect = intersectUnitSphereUnnormalizedDirection(ray);\n\
245
+ vec2 outerIntersect = intersectUnitSphereUnnormalizedDirection(outerRay);\n\
236
246
  setIntersectionPair(ix, ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX, outerIntersect);\n\
237
247
  \n\
238
248
  // Exit early if the outer ellipsoid was missed.\n\
@@ -288,7 +298,7 @@ void intersectShape(in Ray ray, inout Intersections ix) {\n\
288
298
  \n\
289
299
  // Flip the ray because the intersection function expects a cone growing towards +Z.\n\
290
300
  #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF)\n\
291
- Ray flippedRay = ray;\n\
301
+ Ray flippedRay = outerRay;\n\
292
302
  flippedRay.dir.z *= -1.0;\n\
293
303
  flippedRay.pos.z *= -1.0;\n\
294
304
  #endif\n\
@@ -5,23 +5,21 @@
5
5
  // Scene/VoxelRenderResources.js.
6
6
  // See also IntersectClippingPlane.glsl and IntersectDepth.glsl.
7
7
  // See IntersectionUtils.glsl for the definitions of Ray, NO_HIT,
8
- // getIntersectionPair, initializeIntersections, nextIntersection.
8
+ // getFirstIntersection, initializeIntersections, nextIntersection.
9
9
 
10
10
  /* Intersection defines (set in Scene/VoxelRenderResources.js)
11
11
  #define INTERSECTION_COUNT ###
12
12
  */
13
13
 
14
- vec2 intersectScene(vec2 screenCoord, vec3 positionUv, vec3 directionUv, out Intersections ix) {
15
- Ray ray = Ray(positionUv, directionUv);
16
-
14
+ RayShapeIntersection intersectScene(in vec2 screenCoord, in Ray ray, out Intersections ix) {
17
15
  // Do a ray-shape intersection to find the exact starting and ending points.
18
16
  intersectShape(ray, ix);
19
17
 
20
18
  // Exit early if the positive shape was completely missed or behind the ray.
21
- vec2 entryExitT = getIntersectionPair(ix, 0);
22
- if (entryExitT.x == NO_HIT) {
19
+ RayShapeIntersection intersection = getFirstIntersection(ix);
20
+ if (intersection.entry.w == NO_HIT) {
23
21
  // Positive shape was completely missed - so exit early.
24
- return vec2(NO_HIT);
22
+ return intersection;
25
23
  }
26
24
 
27
25
  // Clipping planes
@@ -38,17 +36,17 @@ vec2 intersectScene(vec2 screenCoord, vec3 positionUv, vec3 directionUv, out Int
38
36
  #if (INTERSECTION_COUNT > 1)
39
37
  initializeIntersections(ix);
40
38
  for (int i = 0; i < INTERSECTION_COUNT; ++i) {
41
- entryExitT = nextIntersection(ix);
42
- if (entryExitT.y > 0.0) {
39
+ intersection = nextIntersection(ix);
40
+ if (intersection.exit.w > 0.0) {
43
41
  // Set start to 0.0 when ray is inside the shape.
44
- entryExitT.x = max(entryExitT.x, 0.0);
42
+ intersection.entry.w = max(intersection.entry.w, 0.0);
45
43
  break;
46
44
  }
47
45
  }
48
46
  #else
49
47
  // Set start to 0.0 when ray is inside the shape.
50
- entryExitT.x = max(entryExitT.x, 0.0);
48
+ intersection.entry.w = max(intersection.entry.w, 0.0);
51
49
  #endif
52
50
 
53
- return entryExitT;
51
+ return intersection;
54
52
  }
@@ -6,23 +6,21 @@ export default "// Main intersection function for Voxel scenes.\n\
6
6
  // Scene/VoxelRenderResources.js.\n\
7
7
  // See also IntersectClippingPlane.glsl and IntersectDepth.glsl.\n\
8
8
  // See IntersectionUtils.glsl for the definitions of Ray, NO_HIT,\n\
9
- // getIntersectionPair, initializeIntersections, nextIntersection.\n\
9
+ // getFirstIntersection, initializeIntersections, nextIntersection.\n\
10
10
  \n\
11
11
  /* Intersection defines (set in Scene/VoxelRenderResources.js)\n\
12
12
  #define INTERSECTION_COUNT ###\n\
13
13
  */\n\
14
14
  \n\
15
- vec2 intersectScene(vec2 screenCoord, vec3 positionUv, vec3 directionUv, out Intersections ix) {\n\
16
- Ray ray = Ray(positionUv, directionUv);\n\
17
- \n\
15
+ RayShapeIntersection intersectScene(in vec2 screenCoord, in Ray ray, out Intersections ix) {\n\
18
16
  // Do a ray-shape intersection to find the exact starting and ending points.\n\
19
17
  intersectShape(ray, ix);\n\
20
18
  \n\
21
19
  // Exit early if the positive shape was completely missed or behind the ray.\n\
22
- vec2 entryExitT = getIntersectionPair(ix, 0);\n\
23
- if (entryExitT.x == NO_HIT) {\n\
20
+ RayShapeIntersection intersection = getFirstIntersection(ix);\n\
21
+ if (intersection.entry.w == NO_HIT) {\n\
24
22
  // Positive shape was completely missed - so exit early.\n\
25
- return vec2(NO_HIT);\n\
23
+ return intersection;\n\
26
24
  }\n\
27
25
  \n\
28
26
  // Clipping planes\n\
@@ -39,18 +37,18 @@ vec2 intersectScene(vec2 screenCoord, vec3 positionUv, vec3 directionUv, out Int
39
37
  #if (INTERSECTION_COUNT > 1)\n\
40
38
  initializeIntersections(ix);\n\
41
39
  for (int i = 0; i < INTERSECTION_COUNT; ++i) {\n\
42
- entryExitT = nextIntersection(ix);\n\
43
- if (entryExitT.y > 0.0) {\n\
40
+ intersection = nextIntersection(ix);\n\
41
+ if (intersection.exit.w > 0.0) {\n\
44
42
  // Set start to 0.0 when ray is inside the shape.\n\
45
- entryExitT.x = max(entryExitT.x, 0.0);\n\
43
+ intersection.entry.w = max(intersection.entry.w, 0.0);\n\
46
44
  break;\n\
47
45
  }\n\
48
46
  }\n\
49
47
  #else\n\
50
48
  // Set start to 0.0 when ray is inside the shape.\n\
51
- entryExitT.x = max(entryExitT.x, 0.0);\n\
49
+ intersection.entry.w = max(intersection.entry.w, 0.0);\n\
52
50
  #endif\n\
53
51
  \n\
54
- return entryExitT;\n\
52
+ return intersection;\n\
55
53
  }\n\
56
54
  ";
@@ -4,59 +4,61 @@
4
4
 
5
5
  #define NO_HIT (-czm_infinity)
6
6
  #define INF_HIT (czm_infinity * 0.5)
7
+ #define RAY_SHIFT (0.000003163)
8
+ #define RAY_SCALE (1.003163)
7
9
 
8
10
  struct Ray {
9
11
  vec3 pos;
10
12
  vec3 dir;
13
+ #if defined(SHAPE_BOX)
14
+ vec3 dInv;
15
+ #endif
16
+ };
17
+
18
+ struct RayShapeIntersection {
19
+ vec4 entry;
20
+ vec4 exit;
11
21
  };
12
22
 
13
23
  struct Intersections {
14
24
  // Don't access these member variables directly - call the functions instead.
15
25
 
16
- #if (INTERSECTION_COUNT > 1)
17
- // Store an array of intersections. Each intersection is composed of:
18
- // x for the T value
19
- // y for the shape type - which encodes positive vs negative and entering vs exiting
20
- // For example:
21
- // y = 0: positive shape entry
22
- // y = 1: positive shape exit
23
- // y = 2: negative shape entry
24
- // y = 3: negative shape exit
25
- vec2 intersections[INTERSECTION_COUNT * 2];
26
+ // Store an array of ray-surface intersections. Each intersection is composed of:
27
+ // .xyz for the surface normal at the intersection point
28
+ // .w for the T value
29
+ // The scale of the normal encodes the shape intersection type:
30
+ // length(intersection.xyz) = 1: positive shape entry
31
+ // length(intersection.xyz) = 2: positive shape exit
32
+ // length(intersection.xyz) = 3: negative shape entry
33
+ // length(intersection.xyz) = 4: negative shape exit
34
+ // INTERSECTION_COUNT is the number of ray-*shape* (volume) intersections,
35
+ // so we need twice as many to track ray-*surface* intersections
36
+ vec4 intersections[INTERSECTION_COUNT * 2];
26
37
 
38
+ #if (INTERSECTION_COUNT > 1)
27
39
  // Maintain state for future nextIntersection calls
28
40
  int index;
29
41
  int surroundCount;
30
42
  bool surroundIsPositive;
31
- #else
32
- // When there's only one positive shape intersection none of the extra stuff is needed.
33
- float intersections[2];
34
43
  #endif
35
44
  };
36
45
 
37
- // Using a define instead of a real function because WebGL1 cannot access array with non-constant index.
38
- #if (INTERSECTION_COUNT > 1)
39
- #define getIntersection(/*inout Intersections*/ ix, /*int*/ index) (ix).intersections[(index)].x
40
- #else
41
- #define getIntersection(/*inout Intersections*/ ix, /*int*/ index) (ix).intersections[(index)]
42
- #endif
43
-
44
- // Using a define instead of a real function because WebGL1 cannot access array with non-constant index.
45
- #define getIntersectionPair(/*inout Intersections*/ ix, /*int*/ index) vec2(getIntersection((ix), (index) * 2 + 0), getIntersection((ix), (index) * 2 + 1))
46
+ RayShapeIntersection getFirstIntersection(in Intersections ix)
47
+ {
48
+ return RayShapeIntersection(ix.intersections[0], ix.intersections[1]);
49
+ }
46
50
 
47
- // Using a define instead of a real function because WebGL1 cannot access array with non-constant index.
48
- #if (INTERSECTION_COUNT > 1)
49
- #define setIntersection(/*inout Intersections*/ ix, /*int*/ index, /*float*/ t, /*bool*/ positive, /*enter*/ enter) (ix).intersections[(index)] = vec2((t), float(!positive) * 2.0 + float(!enter))
50
- #else
51
- #define setIntersection(/*inout Intersections*/ ix, /*int*/ index, /*float*/ t, /*bool*/ positive, /*enter*/ enter) (ix).intersections[(index)] = (t)
52
- #endif
51
+ vec4 encodeIntersectionType(vec4 intersection, int index, bool entry)
52
+ {
53
+ float scale = float(index > 0) * 2.0 + float(!entry) + 1.0;
54
+ return vec4(intersection.xyz * scale, intersection.w);
55
+ }
53
56
 
54
- // Using a define instead of a real function because WebGL1 cannot access array with non-constant index.
55
- #if (INTERSECTION_COUNT > 1)
56
- #define setIntersectionPair(/*inout Intersections*/ ix, /*int*/ index, /*vec2*/ entryExit) (ix).intersections[(index) * 2 + 0] = vec2((entryExit).x, float((index) > 0) * 2.0 + 0.0); (ix).intersections[(index) * 2 + 1] = vec2((entryExit).y, float((index) > 0) * 2.0 + 1.0)
57
- #else
58
- #define setIntersectionPair(/*inout Intersections*/ ix, /*int*/ index, /*vec2*/ entryExit) (ix).intersections[(index) * 2 + 0] = (entryExit).x; (ix).intersections[(index) * 2 + 1] = (entryExit).y
59
- #endif
57
+ // Use defines instead of real functions because WebGL1 cannot access array with non-constant index.
58
+ #define setIntersection(/*inout Intersections*/ ix, /*int*/ index, /*float*/ t, /*bool*/ positive, /*bool*/ enter) (ix).intersections[(index)] = vec4(0.0, float(!positive) * 2.0 + float(!enter) + 1.0, 0.0, (t))
59
+ #define setIntersectionPair(/*inout Intersections*/ ix, /*int*/ index, /*vec2*/ entryExit) (ix).intersections[(index) * 2 + 0] = vec4(0.0, float((index) > 0) * 2.0 + 1.0, 0.0, (entryExit).x); (ix).intersections[(index) * 2 + 1] = vec4(0.0, float((index) > 0) * 2.0 + 2.0, 0.0, (entryExit).y)
60
+ #define setSurfaceIntersection(/*inout Intersections*/ ix, /*int*/ index, /*vec4*/ intersection) (ix).intersections[(index)] = intersection;
61
+ #define setShapeIntersection(/*inout Intersections*/ ix, /*int*/ index, /*RayShapeIntersection*/ intersection) (ix).intersections[(index) * 2 + 0] = encodeIntersectionType((intersection).entry, (index), true); (ix).intersections[(index) * 2 + 1] = encodeIntersectionType((intersection).exit, (index), false)
60
62
 
61
63
  #if (INTERSECTION_COUNT > 1)
62
64
  void initializeIntersections(inout Intersections ix) {
@@ -70,21 +72,13 @@ void initializeIntersections(inout Intersections ix) {
70
72
  // loop with non-constant condition, so it has to break early instead
71
73
  if (i >= n) { break; }
72
74
 
73
- vec2 intersect0 = ix.intersections[i + 0];
74
- vec2 intersect1 = ix.intersections[i + 1];
75
-
76
- float t0 = intersect0.x;
77
- float t1 = intersect1.x;
78
- float b0 = intersect0.y;
79
- float b1 = intersect1.y;
75
+ vec4 intersect0 = ix.intersections[i + 0];
76
+ vec4 intersect1 = ix.intersections[i + 1];
80
77
 
81
- float tmin = min(t0, t1);
82
- float tmax = max(t0, t1);
83
- float bmin = tmin == t0 ? b0 : b1;
84
- float bmax = tmin == t0 ? b1 : b0;
78
+ bool inOrder = intersect0.w <= intersect1.w;
85
79
 
86
- ix.intersections[i + 0] = vec2(tmin, bmin);
87
- ix.intersections[i + 1] = vec2(tmax, bmax);
80
+ ix.intersections[i + 0] = inOrder ? intersect0 : intersect1;
81
+ ix.intersections[i + 1] = inOrder ? intersect1 : intersect0;
88
82
  }
89
83
  }
90
84
 
@@ -96,13 +90,14 @@ void initializeIntersections(inout Intersections ix) {
96
90
  #endif
97
91
 
98
92
  #if (INTERSECTION_COUNT > 1)
99
- vec2 nextIntersection(inout Intersections ix) {
100
- vec2 entryExitT = vec2(NO_HIT);
93
+ RayShapeIntersection nextIntersection(inout Intersections ix) {
94
+ vec4 surfaceIntersection = vec4(0.0, 0.0, 0.0, NO_HIT);
95
+ RayShapeIntersection shapeIntersection = RayShapeIntersection(surfaceIntersection, surfaceIntersection);
101
96
 
102
97
  const int passCount = INTERSECTION_COUNT * 2;
103
98
 
104
99
  if (ix.index == passCount) {
105
- return entryExitT;
100
+ return shapeIntersection;
106
101
  }
107
102
 
108
103
  for (int i = 0; i < passCount; ++i) {
@@ -114,25 +109,24 @@ vec2 nextIntersection(inout Intersections ix) {
114
109
 
115
110
  ix.index = i + 1;
116
111
 
117
- vec2 intersect = ix.intersections[i];
118
- float t = intersect.x;
119
- bool currShapeIsPositive = intersect.y < 2.0;
120
- bool enter = mod(intersect.y, 2.0) == 0.0;
112
+ surfaceIntersection = ix.intersections[i];
113
+ int intersectionType = int(length(surfaceIntersection.xyz) - 0.5);
114
+ bool currShapeIsPositive = intersectionType < 2;
115
+ bool enter = intMod(intersectionType, 2) == 0;
121
116
 
122
117
  ix.surroundCount += enter ? +1 : -1;
123
118
  ix.surroundIsPositive = currShapeIsPositive ? enter : ix.surroundIsPositive;
124
119
 
125
120
  // entering positive or exiting negative
126
121
  if (ix.surroundCount == 1 && ix.surroundIsPositive && enter == currShapeIsPositive) {
127
- entryExitT.x = t;
122
+ shapeIntersection.entry = surfaceIntersection;
128
123
  }
129
124
 
130
125
  // exiting positive or entering negative after being inside positive
131
- // TODO: Can this be simplified?
132
126
  bool exitPositive = !enter && currShapeIsPositive && ix.surroundCount == 0;
133
127
  bool enterNegativeFromPositive = enter && !currShapeIsPositive && ix.surroundCount == 2 && ix.surroundIsPositive;
134
128
  if (exitPositive || enterNegativeFromPositive) {
135
- entryExitT.y = t;
129
+ shapeIntersection.exit = surfaceIntersection;
136
130
 
137
131
  // entry and exit have been found, so the loop can stop
138
132
  if (exitPositive) {
@@ -143,9 +137,8 @@ vec2 nextIntersection(inout Intersections ix) {
143
137
  }
144
138
  }
145
139
 
146
- return entryExitT;
140
+ return shapeIntersection;
147
141
  }
148
142
  #endif
149
143
 
150
144
  // NOTE: initializeIntersections, nextIntersection aren't even declared unless INTERSECTION_COUNT > 1
151
- // export { NO_HIT, INF_HIT, Ray, Intersections, getIntersectionPair, setIntersectionPair, initializeIntersections, nextIntersection };
@@ -5,59 +5,61 @@ export default "/* Intersection defines\n\
5
5
  \n\
6
6
  #define NO_HIT (-czm_infinity)\n\
7
7
  #define INF_HIT (czm_infinity * 0.5)\n\
8
+ #define RAY_SHIFT (0.000003163)\n\
9
+ #define RAY_SCALE (1.003163)\n\
8
10
  \n\
9
11
  struct Ray {\n\
10
12
  vec3 pos;\n\
11
13
  vec3 dir;\n\
14
+ #if defined(SHAPE_BOX)\n\
15
+ vec3 dInv;\n\
16
+ #endif\n\
17
+ };\n\
18
+ \n\
19
+ struct RayShapeIntersection {\n\
20
+ vec4 entry;\n\
21
+ vec4 exit;\n\
12
22
  };\n\
13
23
  \n\
14
24
  struct Intersections {\n\
15
25
  // Don't access these member variables directly - call the functions instead.\n\
16
26
  \n\
17
- #if (INTERSECTION_COUNT > 1)\n\
18
- // Store an array of intersections. Each intersection is composed of:\n\
19
- // x for the T value\n\
20
- // y for the shape type - which encodes positive vs negative and entering vs exiting\n\
21
- // For example:\n\
22
- // y = 0: positive shape entry\n\
23
- // y = 1: positive shape exit\n\
24
- // y = 2: negative shape entry\n\
25
- // y = 3: negative shape exit\n\
26
- vec2 intersections[INTERSECTION_COUNT * 2];\n\
27
+ // Store an array of ray-surface intersections. Each intersection is composed of:\n\
28
+ // .xyz for the surface normal at the intersection point\n\
29
+ // .w for the T value\n\
30
+ // The scale of the normal encodes the shape intersection type:\n\
31
+ // length(intersection.xyz) = 1: positive shape entry\n\
32
+ // length(intersection.xyz) = 2: positive shape exit\n\
33
+ // length(intersection.xyz) = 3: negative shape entry\n\
34
+ // length(intersection.xyz) = 4: negative shape exit\n\
35
+ // INTERSECTION_COUNT is the number of ray-*shape* (volume) intersections,\n\
36
+ // so we need twice as many to track ray-*surface* intersections\n\
37
+ vec4 intersections[INTERSECTION_COUNT * 2];\n\
27
38
  \n\
39
+ #if (INTERSECTION_COUNT > 1)\n\
28
40
  // Maintain state for future nextIntersection calls\n\
29
41
  int index;\n\
30
42
  int surroundCount;\n\
31
43
  bool surroundIsPositive;\n\
32
- #else\n\
33
- // When there's only one positive shape intersection none of the extra stuff is needed.\n\
34
- float intersections[2];\n\
35
44
  #endif\n\
36
45
  };\n\
37
46
  \n\
38
- // Using a define instead of a real function because WebGL1 cannot access array with non-constant index.\n\
39
- #if (INTERSECTION_COUNT > 1)\n\
40
- #define getIntersection(/*inout Intersections*/ ix, /*int*/ index) (ix).intersections[(index)].x\n\
41
- #else\n\
42
- #define getIntersection(/*inout Intersections*/ ix, /*int*/ index) (ix).intersections[(index)]\n\
43
- #endif\n\
44
- \n\
45
- // Using a define instead of a real function because WebGL1 cannot access array with non-constant index.\n\
46
- #define getIntersectionPair(/*inout Intersections*/ ix, /*int*/ index) vec2(getIntersection((ix), (index) * 2 + 0), getIntersection((ix), (index) * 2 + 1))\n\
47
+ RayShapeIntersection getFirstIntersection(in Intersections ix) \n\
48
+ {\n\
49
+ return RayShapeIntersection(ix.intersections[0], ix.intersections[1]);\n\
50
+ }\n\
47
51
  \n\
48
- // Using a define instead of a real function because WebGL1 cannot access array with non-constant index.\n\
49
- #if (INTERSECTION_COUNT > 1)\n\
50
- #define setIntersection(/*inout Intersections*/ ix, /*int*/ index, /*float*/ t, /*bool*/ positive, /*enter*/ enter) (ix).intersections[(index)] = vec2((t), float(!positive) * 2.0 + float(!enter))\n\
51
- #else\n\
52
- #define setIntersection(/*inout Intersections*/ ix, /*int*/ index, /*float*/ t, /*bool*/ positive, /*enter*/ enter) (ix).intersections[(index)] = (t)\n\
53
- #endif\n\
52
+ vec4 encodeIntersectionType(vec4 intersection, int index, bool entry)\n\
53
+ {\n\
54
+ float scale = float(index > 0) * 2.0 + float(!entry) + 1.0;\n\
55
+ return vec4(intersection.xyz * scale, intersection.w);\n\
56
+ }\n\
54
57
  \n\
55
- // Using a define instead of a real function because WebGL1 cannot access array with non-constant index.\n\
56
- #if (INTERSECTION_COUNT > 1)\n\
57
- #define setIntersectionPair(/*inout Intersections*/ ix, /*int*/ index, /*vec2*/ entryExit) (ix).intersections[(index) * 2 + 0] = vec2((entryExit).x, float((index) > 0) * 2.0 + 0.0); (ix).intersections[(index) * 2 + 1] = vec2((entryExit).y, float((index) > 0) * 2.0 + 1.0)\n\
58
- #else\n\
59
- #define setIntersectionPair(/*inout Intersections*/ ix, /*int*/ index, /*vec2*/ entryExit) (ix).intersections[(index) * 2 + 0] = (entryExit).x; (ix).intersections[(index) * 2 + 1] = (entryExit).y\n\
60
- #endif\n\
58
+ // Use defines instead of real functions because WebGL1 cannot access array with non-constant index.\n\
59
+ #define setIntersection(/*inout Intersections*/ ix, /*int*/ index, /*float*/ t, /*bool*/ positive, /*bool*/ enter) (ix).intersections[(index)] = vec4(0.0, float(!positive) * 2.0 + float(!enter) + 1.0, 0.0, (t))\n\
60
+ #define setIntersectionPair(/*inout Intersections*/ ix, /*int*/ index, /*vec2*/ entryExit) (ix).intersections[(index) * 2 + 0] = vec4(0.0, float((index) > 0) * 2.0 + 1.0, 0.0, (entryExit).x); (ix).intersections[(index) * 2 + 1] = vec4(0.0, float((index) > 0) * 2.0 + 2.0, 0.0, (entryExit).y)\n\
61
+ #define setSurfaceIntersection(/*inout Intersections*/ ix, /*int*/ index, /*vec4*/ intersection) (ix).intersections[(index)] = intersection;\n\
62
+ #define setShapeIntersection(/*inout Intersections*/ ix, /*int*/ index, /*RayShapeIntersection*/ intersection) (ix).intersections[(index) * 2 + 0] = encodeIntersectionType((intersection).entry, (index), true); (ix).intersections[(index) * 2 + 1] = encodeIntersectionType((intersection).exit, (index), false)\n\
61
63
  \n\
62
64
  #if (INTERSECTION_COUNT > 1)\n\
63
65
  void initializeIntersections(inout Intersections ix) {\n\
@@ -71,21 +73,13 @@ void initializeIntersections(inout Intersections ix) {\n\
71
73
  // loop with non-constant condition, so it has to break early instead\n\
72
74
  if (i >= n) { break; }\n\
73
75
  \n\
74
- vec2 intersect0 = ix.intersections[i + 0];\n\
75
- vec2 intersect1 = ix.intersections[i + 1];\n\
76
- \n\
77
- float t0 = intersect0.x;\n\
78
- float t1 = intersect1.x;\n\
79
- float b0 = intersect0.y;\n\
80
- float b1 = intersect1.y;\n\
76
+ vec4 intersect0 = ix.intersections[i + 0];\n\
77
+ vec4 intersect1 = ix.intersections[i + 1];\n\
81
78
  \n\
82
- float tmin = min(t0, t1);\n\
83
- float tmax = max(t0, t1);\n\
84
- float bmin = tmin == t0 ? b0 : b1;\n\
85
- float bmax = tmin == t0 ? b1 : b0;\n\
79
+ bool inOrder = intersect0.w <= intersect1.w;\n\
86
80
  \n\
87
- ix.intersections[i + 0] = vec2(tmin, bmin);\n\
88
- ix.intersections[i + 1] = vec2(tmax, bmax);\n\
81
+ ix.intersections[i + 0] = inOrder ? intersect0 : intersect1;\n\
82
+ ix.intersections[i + 1] = inOrder ? intersect1 : intersect0;\n\
89
83
  }\n\
90
84
  }\n\
91
85
  \n\
@@ -97,13 +91,14 @@ void initializeIntersections(inout Intersections ix) {\n\
97
91
  #endif\n\
98
92
  \n\
99
93
  #if (INTERSECTION_COUNT > 1)\n\
100
- vec2 nextIntersection(inout Intersections ix) {\n\
101
- vec2 entryExitT = vec2(NO_HIT);\n\
94
+ RayShapeIntersection nextIntersection(inout Intersections ix) {\n\
95
+ vec4 surfaceIntersection = vec4(0.0, 0.0, 0.0, NO_HIT);\n\
96
+ RayShapeIntersection shapeIntersection = RayShapeIntersection(surfaceIntersection, surfaceIntersection);\n\
102
97
  \n\
103
98
  const int passCount = INTERSECTION_COUNT * 2;\n\
104
99
  \n\
105
100
  if (ix.index == passCount) {\n\
106
- return entryExitT;\n\
101
+ return shapeIntersection;\n\
107
102
  }\n\
108
103
  \n\
109
104
  for (int i = 0; i < passCount; ++i) {\n\
@@ -115,25 +110,24 @@ vec2 nextIntersection(inout Intersections ix) {\n\
115
110
  \n\
116
111
  ix.index = i + 1;\n\
117
112
  \n\
118
- vec2 intersect = ix.intersections[i];\n\
119
- float t = intersect.x;\n\
120
- bool currShapeIsPositive = intersect.y < 2.0;\n\
121
- bool enter = mod(intersect.y, 2.0) == 0.0;\n\
113
+ surfaceIntersection = ix.intersections[i];\n\
114
+ int intersectionType = int(length(surfaceIntersection.xyz) - 0.5);\n\
115
+ bool currShapeIsPositive = intersectionType < 2;\n\
116
+ bool enter = intMod(intersectionType, 2) == 0;\n\
122
117
  \n\
123
118
  ix.surroundCount += enter ? +1 : -1;\n\
124
119
  ix.surroundIsPositive = currShapeIsPositive ? enter : ix.surroundIsPositive;\n\
125
120
  \n\
126
121
  // entering positive or exiting negative\n\
127
122
  if (ix.surroundCount == 1 && ix.surroundIsPositive && enter == currShapeIsPositive) {\n\
128
- entryExitT.x = t;\n\
123
+ shapeIntersection.entry = surfaceIntersection;\n\
129
124
  }\n\
130
125
  \n\
131
126
  // exiting positive or entering negative after being inside positive\n\
132
- // TODO: Can this be simplified?\n\
133
127
  bool exitPositive = !enter && currShapeIsPositive && ix.surroundCount == 0;\n\
134
128
  bool enterNegativeFromPositive = enter && !currShapeIsPositive && ix.surroundCount == 2 && ix.surroundIsPositive;\n\
135
129
  if (exitPositive || enterNegativeFromPositive) {\n\
136
- entryExitT.y = t;\n\
130
+ shapeIntersection.exit = surfaceIntersection;\n\
137
131
  \n\
138
132
  // entry and exit have been found, so the loop can stop\n\
139
133
  if (exitPositive) {\n\
@@ -144,10 +138,9 @@ vec2 nextIntersection(inout Intersections ix) {\n\
144
138
  }\n\
145
139
  }\n\
146
140
  \n\
147
- return entryExitT;\n\
141
+ return shapeIntersection;\n\
148
142
  }\n\
149
143
  #endif\n\
150
144
  \n\
151
145
  // NOTE: initializeIntersections, nextIntersection aren't even declared unless INTERSECTION_COUNT > 1\n\
152
- // export { NO_HIT, INF_HIT, Ray, Intersections, getIntersectionPair, setIntersectionPair, initializeIntersections, nextIntersection };\n\
153
146
  ";
@@ -83,7 +83,7 @@ Properties getPropertiesFromMegatexture(in SampleData sampleData) {
83
83
 
84
84
  #if defined(NEAREST_SAMPLING)
85
85
  // Round to the center of the nearest voxel
86
- voxelCoord = floor(voxelCoord + vec3(0.5));
86
+ voxelCoord = floor(voxelCoord) + vec3(0.5);
87
87
  #endif
88
88
 
89
89
  // Tile location
@@ -84,7 +84,7 @@ Properties getPropertiesFromMegatexture(in SampleData sampleData) {\n\
84
84
  \n\
85
85
  #if defined(NEAREST_SAMPLING)\n\
86
86
  // Round to the center of the nearest voxel\n\
87
- voxelCoord = floor(voxelCoord + vec3(0.5));\n\
87
+ voxelCoord = floor(voxelCoord) + vec3(0.5);\n\
88
88
  #endif\n\
89
89
  \n\
90
90
  // Tile location\n\