@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
@@ -1,19 +1,19 @@
1
- attribute vec3 startEllipsoidNormal;
2
- attribute vec3 endEllipsoidNormal;
3
- attribute vec4 startPositionAndHeight;
4
- attribute vec4 endPositionAndHeight;
5
- attribute vec4 startFaceNormalAndVertexCorner;
6
- attribute vec4 endFaceNormalAndHalfWidth;
7
- attribute float a_batchId;
1
+ in vec3 startEllipsoidNormal;
2
+ in vec3 endEllipsoidNormal;
3
+ in vec4 startPositionAndHeight;
4
+ in vec4 endPositionAndHeight;
5
+ in vec4 startFaceNormalAndVertexCorner;
6
+ in vec4 endFaceNormalAndHalfWidth;
7
+ in float a_batchId;
8
8
 
9
9
  uniform mat4 u_modifiedModelView;
10
10
  uniform vec2 u_minimumMaximumVectorHeights;
11
11
 
12
- varying vec4 v_startPlaneEC;
13
- varying vec4 v_endPlaneEC;
14
- varying vec4 v_rightPlaneEC;
15
- varying float v_halfWidth;
16
- varying vec3 v_volumeUpEC;
12
+ out vec4 v_startPlaneEC;
13
+ out vec4 v_endPlaneEC;
14
+ out vec4 v_rightPlaneEC;
15
+ out float v_halfWidth;
16
+ out vec3 v_volumeUpEC;
17
17
 
18
18
  void main()
19
19
  {
@@ -1,20 +1,20 @@
1
1
  //This file is automatically rebuilt by the Cesium build process.
2
- export default "attribute vec3 startEllipsoidNormal;\n\
3
- attribute vec3 endEllipsoidNormal;\n\
4
- attribute vec4 startPositionAndHeight;\n\
5
- attribute vec4 endPositionAndHeight;\n\
6
- attribute vec4 startFaceNormalAndVertexCorner;\n\
7
- attribute vec4 endFaceNormalAndHalfWidth;\n\
8
- attribute float a_batchId;\n\
2
+ export default "in vec3 startEllipsoidNormal;\n\
3
+ in vec3 endEllipsoidNormal;\n\
4
+ in vec4 startPositionAndHeight;\n\
5
+ in vec4 endPositionAndHeight;\n\
6
+ in vec4 startFaceNormalAndVertexCorner;\n\
7
+ in vec4 endFaceNormalAndHalfWidth;\n\
8
+ in float a_batchId;\n\
9
9
  \n\
10
10
  uniform mat4 u_modifiedModelView;\n\
11
11
  uniform vec2 u_minimumMaximumVectorHeights;\n\
12
12
  \n\
13
- varying vec4 v_startPlaneEC;\n\
14
- varying vec4 v_endPlaneEC;\n\
15
- varying vec4 v_rightPlaneEC;\n\
16
- varying float v_halfWidth;\n\
17
- varying vec3 v_volumeUpEC;\n\
13
+ out vec4 v_startPlaneEC;\n\
14
+ out vec4 v_endPlaneEC;\n\
15
+ out vec4 v_rightPlaneEC;\n\
16
+ out float v_halfWidth;\n\
17
+ out vec3 v_volumeUpEC;\n\
18
18
  \n\
19
19
  void main()\n\
20
20
  {\n\
@@ -1,8 +1,8 @@
1
- attribute vec4 currentPosition;
2
- attribute vec4 previousPosition;
3
- attribute vec4 nextPosition;
4
- attribute vec2 expandAndWidth;
5
- attribute float a_batchId;
1
+ in vec4 currentPosition;
2
+ in vec4 previousPosition;
3
+ in vec4 nextPosition;
4
+ in vec2 expandAndWidth;
5
+ in float a_batchId;
6
6
 
7
7
  uniform mat4 u_modifiedModelView;
8
8
 
@@ -1,9 +1,9 @@
1
1
  //This file is automatically rebuilt by the Cesium build process.
2
- export default "attribute vec4 currentPosition;\n\
3
- attribute vec4 previousPosition;\n\
4
- attribute vec4 nextPosition;\n\
5
- attribute vec2 expandAndWidth;\n\
6
- attribute float a_batchId;\n\
2
+ export default "in vec4 currentPosition;\n\
3
+ in vec4 previousPosition;\n\
4
+ in vec4 nextPosition;\n\
5
+ in vec2 expandAndWidth;\n\
6
+ in float a_batchId;\n\
7
7
  \n\
8
8
  uniform mat4 u_modifiedModelView;\n\
9
9
  \n\
@@ -1,5 +1,5 @@
1
- attribute vec3 position;
2
- attribute float a_batchId;
1
+ in vec3 position;
2
+ in float a_batchId;
3
3
 
4
4
  uniform mat4 u_modifiedModelViewProjection;
5
5
 
@@ -1,6 +1,6 @@
1
1
  //This file is automatically rebuilt by the Cesium build process.
2
- export default "attribute vec3 position;\n\
3
- attribute float a_batchId;\n\
2
+ export default "in vec3 position;\n\
3
+ in float a_batchId;\n\
4
4
  \n\
5
5
  uniform mat4 u_modifiedModelViewProjection;\n\
6
6
  \n\
@@ -1,5 +1,5 @@
1
1
 
2
- varying vec2 v_textureCoordinates;
2
+ in vec2 v_textureCoordinates;
3
3
 
4
4
  void main()
5
5
  {
@@ -12,5 +12,5 @@ void main()
12
12
 
13
13
  czm_material material = czm_getMaterial(materialInput);
14
14
 
15
- gl_FragColor = vec4(material.diffuse + material.emission, material.alpha);
15
+ out_FragColor = vec4(material.diffuse + material.emission, material.alpha);
16
16
  }
@@ -1,6 +1,6 @@
1
1
  //This file is automatically rebuilt by the Cesium build process.
2
2
  export default "\n\
3
- varying vec2 v_textureCoordinates;\n\
3
+ in vec2 v_textureCoordinates;\n\
4
4
  \n\
5
5
  void main()\n\
6
6
  {\n\
@@ -13,6 +13,6 @@ void main()\n\
13
13
  \n\
14
14
  czm_material material = czm_getMaterial(materialInput);\n\
15
15
  \n\
16
- gl_FragColor = vec4(material.diffuse + material.emission, material.alpha);\n\
16
+ out_FragColor = vec4(material.diffuse + material.emission, material.alpha);\n\
17
17
  }\n\
18
18
  ";
@@ -1,7 +1,7 @@
1
- attribute vec4 position;
2
- attribute vec2 textureCoordinates;
1
+ in vec4 position;
2
+ in vec2 textureCoordinates;
3
3
 
4
- varying vec2 v_textureCoordinates;
4
+ out vec2 v_textureCoordinates;
5
5
 
6
6
  void main()
7
7
  {
@@ -1,8 +1,8 @@
1
1
  //This file is automatically rebuilt by the Cesium build process.
2
- export default "attribute vec4 position;\n\
3
- attribute vec2 textureCoordinates;\n\
2
+ export default "in vec4 position;\n\
3
+ in vec2 textureCoordinates;\n\
4
4
  \n\
5
- varying vec2 v_textureCoordinates;\n\
5
+ out vec2 v_textureCoordinates;\n\
6
6
  \n\
7
7
  void main() \n\
8
8
  {\n\
@@ -1,79 +1,73 @@
1
1
  // See IntersectionUtils.glsl for the definitions of Ray and NO_HIT
2
+ // See convertUvToBox.glsl for the definition of convertShapeUvToUvSpace
2
3
 
3
4
  /* Box defines (set in Scene/VoxelBoxShape.js)
4
5
  #define BOX_INTERSECTION_INDEX ### // always 0
5
- #define BOX_HAS_RENDER_BOUNDS
6
- #define BOX_IS_2D
7
6
  */
8
7
 
9
- #if defined(BOX_HAS_RENDER_BOUNDS)
10
- #if defined(BOX_IS_2D)
11
- // This matrix bakes in an axis conversion so that the math works for XY plane.
12
- uniform mat4 u_boxUvToRenderBoundsTransform;
13
- #else
14
- // Similar to u_boxTransformUvToBounds but fewer instructions needed.
15
- uniform vec3 u_boxUvToRenderBoundsScale;
16
- uniform vec3 u_boxUvToRenderBoundsTranslate;
17
- #endif
18
- #endif
8
+ uniform vec3 u_renderMinBounds;
9
+ uniform vec3 u_renderMaxBounds;
19
10
 
20
- vec2 intersectUnitCube(Ray ray) // Unit cube from [-1, +1]
11
+ struct Box {
12
+ vec3 p0;
13
+ vec3 p1;
14
+ };
15
+
16
+ Box constructVoxelBox(in ivec4 octreeCoords, in vec3 tileUv)
21
17
  {
22
- vec3 o = ray.pos;
23
- vec3 d = ray.dir;
18
+ // Find the min/max cornerpoints of the voxel in tile coordinates
19
+ vec3 tileOrigin = vec3(octreeCoords.xyz);
20
+ vec3 numSamples = vec3(u_dimensions);
21
+ vec3 voxelSize = 1.0 / numSamples;
22
+ vec3 coordP0 = floor(tileUv * numSamples) * voxelSize + tileOrigin;
23
+ vec3 coordP1 = coordP0 + voxelSize;
24
24
 
25
- vec3 dInv = 1.0 / d;
26
- vec3 od = -o * dInv;
27
- vec3 t0 = od - dInv;
28
- vec3 t1 = od + dInv;
29
- vec3 m0 = min(t0, t1);
30
- vec3 m1 = max(t0, t1);
31
- float tMin = max(max(m0.x, m0.y), m0.z);
32
- float tMax = min(min(m1.x, m1.y), m1.z);
25
+ // Transform to the UV coordinates of the scaled tileset
26
+ float tileSize = 1.0 / pow(2.0, float(octreeCoords.w));
27
+ vec3 p0 = convertShapeUvToUvSpace(coordP0 * tileSize);
28
+ vec3 p1 = convertShapeUvToUvSpace(coordP1 * tileSize);
33
29
 
34
- if (tMin >= tMax) {
35
- return vec2(NO_HIT);
36
- }
30
+ return Box(p0, p1);
31
+ }
37
32
 
38
- return vec2(tMin, tMax);
33
+ vec3 getBoxNormal(in Box box, in Ray ray, in float t)
34
+ {
35
+ vec3 hitPoint = ray.pos + t * ray.dir;
36
+ vec3 lower = step(hitPoint, box.p0);
37
+ vec3 upper = step(box.p1, hitPoint);
38
+ return normalize(upper - lower);
39
39
  }
40
40
 
41
- vec2 intersectUnitSquare(Ray ray) // Unit square from [-1, +1]
41
+ // Find the distances along a ray at which the ray intersects an axis-aligned box
42
+ // See https://tavianator.com/2011/ray_box.html
43
+ RayShapeIntersection intersectBox(in Ray ray, in Box box)
42
44
  {
43
- vec3 o = ray.pos;
44
- vec3 d = ray.dir;
45
+ // Consider the box as the intersection of the space between 3 pairs of parallel planes
46
+ // Compute the distance along the ray to each plane
47
+ vec3 t0 = (box.p0 - ray.pos) * ray.dInv;
48
+ vec3 t1 = (box.p1 - ray.pos) * ray.dInv;
45
49
 
46
- float t = -o.z / d.z;
47
- vec2 planePos = o.xy + d.xy * t;
48
- if (any(greaterThan(abs(planePos), vec2(1.0)))) {
49
- return vec2(NO_HIT);
50
+ // Identify candidate entries/exits based on distance from ray.pos
51
+ vec3 entries = min(t0, t1);
52
+ vec3 exits = max(t0, t1);
53
+
54
+ // The actual box intersection points are the furthest entry and the closest exit
55
+ float entryT = max(max(entries.x, entries.y), entries.z);
56
+ float exitT = min(min(exits.x, exits.y), exits.z);
57
+
58
+ vec3 entryNormal = getBoxNormal(box, ray, entryT - RAY_SHIFT);
59
+ vec3 exitNormal = getBoxNormal(box, ray, exitT + RAY_SHIFT);
60
+
61
+ if (entryT > exitT) {
62
+ entryT = NO_HIT;
63
+ exitT = NO_HIT;
50
64
  }
51
65
 
52
- return vec2(t, t);
66
+ return RayShapeIntersection(vec4(entryNormal, entryT), vec4(exitNormal, exitT));
53
67
  }
54
68
 
55
- void intersectShape(Ray ray, inout Intersections ix)
69
+ void intersectShape(in Ray ray, inout Intersections ix)
56
70
  {
57
- #if defined(BOX_HAS_RENDER_BOUNDS)
58
- #if defined(BOX_IS_2D)
59
- // Transform the ray into unit square space on Z plane
60
- // This matrix bakes in an axis conversion so that the math works for XY plane.
61
- ray.pos = vec3(u_boxUvToRenderBoundsTransform * vec4(ray.pos, 1.0));
62
- ray.dir = vec3(u_boxUvToRenderBoundsTransform * vec4(ray.dir, 0.0));
63
- vec2 entryExit = intersectUnitSquare(ray);
64
- #else
65
- // Transform the ray into unit cube space
66
- ray.pos = ray.pos * u_boxUvToRenderBoundsScale + u_boxUvToRenderBoundsTranslate;
67
- ray.dir *= u_boxUvToRenderBoundsScale;
68
- vec2 entryExit = intersectUnitCube(ray);
69
- #endif
70
- #else
71
- // Position is converted from [0,1] to [-1,+1] because shape intersections assume unit space is [-1,+1].
72
- // Direction is scaled as well to be in sync with position.
73
- ray.pos = ray.pos * 2.0 - 1.0;
74
- ray.dir = ray.dir * 2.0;
75
- vec2 entryExit = intersectUnitCube(ray);
76
- #endif
77
-
78
- setIntersectionPair(ix, BOX_INTERSECTION_INDEX, entryExit);
71
+ RayShapeIntersection intersection = intersectBox(ray, Box(u_renderMinBounds, u_renderMaxBounds));
72
+ setShapeIntersection(ix, BOX_INTERSECTION_INDEX, intersection);
79
73
  }
@@ -1,81 +1,75 @@
1
1
  //This file is automatically rebuilt by the Cesium build process.
2
2
  export default "// See IntersectionUtils.glsl for the definitions of Ray and NO_HIT\n\
3
+ // See convertUvToBox.glsl for the definition of convertShapeUvToUvSpace\n\
3
4
  \n\
4
5
  /* Box defines (set in Scene/VoxelBoxShape.js)\n\
5
6
  #define BOX_INTERSECTION_INDEX ### // always 0\n\
6
- #define BOX_HAS_RENDER_BOUNDS\n\
7
- #define BOX_IS_2D\n\
8
7
  */\n\
9
8
  \n\
10
- #if defined(BOX_HAS_RENDER_BOUNDS)\n\
11
- #if defined(BOX_IS_2D)\n\
12
- // This matrix bakes in an axis conversion so that the math works for XY plane.\n\
13
- uniform mat4 u_boxUvToRenderBoundsTransform;\n\
14
- #else\n\
15
- // Similar to u_boxTransformUvToBounds but fewer instructions needed.\n\
16
- uniform vec3 u_boxUvToRenderBoundsScale;\n\
17
- uniform vec3 u_boxUvToRenderBoundsTranslate;\n\
18
- #endif\n\
19
- #endif\n\
9
+ uniform vec3 u_renderMinBounds;\n\
10
+ uniform vec3 u_renderMaxBounds;\n\
20
11
  \n\
21
- vec2 intersectUnitCube(Ray ray) // Unit cube from [-1, +1]\n\
12
+ struct Box {\n\
13
+ vec3 p0;\n\
14
+ vec3 p1;\n\
15
+ };\n\
16
+ \n\
17
+ Box constructVoxelBox(in ivec4 octreeCoords, in vec3 tileUv)\n\
22
18
  {\n\
23
- vec3 o = ray.pos;\n\
24
- vec3 d = ray.dir;\n\
19
+ // Find the min/max cornerpoints of the voxel in tile coordinates\n\
20
+ vec3 tileOrigin = vec3(octreeCoords.xyz);\n\
21
+ vec3 numSamples = vec3(u_dimensions);\n\
22
+ vec3 voxelSize = 1.0 / numSamples;\n\
23
+ vec3 coordP0 = floor(tileUv * numSamples) * voxelSize + tileOrigin;\n\
24
+ vec3 coordP1 = coordP0 + voxelSize;\n\
25
25
  \n\
26
- vec3 dInv = 1.0 / d;\n\
27
- vec3 od = -o * dInv;\n\
28
- vec3 t0 = od - dInv;\n\
29
- vec3 t1 = od + dInv;\n\
30
- vec3 m0 = min(t0, t1);\n\
31
- vec3 m1 = max(t0, t1);\n\
32
- float tMin = max(max(m0.x, m0.y), m0.z);\n\
33
- float tMax = min(min(m1.x, m1.y), m1.z);\n\
26
+ // Transform to the UV coordinates of the scaled tileset\n\
27
+ float tileSize = 1.0 / pow(2.0, float(octreeCoords.w));\n\
28
+ vec3 p0 = convertShapeUvToUvSpace(coordP0 * tileSize);\n\
29
+ vec3 p1 = convertShapeUvToUvSpace(coordP1 * tileSize);\n\
34
30
  \n\
35
- if (tMin >= tMax) {\n\
36
- return vec2(NO_HIT);\n\
37
- }\n\
31
+ return Box(p0, p1);\n\
32
+ }\n\
38
33
  \n\
39
- return vec2(tMin, tMax);\n\
34
+ vec3 getBoxNormal(in Box box, in Ray ray, in float t)\n\
35
+ {\n\
36
+ vec3 hitPoint = ray.pos + t * ray.dir;\n\
37
+ vec3 lower = step(hitPoint, box.p0);\n\
38
+ vec3 upper = step(box.p1, hitPoint);\n\
39
+ return normalize(upper - lower);\n\
40
40
  }\n\
41
41
  \n\
42
- vec2 intersectUnitSquare(Ray ray) // Unit square from [-1, +1]\n\
42
+ // Find the distances along a ray at which the ray intersects an axis-aligned box\n\
43
+ // See https://tavianator.com/2011/ray_box.html\n\
44
+ RayShapeIntersection intersectBox(in Ray ray, in Box box)\n\
43
45
  {\n\
44
- vec3 o = ray.pos;\n\
45
- vec3 d = ray.dir;\n\
46
+ // Consider the box as the intersection of the space between 3 pairs of parallel planes\n\
47
+ // Compute the distance along the ray to each plane\n\
48
+ vec3 t0 = (box.p0 - ray.pos) * ray.dInv;\n\
49
+ vec3 t1 = (box.p1 - ray.pos) * ray.dInv;\n\
46
50
  \n\
47
- float t = -o.z / d.z;\n\
48
- vec2 planePos = o.xy + d.xy * t;\n\
49
- if (any(greaterThan(abs(planePos), vec2(1.0)))) {\n\
50
- return vec2(NO_HIT);\n\
51
+ // Identify candidate entries/exits based on distance from ray.pos\n\
52
+ vec3 entries = min(t0, t1);\n\
53
+ vec3 exits = max(t0, t1);\n\
54
+ \n\
55
+ // The actual box intersection points are the furthest entry and the closest exit\n\
56
+ float entryT = max(max(entries.x, entries.y), entries.z);\n\
57
+ float exitT = min(min(exits.x, exits.y), exits.z);\n\
58
+ \n\
59
+ vec3 entryNormal = getBoxNormal(box, ray, entryT - RAY_SHIFT);\n\
60
+ vec3 exitNormal = getBoxNormal(box, ray, exitT + RAY_SHIFT);\n\
61
+ \n\
62
+ if (entryT > exitT) {\n\
63
+ entryT = NO_HIT;\n\
64
+ exitT = NO_HIT;\n\
51
65
  }\n\
52
66
  \n\
53
- return vec2(t, t);\n\
67
+ return RayShapeIntersection(vec4(entryNormal, entryT), vec4(exitNormal, exitT));\n\
54
68
  }\n\
55
69
  \n\
56
- void intersectShape(Ray ray, inout Intersections ix)\n\
70
+ void intersectShape(in Ray ray, inout Intersections ix)\n\
57
71
  {\n\
58
- #if defined(BOX_HAS_RENDER_BOUNDS)\n\
59
- #if defined(BOX_IS_2D)\n\
60
- // Transform the ray into unit square space on Z plane\n\
61
- // This matrix bakes in an axis conversion so that the math works for XY plane.\n\
62
- ray.pos = vec3(u_boxUvToRenderBoundsTransform * vec4(ray.pos, 1.0));\n\
63
- ray.dir = vec3(u_boxUvToRenderBoundsTransform * vec4(ray.dir, 0.0));\n\
64
- vec2 entryExit = intersectUnitSquare(ray);\n\
65
- #else\n\
66
- // Transform the ray into unit cube space\n\
67
- ray.pos = ray.pos * u_boxUvToRenderBoundsScale + u_boxUvToRenderBoundsTranslate;\n\
68
- ray.dir *= u_boxUvToRenderBoundsScale;\n\
69
- vec2 entryExit = intersectUnitCube(ray);\n\
70
- #endif\n\
71
- #else\n\
72
- // Position is converted from [0,1] to [-1,+1] because shape intersections assume unit space is [-1,+1].\n\
73
- // Direction is scaled as well to be in sync with position.\n\
74
- ray.pos = ray.pos * 2.0 - 1.0;\n\
75
- ray.dir = ray.dir * 2.0;\n\
76
- vec2 entryExit = intersectUnitCube(ray);\n\
77
- #endif\n\
78
- \n\
79
- setIntersectionPair(ix, BOX_INTERSECTION_INDEX, entryExit);\n\
72
+ RayShapeIntersection intersection = intersectBox(ray, Box(u_renderMinBounds, u_renderMaxBounds));\n\
73
+ setShapeIntersection(ix, BOX_INTERSECTION_INDEX, intersection);\n\
80
74
  }\n\
81
75
  ";
@@ -11,60 +11,68 @@ uniform sampler2D u_clippingPlanesTexture;
11
11
  uniform mat4 u_clippingPlanesMatrix;
12
12
 
13
13
  // Plane is in Hessian Normal Form
14
- vec2 intersectPlane(Ray ray, vec4 plane) {
15
- vec3 o = ray.pos;
16
- vec3 d = ray.dir;
14
+ vec4 intersectPlane(in Ray ray, in vec4 plane) {
17
15
  vec3 n = plane.xyz; // normal
18
16
  float w = plane.w; // -dot(pointOnPlane, normal)
19
17
 
20
- float a = dot(o, n);
21
- float b = dot(d, n);
18
+ float a = dot(ray.pos, n);
19
+ float b = dot(ray.dir, n);
22
20
  float t = -(w + a) / b;
23
21
 
24
- if (dot(d, n) > 0.0) {
25
- return vec2(t, +INF_HIT);
26
- } else {
27
- return vec2(-INF_HIT, t);
28
- }
22
+ return vec4(n, t);
29
23
  }
30
24
 
31
- void intersectClippingPlanes(Ray ray, inout Intersections ix) {
25
+ void intersectClippingPlanes(in Ray ray, inout Intersections ix) {
26
+ vec4 backSide = vec4(-ray.dir, -INF_HIT);
27
+ vec4 farSide = vec4(ray.dir, +INF_HIT);
28
+ RayShapeIntersection clippingVolume;
29
+
32
30
  #if (CLIPPING_PLANES_COUNT == 1)
33
31
  // Union and intersection are the same when there's one clipping plane, and the code
34
32
  // is more simplified.
35
33
  vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, 0, u_clippingPlanesMatrix);
36
- vec2 intersection = intersectPlane(ray, planeUv);
37
- setIntersectionPair(ix, CLIPPING_PLANES_INTERSECTION_INDEX, intersection);
34
+ vec4 intersection = intersectPlane(ray, planeUv);
35
+ bool reflects = dot(ray.dir, intersection.xyz) < 0.0;
36
+ clippingVolume.entry = reflects ? backSide : intersection;
37
+ clippingVolume.exit = reflects ? intersection : farSide;
38
+ setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX, clippingVolume);
38
39
  #elif defined(CLIPPING_PLANES_UNION)
39
- float minPositiveT = +INF_HIT;
40
- float maxNegativeT = -INF_HIT;
40
+ vec4 firstTransmission = vec4(ray.dir, +INF_HIT);
41
+ vec4 lastReflection = vec4(-ray.dir, -INF_HIT);
41
42
  for (int i = 0; i < CLIPPING_PLANES_COUNT; i++) {
42
43
  vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, i, u_clippingPlanesMatrix);
43
- vec2 intersection = intersectPlane(ray, planeUv);
44
- if (intersection.y == +INF_HIT) {
45
- minPositiveT = min(minPositiveT, intersection.x);
44
+ vec4 intersection = intersectPlane(ray, planeUv);
45
+ if (dot(ray.dir, planeUv.xyz) > 0.0) {
46
+ firstTransmission = intersection.w <= firstTransmission.w ? intersection : firstTransmission;
46
47
  } else {
47
- maxNegativeT = max(maxNegativeT, intersection.y);
48
+ lastReflection = intersection.w >= lastReflection.w ? intersection : lastReflection;
48
49
  }
49
50
  }
50
- setIntersectionPair(ix, CLIPPING_PLANES_INTERSECTION_INDEX + 0, vec2(-INF_HIT, maxNegativeT));
51
- setIntersectionPair(ix, CLIPPING_PLANES_INTERSECTION_INDEX + 1, vec2(minPositiveT, +INF_HIT));
51
+ clippingVolume.entry = backSide;
52
+ clippingVolume.exit = lastReflection;
53
+ setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX + 0, clippingVolume);
54
+ clippingVolume.entry = firstTransmission;
55
+ clippingVolume.exit = farSide;
56
+ setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX + 1, clippingVolume);
52
57
  #else // intersection
53
- float maxPositiveT = -INF_HIT;
54
- float minNegativeT = +INF_HIT;
58
+ vec4 lastTransmission = vec4(ray.dir, -INF_HIT);
59
+ vec4 firstReflection = vec4(-ray.dir, +INF_HIT);
55
60
  for (int i = 0; i < CLIPPING_PLANES_COUNT; i++) {
56
61
  vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, i, u_clippingPlanesMatrix);
57
- vec2 intersection = intersectPlane(ray, planeUv);
58
- if (intersection.y == +INF_HIT) {
59
- maxPositiveT = max(maxPositiveT, intersection.x);
62
+ vec4 intersection = intersectPlane(ray, planeUv);
63
+ if (dot(ray.dir, planeUv.xyz) > 0.0) {
64
+ lastTransmission = intersection.w > lastTransmission.w ? intersection : lastTransmission;
60
65
  } else {
61
- minNegativeT = min(minNegativeT, intersection.y);
66
+ firstReflection = intersection.w < firstReflection.w ? intersection: firstReflection;
62
67
  }
63
68
  }
64
- if (maxPositiveT < minNegativeT) {
65
- setIntersectionPair(ix, CLIPPING_PLANES_INTERSECTION_INDEX, vec2(maxPositiveT, minNegativeT));
69
+ if (lastTransmission.w < firstReflection.w) {
70
+ clippingVolume.entry = lastTransmission;
71
+ clippingVolume.exit = firstReflection;
66
72
  } else {
67
- setIntersectionPair(ix, CLIPPING_PLANES_INTERSECTION_INDEX, vec2(NO_HIT));
73
+ clippingVolume.entry = vec4(-ray.dir, NO_HIT);
74
+ clippingVolume.exit = vec4(ray.dir, NO_HIT);
68
75
  }
76
+ setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX, clippingVolume);
69
77
  #endif
70
78
  }
@@ -12,61 +12,69 @@ uniform sampler2D u_clippingPlanesTexture;\n\
12
12
  uniform mat4 u_clippingPlanesMatrix;\n\
13
13
  \n\
14
14
  // Plane is in Hessian Normal Form\n\
15
- vec2 intersectPlane(Ray ray, vec4 plane) {\n\
16
- vec3 o = ray.pos;\n\
17
- vec3 d = ray.dir;\n\
15
+ vec4 intersectPlane(in Ray ray, in vec4 plane) {\n\
18
16
  vec3 n = plane.xyz; // normal\n\
19
17
  float w = plane.w; // -dot(pointOnPlane, normal)\n\
20
18
  \n\
21
- float a = dot(o, n);\n\
22
- float b = dot(d, n);\n\
19
+ float a = dot(ray.pos, n);\n\
20
+ float b = dot(ray.dir, n);\n\
23
21
  float t = -(w + a) / b;\n\
24
22
  \n\
25
- if (dot(d, n) > 0.0) {\n\
26
- return vec2(t, +INF_HIT);\n\
27
- } else {\n\
28
- return vec2(-INF_HIT, t);\n\
29
- }\n\
23
+ return vec4(n, t);\n\
30
24
  }\n\
31
25
  \n\
32
- void intersectClippingPlanes(Ray ray, inout Intersections ix) {\n\
26
+ void intersectClippingPlanes(in Ray ray, inout Intersections ix) {\n\
27
+ vec4 backSide = vec4(-ray.dir, -INF_HIT);\n\
28
+ vec4 farSide = vec4(ray.dir, +INF_HIT);\n\
29
+ RayShapeIntersection clippingVolume;\n\
30
+ \n\
33
31
  #if (CLIPPING_PLANES_COUNT == 1)\n\
34
32
  // Union and intersection are the same when there's one clipping plane, and the code\n\
35
33
  // is more simplified.\n\
36
34
  vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, 0, u_clippingPlanesMatrix);\n\
37
- vec2 intersection = intersectPlane(ray, planeUv);\n\
38
- setIntersectionPair(ix, CLIPPING_PLANES_INTERSECTION_INDEX, intersection);\n\
35
+ vec4 intersection = intersectPlane(ray, planeUv);\n\
36
+ bool reflects = dot(ray.dir, intersection.xyz) < 0.0;\n\
37
+ clippingVolume.entry = reflects ? backSide : intersection;\n\
38
+ clippingVolume.exit = reflects ? intersection : farSide;\n\
39
+ setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX, clippingVolume);\n\
39
40
  #elif defined(CLIPPING_PLANES_UNION)\n\
40
- float minPositiveT = +INF_HIT;\n\
41
- float maxNegativeT = -INF_HIT;\n\
41
+ vec4 firstTransmission = vec4(ray.dir, +INF_HIT);\n\
42
+ vec4 lastReflection = vec4(-ray.dir, -INF_HIT);\n\
42
43
  for (int i = 0; i < CLIPPING_PLANES_COUNT; i++) {\n\
43
44
  vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, i, u_clippingPlanesMatrix);\n\
44
- vec2 intersection = intersectPlane(ray, planeUv);\n\
45
- if (intersection.y == +INF_HIT) {\n\
46
- minPositiveT = min(minPositiveT, intersection.x);\n\
45
+ vec4 intersection = intersectPlane(ray, planeUv);\n\
46
+ if (dot(ray.dir, planeUv.xyz) > 0.0) {\n\
47
+ firstTransmission = intersection.w <= firstTransmission.w ? intersection : firstTransmission;\n\
47
48
  } else {\n\
48
- maxNegativeT = max(maxNegativeT, intersection.y);\n\
49
+ lastReflection = intersection.w >= lastReflection.w ? intersection : lastReflection;\n\
49
50
  }\n\
50
51
  }\n\
51
- setIntersectionPair(ix, CLIPPING_PLANES_INTERSECTION_INDEX + 0, vec2(-INF_HIT, maxNegativeT));\n\
52
- setIntersectionPair(ix, CLIPPING_PLANES_INTERSECTION_INDEX + 1, vec2(minPositiveT, +INF_HIT));\n\
52
+ clippingVolume.entry = backSide;\n\
53
+ clippingVolume.exit = lastReflection;\n\
54
+ setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX + 0, clippingVolume);\n\
55
+ clippingVolume.entry = firstTransmission;\n\
56
+ clippingVolume.exit = farSide;\n\
57
+ setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX + 1, clippingVolume);\n\
53
58
  #else // intersection\n\
54
- float maxPositiveT = -INF_HIT;\n\
55
- float minNegativeT = +INF_HIT;\n\
59
+ vec4 lastTransmission = vec4(ray.dir, -INF_HIT);\n\
60
+ vec4 firstReflection = vec4(-ray.dir, +INF_HIT);\n\
56
61
  for (int i = 0; i < CLIPPING_PLANES_COUNT; i++) {\n\
57
62
  vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, i, u_clippingPlanesMatrix);\n\
58
- vec2 intersection = intersectPlane(ray, planeUv);\n\
59
- if (intersection.y == +INF_HIT) {\n\
60
- maxPositiveT = max(maxPositiveT, intersection.x);\n\
63
+ vec4 intersection = intersectPlane(ray, planeUv);\n\
64
+ if (dot(ray.dir, planeUv.xyz) > 0.0) {\n\
65
+ lastTransmission = intersection.w > lastTransmission.w ? intersection : lastTransmission;\n\
61
66
  } else {\n\
62
- minNegativeT = min(minNegativeT, intersection.y);\n\
67
+ firstReflection = intersection.w < firstReflection.w ? intersection: firstReflection;\n\
63
68
  }\n\
64
69
  }\n\
65
- if (maxPositiveT < minNegativeT) {\n\
66
- setIntersectionPair(ix, CLIPPING_PLANES_INTERSECTION_INDEX, vec2(maxPositiveT, minNegativeT));\n\
70
+ if (lastTransmission.w < firstReflection.w) {\n\
71
+ clippingVolume.entry = lastTransmission;\n\
72
+ clippingVolume.exit = firstReflection;\n\
67
73
  } else {\n\
68
- setIntersectionPair(ix, CLIPPING_PLANES_INTERSECTION_INDEX, vec2(NO_HIT));\n\
74
+ clippingVolume.entry = vec4(-ray.dir, NO_HIT);\n\
75
+ clippingVolume.exit = vec4(ray.dir, NO_HIT);\n\
69
76
  }\n\
77
+ setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX, clippingVolume);\n\
70
78
  #endif\n\
71
79
  }\n\
72
80
  ";