@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
@@ -8,11 +8,11 @@
8
8
  uniform sampler2D u_octreeInternalNodeTexture;
9
9
  uniform vec2 u_octreeInternalNodeTexelSizeUv;
10
10
  uniform int u_octreeInternalNodeTilesPerRow;
11
+ #if (SAMPLE_COUNT > 1)
11
12
  uniform sampler2D u_octreeLeafNodeTexture;
12
13
  uniform vec2 u_octreeLeafNodeTexelSizeUv;
13
14
  uniform int u_octreeLeafNodeTilesPerRow;
14
-
15
- uniform float u_stepSize;
15
+ #endif
16
16
 
17
17
  struct OctreeNodeData {
18
18
  int data;
@@ -20,14 +20,13 @@ struct OctreeNodeData {
20
20
  };
21
21
 
22
22
  struct TraversalData {
23
- float stepT;
24
23
  ivec4 octreeCoords;
25
24
  int parentOctreeIndex;
26
25
  };
27
26
 
28
27
  struct SampleData {
29
28
  int megatextureIndex;
30
- bool usingParentMegatextureIndex;
29
+ ivec4 tileCoords;
31
30
  vec3 tileUv;
32
31
  #if (SAMPLE_COUNT > 1)
33
32
  float weight;
@@ -49,7 +48,7 @@ float normU8x2_toFloat(in vec2 value) {
49
48
  }
50
49
 
51
50
  OctreeNodeData getOctreeNodeData(in vec2 octreeUv) {
52
- vec4 texData = texture2D(u_octreeInternalNodeTexture, octreeUv);
51
+ vec4 texData = texture(u_octreeInternalNodeTexture, octreeUv);
53
52
 
54
53
  OctreeNodeData data;
55
54
  data.data = normU8x2_toInt(texData.xy);
@@ -69,7 +68,7 @@ int getOctreeParentIndex(in int octreeIndex) {
69
68
  int octreeCoordX = intMod(octreeIndex, u_octreeInternalNodeTilesPerRow) * 9;
70
69
  int octreeCoordY = octreeIndex / u_octreeInternalNodeTilesPerRow;
71
70
  vec2 octreeUv = u_octreeInternalNodeTexelSizeUv * vec2(float(octreeCoordX) + 0.5, float(octreeCoordY) + 0.5);
72
- vec4 parentData = texture2D(u_octreeInternalNodeTexture, octreeUv);
71
+ vec4 parentData = texture(u_octreeInternalNodeTexture, octreeUv);
73
72
  int parentOctreeIndex = normU8x2_toInt(parentData.xy);
74
73
  return parentOctreeIndex;
75
74
  }
@@ -79,52 +78,53 @@ int getOctreeParentIndex(in int octreeIndex) {
79
78
  * into the uv-space of a tile within the tileset
80
79
  */
81
80
  vec3 getTileUv(in vec3 shapePosition, in ivec4 octreeCoords) {
82
- // TODO: use bit-shifting (only in WebGL2)
81
+ // PERFORMANCE_IDEA: use bit-shifting (only in WebGL2)
83
82
  float dimAtLevel = pow(2.0, float(octreeCoords.w));
84
83
  return shapePosition * dimAtLevel - vec3(octreeCoords.xyz);
85
84
  }
86
85
 
87
- void setSampleUv(in vec3 shapePosition, in ivec4 octreeCoords, inout SampleData sampleData) {
88
- ivec4 sampleCoords = sampleData.usingParentMegatextureIndex
86
+ void getOctreeLeafSampleData(in OctreeNodeData data, in ivec4 octreeCoords, out SampleData sampleData) {
87
+ sampleData.megatextureIndex = data.data;
88
+ sampleData.tileCoords = (data.flag == OCTREE_FLAG_PACKED_LEAF_FROM_PARENT)
89
89
  ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1)
90
90
  : octreeCoords;
91
- sampleData.tileUv = getTileUv(shapePosition, sampleCoords);
92
- }
93
-
94
- void getOctreeLeafSampleData(in OctreeNodeData data, out SampleData sampleData) {
95
- sampleData.megatextureIndex = data.data;
96
- sampleData.usingParentMegatextureIndex = data.flag == OCTREE_FLAG_PACKED_LEAF_FROM_PARENT;
97
91
  }
98
92
 
99
93
  #if (SAMPLE_COUNT > 1)
100
- void getOctreeLeafSampleDatas(in OctreeNodeData data, out SampleData sampleData0, out SampleData sampleData1) {
94
+ void getOctreeLeafSampleDatas(in OctreeNodeData data, in ivec4 octreeCoords, out SampleData sampleDatas[SAMPLE_COUNT]) {
101
95
  int leafIndex = data.data;
102
96
  int leafNodeTexelCount = 2;
103
97
  // Adding 0.5 moves to the center of the texel
104
98
  float leafCoordXStart = float(intMod(leafIndex, u_octreeLeafNodeTilesPerRow) * leafNodeTexelCount) + 0.5;
105
99
  float leafCoordY = float(leafIndex / u_octreeLeafNodeTilesPerRow) + 0.5;
106
100
 
101
+ // Get an interpolation weight and a flag to determine whether to read the parent texture
107
102
  vec2 leafUv0 = u_octreeLeafNodeTexelSizeUv * vec2(leafCoordXStart + 0.0, leafCoordY);
108
- vec2 leafUv1 = u_octreeLeafNodeTexelSizeUv * vec2(leafCoordXStart + 1.0, leafCoordY);
109
- vec4 leafData0 = texture2D(u_octreeLeafNodeTexture, leafUv0);
110
- vec4 leafData1 = texture2D(u_octreeLeafNodeTexture, leafUv1);
111
-
103
+ vec4 leafData0 = texture(u_octreeLeafNodeTexture, leafUv0);
112
104
  float lerp = normU8x2_toFloat(leafData0.xy);
113
-
114
- sampleData0.megatextureIndex = normU8x2_toInt(leafData1.xy);
115
- sampleData1.megatextureIndex = normU8x2_toInt(leafData1.zw);
105
+ sampleDatas[0].weight = 1.0 - lerp;
106
+ sampleDatas[1].weight = lerp;
116
107
  // TODO: this looks wrong? Should be comparing to OCTREE_FLAG_PACKED_LEAF_FROM_PARENT
117
- sampleData0.usingParentMegatextureIndex = normU8_toInt(leafData0.z) == 1;
118
- sampleData1.usingParentMegatextureIndex = normU8_toInt(leafData0.w) == 1;
119
- sampleData0.weight = 1.0 - lerp;
120
- sampleData1.weight = lerp;
108
+ sampleDatas[0].tileCoords = (normU8_toInt(leafData0.z) == 1)
109
+ ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1)
110
+ : octreeCoords;
111
+ sampleDatas[1].tileCoords = (normU8_toInt(leafData0.w) == 1)
112
+ ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1)
113
+ : octreeCoords;
114
+
115
+ // Get megatexture indices for both samples
116
+ vec2 leafUv1 = u_octreeLeafNodeTexelSizeUv * vec2(leafCoordXStart + 1.0, leafCoordY);
117
+ vec4 leafData1 = texture(u_octreeLeafNodeTexture, leafUv1);
118
+ sampleDatas[0].megatextureIndex = normU8x2_toInt(leafData1.xy);
119
+ sampleDatas[1].megatextureIndex = normU8x2_toInt(leafData1.zw);
121
120
  }
122
121
  #endif
123
122
 
124
- void traverseOctreeDownwards(in vec3 shapePosition, inout TraversalData traversalData, out SampleData sampleDatas[SAMPLE_COUNT]) {
123
+ OctreeNodeData traverseOctreeDownwards(in vec3 shapePosition, inout TraversalData traversalData) {
125
124
  float sizeAtLevel = 1.0 / pow(2.0, float(traversalData.octreeCoords.w));
126
125
  vec3 start = vec3(traversalData.octreeCoords.xyz) * sizeAtLevel;
127
126
  vec3 end = start + vec3(sizeAtLevel);
127
+ OctreeNodeData childData;
128
128
 
129
129
  for (int i = 0; i < OCTREE_MAX_LEVELS; ++i) {
130
130
  // Find out which octree child contains the position
@@ -132,32 +132,24 @@ void traverseOctreeDownwards(in vec3 shapePosition, inout TraversalData traversa
132
132
  vec3 center = 0.5 * (start + end);
133
133
  vec3 childCoord = step(center, shapePosition);
134
134
 
135
- OctreeNodeData childData = getOctreeChildData(traversalData.parentOctreeIndex, ivec3(childCoord));
136
-
137
135
  // Get octree coords for the next level down
138
136
  ivec4 octreeCoords = traversalData.octreeCoords;
139
137
  traversalData.octreeCoords = ivec4(octreeCoords.xyz * 2 + ivec3(childCoord), octreeCoords.w + 1);
140
138
 
141
- if (childData.flag == OCTREE_FLAG_INTERNAL) {
142
- // interior tile - keep going deeper
143
- start = mix(start, center, childCoord);
144
- end = mix(center, end, childCoord);
145
- traversalData.parentOctreeIndex = childData.data;
146
- } else {
139
+ childData = getOctreeChildData(traversalData.parentOctreeIndex, ivec3(childCoord));
140
+
141
+ if (childData.flag != OCTREE_FLAG_INTERNAL) {
147
142
  // leaf tile - stop traversing
148
- float dimAtLevel = pow(2.0, float(traversalData.octreeCoords.w));
149
- traversalData.stepT = u_stepSize / dimAtLevel;
150
- #if (SAMPLE_COUNT == 1)
151
- getOctreeLeafSampleData(childData, sampleDatas[0]);
152
- setSampleUv(shapePosition, traversalData.octreeCoords, sampleDatas[0]);
153
- #else
154
- getOctreeLeafSampleDatas(childData, sampleDatas[0], sampleDatas[1]);
155
- setSampleUv(shapePosition, traversalData.octreeCoords, sampleDatas[0]);
156
- setSampleUv(shapePosition, traversalData.octreeCoords, sampleDatas[1]);
157
- #endif
158
- return;
143
+ break;
159
144
  }
145
+
146
+ // interior tile - keep going deeper
147
+ start = mix(start, center, childCoord);
148
+ end = mix(center, end, childCoord);
149
+ traversalData.parentOctreeIndex = childData.data;
160
150
  }
151
+
152
+ return childData;
161
153
  }
162
154
 
163
155
  /**
@@ -168,21 +160,19 @@ void traverseOctreeFromBeginning(in vec3 shapePosition, out TraversalData traver
168
160
  traversalData.octreeCoords = ivec4(0);
169
161
  traversalData.parentOctreeIndex = 0;
170
162
 
171
- OctreeNodeData rootData = getOctreeNodeData(vec2(0.0));
172
- if (rootData.flag == OCTREE_FLAG_LEAF) {
173
- // No child data, only the root tile has data
174
- traversalData.stepT = u_stepSize;
175
- #if (SAMPLE_COUNT == 1)
176
- getOctreeLeafSampleData(rootData, sampleDatas[0]);
177
- setSampleUv(shapePosition, traversalData.octreeCoords, sampleDatas[0]);
178
- #else
179
- getOctreeLeafSampleDatas(rootData, sampleDatas[0], sampleDatas[1]);
180
- setSampleUv(shapePosition, traversalData.octreeCoords, sampleDatas[0]);
181
- setSampleUv(shapePosition, traversalData.octreeCoords, sampleDatas[1]);
182
- #endif
183
- } else {
184
- traverseOctreeDownwards(shapePosition, traversalData, sampleDatas);
163
+ OctreeNodeData nodeData = getOctreeNodeData(vec2(0.0));
164
+ if (nodeData.flag != OCTREE_FLAG_LEAF) {
165
+ nodeData = traverseOctreeDownwards(shapePosition, traversalData);
185
166
  }
167
+
168
+ #if (SAMPLE_COUNT == 1)
169
+ getOctreeLeafSampleData(nodeData, traversalData.octreeCoords, sampleDatas[0]);
170
+ sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords);
171
+ #else
172
+ getOctreeLeafSampleDatas(nodeData, traversalData.octreeCoords, sampleDatas);
173
+ sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords);
174
+ sampleDatas[1].tileUv = getTileUv(shapePosition, sampleDatas[1].tileCoords);
175
+ #endif
186
176
  }
187
177
 
188
178
  bool inRange(in vec3 v, in vec3 minVal, in vec3 maxVal) {
@@ -199,23 +189,32 @@ bool insideTile(in vec3 shapePosition, in ivec4 octreeCoords) {
199
189
  void traverseOctreeFromExisting(in vec3 shapePosition, inout TraversalData traversalData, inout SampleData sampleDatas[SAMPLE_COUNT]) {
200
190
  if (insideTile(shapePosition, traversalData.octreeCoords)) {
201
191
  for (int i = 0; i < SAMPLE_COUNT; i++) {
202
- setSampleUv(shapePosition, traversalData.octreeCoords, sampleDatas[i]);
192
+ sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords);
203
193
  }
204
- } else {
205
- // Go up tree
206
- for (int i = 0; i < OCTREE_MAX_LEVELS; ++i)
207
- {
208
- traversalData.octreeCoords.xyz /= 2;
209
- traversalData.octreeCoords.w -= 1;
210
-
211
- if (!insideTile(shapePosition, traversalData.octreeCoords)) {
212
- traversalData.parentOctreeIndex = getOctreeParentIndex(traversalData.parentOctreeIndex);
213
- } else {
214
- break;
215
- }
194
+ return;
195
+ }
196
+
197
+ // Go up tree until we find a parent tile containing shapePosition
198
+ for (int i = 0; i < OCTREE_MAX_LEVELS; ++i) {
199
+ traversalData.octreeCoords.xyz /= 2;
200
+ traversalData.octreeCoords.w -= 1;
201
+
202
+ if (insideTile(shapePosition, traversalData.octreeCoords)) {
203
+ break;
216
204
  }
217
205
 
218
- // Go down tree
219
- traverseOctreeDownwards(shapePosition, traversalData, sampleDatas);
206
+ traversalData.parentOctreeIndex = getOctreeParentIndex(traversalData.parentOctreeIndex);
220
207
  }
208
+
209
+ // Go down tree
210
+ OctreeNodeData nodeData = traverseOctreeDownwards(shapePosition, traversalData);
211
+
212
+ #if (SAMPLE_COUNT == 1)
213
+ getOctreeLeafSampleData(nodeData, traversalData.octreeCoords, sampleDatas[0]);
214
+ sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords);
215
+ #else
216
+ getOctreeLeafSampleDatas(nodeData, traversalData.octreeCoords, sampleDatas);
217
+ sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords);
218
+ sampleDatas[1].tileUv = getTileUv(shapePosition, sampleDatas[1].tileCoords);
219
+ #endif
221
220
  }
@@ -9,11 +9,11 @@ export default "// These octree flags must be in sync with GpuOctreeFlag in Voxe
9
9
  uniform sampler2D u_octreeInternalNodeTexture;\n\
10
10
  uniform vec2 u_octreeInternalNodeTexelSizeUv;\n\
11
11
  uniform int u_octreeInternalNodeTilesPerRow;\n\
12
+ #if (SAMPLE_COUNT > 1)\n\
12
13
  uniform sampler2D u_octreeLeafNodeTexture;\n\
13
14
  uniform vec2 u_octreeLeafNodeTexelSizeUv;\n\
14
15
  uniform int u_octreeLeafNodeTilesPerRow;\n\
15
- \n\
16
- uniform float u_stepSize;\n\
16
+ #endif\n\
17
17
  \n\
18
18
  struct OctreeNodeData {\n\
19
19
  int data;\n\
@@ -21,14 +21,13 @@ struct OctreeNodeData {\n\
21
21
  };\n\
22
22
  \n\
23
23
  struct TraversalData {\n\
24
- float stepT;\n\
25
24
  ivec4 octreeCoords;\n\
26
25
  int parentOctreeIndex;\n\
27
26
  };\n\
28
27
  \n\
29
28
  struct SampleData {\n\
30
29
  int megatextureIndex;\n\
31
- bool usingParentMegatextureIndex;\n\
30
+ ivec4 tileCoords;\n\
32
31
  vec3 tileUv;\n\
33
32
  #if (SAMPLE_COUNT > 1)\n\
34
33
  float weight;\n\
@@ -50,7 +49,7 @@ float normU8x2_toFloat(in vec2 value) {\n\
50
49
  }\n\
51
50
  \n\
52
51
  OctreeNodeData getOctreeNodeData(in vec2 octreeUv) {\n\
53
- vec4 texData = texture2D(u_octreeInternalNodeTexture, octreeUv);\n\
52
+ vec4 texData = texture(u_octreeInternalNodeTexture, octreeUv);\n\
54
53
  \n\
55
54
  OctreeNodeData data;\n\
56
55
  data.data = normU8x2_toInt(texData.xy);\n\
@@ -70,7 +69,7 @@ int getOctreeParentIndex(in int octreeIndex) {\n\
70
69
  int octreeCoordX = intMod(octreeIndex, u_octreeInternalNodeTilesPerRow) * 9;\n\
71
70
  int octreeCoordY = octreeIndex / u_octreeInternalNodeTilesPerRow;\n\
72
71
  vec2 octreeUv = u_octreeInternalNodeTexelSizeUv * vec2(float(octreeCoordX) + 0.5, float(octreeCoordY) + 0.5);\n\
73
- vec4 parentData = texture2D(u_octreeInternalNodeTexture, octreeUv);\n\
72
+ vec4 parentData = texture(u_octreeInternalNodeTexture, octreeUv);\n\
74
73
  int parentOctreeIndex = normU8x2_toInt(parentData.xy);\n\
75
74
  return parentOctreeIndex;\n\
76
75
  }\n\
@@ -80,85 +79,78 @@ int getOctreeParentIndex(in int octreeIndex) {\n\
80
79
  * into the uv-space of a tile within the tileset\n\
81
80
  */\n\
82
81
  vec3 getTileUv(in vec3 shapePosition, in ivec4 octreeCoords) {\n\
83
- // TODO: use bit-shifting (only in WebGL2)\n\
82
+ // PERFORMANCE_IDEA: use bit-shifting (only in WebGL2)\n\
84
83
  float dimAtLevel = pow(2.0, float(octreeCoords.w));\n\
85
84
  return shapePosition * dimAtLevel - vec3(octreeCoords.xyz);\n\
86
85
  }\n\
87
86
  \n\
88
- void setSampleUv(in vec3 shapePosition, in ivec4 octreeCoords, inout SampleData sampleData) {\n\
89
- ivec4 sampleCoords = sampleData.usingParentMegatextureIndex\n\
87
+ void getOctreeLeafSampleData(in OctreeNodeData data, in ivec4 octreeCoords, out SampleData sampleData) {\n\
88
+ sampleData.megatextureIndex = data.data;\n\
89
+ sampleData.tileCoords = (data.flag == OCTREE_FLAG_PACKED_LEAF_FROM_PARENT)\n\
90
90
  ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1)\n\
91
91
  : octreeCoords;\n\
92
- sampleData.tileUv = getTileUv(shapePosition, sampleCoords);\n\
93
- }\n\
94
- \n\
95
- void getOctreeLeafSampleData(in OctreeNodeData data, out SampleData sampleData) {\n\
96
- sampleData.megatextureIndex = data.data;\n\
97
- sampleData.usingParentMegatextureIndex = data.flag == OCTREE_FLAG_PACKED_LEAF_FROM_PARENT;\n\
98
92
  }\n\
99
93
  \n\
100
94
  #if (SAMPLE_COUNT > 1)\n\
101
- void getOctreeLeafSampleDatas(in OctreeNodeData data, out SampleData sampleData0, out SampleData sampleData1) {\n\
95
+ void getOctreeLeafSampleDatas(in OctreeNodeData data, in ivec4 octreeCoords, out SampleData sampleDatas[SAMPLE_COUNT]) {\n\
102
96
  int leafIndex = data.data;\n\
103
97
  int leafNodeTexelCount = 2;\n\
104
98
  // Adding 0.5 moves to the center of the texel\n\
105
99
  float leafCoordXStart = float(intMod(leafIndex, u_octreeLeafNodeTilesPerRow) * leafNodeTexelCount) + 0.5;\n\
106
100
  float leafCoordY = float(leafIndex / u_octreeLeafNodeTilesPerRow) + 0.5;\n\
107
101
  \n\
102
+ // Get an interpolation weight and a flag to determine whether to read the parent texture\n\
108
103
  vec2 leafUv0 = u_octreeLeafNodeTexelSizeUv * vec2(leafCoordXStart + 0.0, leafCoordY);\n\
109
- vec2 leafUv1 = u_octreeLeafNodeTexelSizeUv * vec2(leafCoordXStart + 1.0, leafCoordY);\n\
110
- vec4 leafData0 = texture2D(u_octreeLeafNodeTexture, leafUv0);\n\
111
- vec4 leafData1 = texture2D(u_octreeLeafNodeTexture, leafUv1);\n\
112
- \n\
104
+ vec4 leafData0 = texture(u_octreeLeafNodeTexture, leafUv0);\n\
113
105
  float lerp = normU8x2_toFloat(leafData0.xy);\n\
114
- \n\
115
- sampleData0.megatextureIndex = normU8x2_toInt(leafData1.xy);\n\
116
- sampleData1.megatextureIndex = normU8x2_toInt(leafData1.zw);\n\
106
+ sampleDatas[0].weight = 1.0 - lerp;\n\
107
+ sampleDatas[1].weight = lerp;\n\
117
108
  // TODO: this looks wrong? Should be comparing to OCTREE_FLAG_PACKED_LEAF_FROM_PARENT\n\
118
- sampleData0.usingParentMegatextureIndex = normU8_toInt(leafData0.z) == 1;\n\
119
- sampleData1.usingParentMegatextureIndex = normU8_toInt(leafData0.w) == 1;\n\
120
- sampleData0.weight = 1.0 - lerp;\n\
121
- sampleData1.weight = lerp;\n\
109
+ sampleDatas[0].tileCoords = (normU8_toInt(leafData0.z) == 1)\n\
110
+ ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1)\n\
111
+ : octreeCoords;\n\
112
+ sampleDatas[1].tileCoords = (normU8_toInt(leafData0.w) == 1)\n\
113
+ ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1)\n\
114
+ : octreeCoords;\n\
115
+ \n\
116
+ // Get megatexture indices for both samples\n\
117
+ vec2 leafUv1 = u_octreeLeafNodeTexelSizeUv * vec2(leafCoordXStart + 1.0, leafCoordY);\n\
118
+ vec4 leafData1 = texture(u_octreeLeafNodeTexture, leafUv1);\n\
119
+ sampleDatas[0].megatextureIndex = normU8x2_toInt(leafData1.xy);\n\
120
+ sampleDatas[1].megatextureIndex = normU8x2_toInt(leafData1.zw);\n\
122
121
  }\n\
123
122
  #endif\n\
124
123
  \n\
125
- void traverseOctreeDownwards(in vec3 shapePosition, inout TraversalData traversalData, out SampleData sampleDatas[SAMPLE_COUNT]) {\n\
124
+ OctreeNodeData traverseOctreeDownwards(in vec3 shapePosition, inout TraversalData traversalData) {\n\
126
125
  float sizeAtLevel = 1.0 / pow(2.0, float(traversalData.octreeCoords.w));\n\
127
126
  vec3 start = vec3(traversalData.octreeCoords.xyz) * sizeAtLevel;\n\
128
127
  vec3 end = start + vec3(sizeAtLevel);\n\
128
+ OctreeNodeData childData;\n\
129
129
  \n\
130
130
  for (int i = 0; i < OCTREE_MAX_LEVELS; ++i) {\n\
131
131
  // Find out which octree child contains the position\n\
132
132
  // 0 if before center, 1 if after\n\
133
133
  vec3 center = 0.5 * (start + end);\n\
134
134
  vec3 childCoord = step(center, shapePosition);\n\
135
- \n\
136
- OctreeNodeData childData = getOctreeChildData(traversalData.parentOctreeIndex, ivec3(childCoord));\n\
137
135
  \n\
138
136
  // Get octree coords for the next level down\n\
139
137
  ivec4 octreeCoords = traversalData.octreeCoords;\n\
140
138
  traversalData.octreeCoords = ivec4(octreeCoords.xyz * 2 + ivec3(childCoord), octreeCoords.w + 1);\n\
141
139
  \n\
142
- if (childData.flag == OCTREE_FLAG_INTERNAL) {\n\
143
- // interior tile - keep going deeper\n\
144
- start = mix(start, center, childCoord);\n\
145
- end = mix(center, end, childCoord);\n\
146
- traversalData.parentOctreeIndex = childData.data;\n\
147
- } else {\n\
140
+ childData = getOctreeChildData(traversalData.parentOctreeIndex, ivec3(childCoord));\n\
141
+ \n\
142
+ if (childData.flag != OCTREE_FLAG_INTERNAL) {\n\
148
143
  // leaf tile - stop traversing\n\
149
- float dimAtLevel = pow(2.0, float(traversalData.octreeCoords.w));\n\
150
- traversalData.stepT = u_stepSize / dimAtLevel;\n\
151
- #if (SAMPLE_COUNT == 1)\n\
152
- getOctreeLeafSampleData(childData, sampleDatas[0]);\n\
153
- setSampleUv(shapePosition, traversalData.octreeCoords, sampleDatas[0]);\n\
154
- #else\n\
155
- getOctreeLeafSampleDatas(childData, sampleDatas[0], sampleDatas[1]);\n\
156
- setSampleUv(shapePosition, traversalData.octreeCoords, sampleDatas[0]);\n\
157
- setSampleUv(shapePosition, traversalData.octreeCoords, sampleDatas[1]);\n\
158
- #endif\n\
159
- return;\n\
144
+ break;\n\
160
145
  }\n\
146
+ \n\
147
+ // interior tile - keep going deeper\n\
148
+ start = mix(start, center, childCoord);\n\
149
+ end = mix(center, end, childCoord);\n\
150
+ traversalData.parentOctreeIndex = childData.data;\n\
161
151
  }\n\
152
+ \n\
153
+ return childData;\n\
162
154
  }\n\
163
155
  \n\
164
156
  /**\n\
@@ -169,21 +161,19 @@ void traverseOctreeFromBeginning(in vec3 shapePosition, out TraversalData traver
169
161
  traversalData.octreeCoords = ivec4(0);\n\
170
162
  traversalData.parentOctreeIndex = 0;\n\
171
163
  \n\
172
- OctreeNodeData rootData = getOctreeNodeData(vec2(0.0));\n\
173
- if (rootData.flag == OCTREE_FLAG_LEAF) {\n\
174
- // No child data, only the root tile has data\n\
175
- traversalData.stepT = u_stepSize;\n\
176
- #if (SAMPLE_COUNT == 1)\n\
177
- getOctreeLeafSampleData(rootData, sampleDatas[0]);\n\
178
- setSampleUv(shapePosition, traversalData.octreeCoords, sampleDatas[0]);\n\
179
- #else\n\
180
- getOctreeLeafSampleDatas(rootData, sampleDatas[0], sampleDatas[1]);\n\
181
- setSampleUv(shapePosition, traversalData.octreeCoords, sampleDatas[0]);\n\
182
- setSampleUv(shapePosition, traversalData.octreeCoords, sampleDatas[1]);\n\
183
- #endif\n\
184
- } else {\n\
185
- traverseOctreeDownwards(shapePosition, traversalData, sampleDatas);\n\
164
+ OctreeNodeData nodeData = getOctreeNodeData(vec2(0.0));\n\
165
+ if (nodeData.flag != OCTREE_FLAG_LEAF) {\n\
166
+ nodeData = traverseOctreeDownwards(shapePosition, traversalData);\n\
186
167
  }\n\
168
+ \n\
169
+ #if (SAMPLE_COUNT == 1)\n\
170
+ getOctreeLeafSampleData(nodeData, traversalData.octreeCoords, sampleDatas[0]);\n\
171
+ sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords);\n\
172
+ #else\n\
173
+ getOctreeLeafSampleDatas(nodeData, traversalData.octreeCoords, sampleDatas);\n\
174
+ sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords);\n\
175
+ sampleDatas[1].tileUv = getTileUv(shapePosition, sampleDatas[1].tileCoords);\n\
176
+ #endif\n\
187
177
  }\n\
188
178
  \n\
189
179
  bool inRange(in vec3 v, in vec3 minVal, in vec3 maxVal) {\n\
@@ -200,24 +190,33 @@ bool insideTile(in vec3 shapePosition, in ivec4 octreeCoords) {\n\
200
190
  void traverseOctreeFromExisting(in vec3 shapePosition, inout TraversalData traversalData, inout SampleData sampleDatas[SAMPLE_COUNT]) {\n\
201
191
  if (insideTile(shapePosition, traversalData.octreeCoords)) {\n\
202
192
  for (int i = 0; i < SAMPLE_COUNT; i++) {\n\
203
- setSampleUv(shapePosition, traversalData.octreeCoords, sampleDatas[i]);\n\
193
+ sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords);\n\
204
194
  }\n\
205
- } else {\n\
206
- // Go up tree\n\
207
- for (int i = 0; i < OCTREE_MAX_LEVELS; ++i)\n\
208
- {\n\
209
- traversalData.octreeCoords.xyz /= 2;\n\
210
- traversalData.octreeCoords.w -= 1;\n\
211
- \n\
212
- if (!insideTile(shapePosition, traversalData.octreeCoords)) {\n\
213
- traversalData.parentOctreeIndex = getOctreeParentIndex(traversalData.parentOctreeIndex);\n\
214
- } else {\n\
215
- break;\n\
216
- }\n\
195
+ return;\n\
196
+ }\n\
197
+ \n\
198
+ // Go up tree until we find a parent tile containing shapePosition\n\
199
+ for (int i = 0; i < OCTREE_MAX_LEVELS; ++i) {\n\
200
+ traversalData.octreeCoords.xyz /= 2;\n\
201
+ traversalData.octreeCoords.w -= 1;\n\
202
+ \n\
203
+ if (insideTile(shapePosition, traversalData.octreeCoords)) {\n\
204
+ break;\n\
217
205
  }\n\
218
206
  \n\
219
- // Go down tree\n\
220
- traverseOctreeDownwards(shapePosition, traversalData, sampleDatas);\n\
207
+ traversalData.parentOctreeIndex = getOctreeParentIndex(traversalData.parentOctreeIndex);\n\
221
208
  }\n\
209
+ \n\
210
+ // Go down tree\n\
211
+ OctreeNodeData nodeData = traverseOctreeDownwards(shapePosition, traversalData);\n\
212
+ \n\
213
+ #if (SAMPLE_COUNT == 1)\n\
214
+ getOctreeLeafSampleData(nodeData, traversalData.octreeCoords, sampleDatas[0]);\n\
215
+ sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords);\n\
216
+ #else\n\
217
+ getOctreeLeafSampleDatas(nodeData, traversalData.octreeCoords, sampleDatas);\n\
218
+ sampleDatas[0].tileUv = getTileUv(shapePosition, sampleDatas[0].tileCoords);\n\
219
+ sampleDatas[1].tileUv = getTileUv(shapePosition, sampleDatas[1].tileCoords);\n\
220
+ #endif\n\
222
221
  }\n\
223
222
  ";
@@ -13,6 +13,7 @@
13
13
 
14
14
  uniform mat3 u_transformDirectionViewToLocal;
15
15
  uniform vec3 u_cameraPositionUv;
16
+ uniform float u_stepSize;
16
17
 
17
18
  #if defined(PICKING)
18
19
  uniform vec4 u_pickColor;
@@ -27,6 +28,20 @@ float hash(vec2 p)
27
28
  }
28
29
  #endif
29
30
 
31
+ vec4 getStepSize(in SampleData sampleData, in Ray viewRay, in RayShapeIntersection shapeIntersection) {
32
+ #if defined(SHAPE_BOX)
33
+ Box voxelBox = constructVoxelBox(sampleData.tileCoords, sampleData.tileUv);
34
+ RayShapeIntersection voxelIntersection = intersectBox(viewRay, voxelBox);
35
+ vec4 entry = shapeIntersection.entry.w >= voxelIntersection.entry.w ? shapeIntersection.entry : voxelIntersection.entry;
36
+ float exit = min(voxelIntersection.exit.w, shapeIntersection.exit.w);
37
+ float dt = (exit - entry.w) * RAY_SCALE;
38
+ return vec4(normalize(entry.xyz), dt);
39
+ #else
40
+ float dimAtLevel = pow(2.0, float(sampleData.tileCoords.w));
41
+ return vec4(viewRay.dir, u_stepSize / dimAtLevel);
42
+ #endif
43
+ }
44
+
30
45
  void main()
31
46
  {
32
47
  vec4 fragCoord = gl_FragCoord;
@@ -35,34 +50,36 @@ void main()
35
50
  vec3 viewDirWorld = normalize(czm_inverseViewRotation * eyeDirection); // normalize again just in case
36
51
  vec3 viewDirUv = normalize(u_transformDirectionViewToLocal * eyeDirection); // normalize again just in case
37
52
  vec3 viewPosUv = u_cameraPositionUv;
53
+ #if defined(SHAPE_BOX)
54
+ vec3 dInv = 1.0 / viewDirUv;
55
+ Ray viewRayUv = Ray(viewPosUv, viewDirUv, dInv);
56
+ #else
57
+ Ray viewRayUv = Ray(viewPosUv, viewDirUv);
58
+ #endif
38
59
 
39
60
  Intersections ix;
40
- vec2 entryExitT = intersectScene(screenCoord, viewPosUv, viewDirUv, ix);
61
+ RayShapeIntersection shapeIntersection = intersectScene(screenCoord, viewRayUv, ix);
41
62
 
42
63
  // Exit early if the scene was completely missed.
43
- if (entryExitT.x == NO_HIT) {
64
+ if (shapeIntersection.entry.w == NO_HIT) {
44
65
  discard;
45
66
  }
46
67
 
47
- float currT = entryExitT.x;
48
- float endT = entryExitT.y;
68
+ float currT = shapeIntersection.entry.w * RAY_SCALE;
69
+ float endT = shapeIntersection.exit.w;
49
70
  vec3 positionUv = viewPosUv + currT * viewDirUv;
50
- // TODO: is it possible for this to be out of bounds, and does it matter?
51
71
  vec3 positionUvShapeSpace = convertUvToShapeUvSpace(positionUv);
52
72
 
53
73
  // Traverse the tree from the start position
54
74
  TraversalData traversalData;
55
75
  SampleData sampleDatas[SAMPLE_COUNT];
56
76
  traverseOctreeFromBeginning(positionUvShapeSpace, traversalData, sampleDatas);
77
+ vec4 step = getStepSize(sampleDatas[0], viewRayUv, shapeIntersection);
57
78
 
58
- // TODO:
59
- // - jitter doesn't affect the first traversal?
60
- // - jitter is always > 0?
61
- // - jitter is only applied at one step?
62
79
  #if defined(JITTER)
63
80
  float noise = hash(screenCoord); // [0,1]
64
- currT += noise * traversalData.stepT;
65
- positionUv += noise * traversalData.stepT * viewDirUv;
81
+ currT += noise * step.w;
82
+ positionUv += noise * step.w * viewDirUv;
66
83
  #endif
67
84
 
68
85
  FragmentInput fragmentInput;
@@ -83,7 +100,8 @@ void main()
83
100
  fragmentInput.voxel.positionUvLocal = sampleDatas[0].tileUv;
84
101
  fragmentInput.voxel.viewDirUv = viewDirUv;
85
102
  fragmentInput.voxel.viewDirWorld = viewDirWorld;
86
- fragmentInput.voxel.travelDistance = traversalData.stepT;
103
+ fragmentInput.voxel.surfaceNormal = step.xyz;
104
+ fragmentInput.voxel.travelDistance = step.w;
87
105
 
88
106
  // Run the custom shader
89
107
  czm_modelMaterial materialOutput;
@@ -103,36 +121,38 @@ void main()
103
121
  break;
104
122
  }
105
123
 
106
- if (traversalData.stepT == 0.0) {
107
- // Shape is infinitely thin, no need to traverse further
108
- break;
124
+ if (step.w == 0.0) {
125
+ // Shape is infinitely thin. The ray may have hit the edge of a
126
+ // foreground voxel. Step ahead slightly to check for more voxels
127
+ step.w == 0.00001;
109
128
  }
110
129
 
111
130
  // Keep raymarching
112
- currT += traversalData.stepT;
113
- positionUv += traversalData.stepT * viewDirUv;
131
+ currT += step.w;
132
+ positionUv += step.w * viewDirUv;
114
133
 
115
134
  // Check if there's more intersections.
116
135
  if (currT > endT) {
117
136
  #if (INTERSECTION_COUNT == 1)
118
137
  break;
119
138
  #else
120
- vec2 entryExitT = nextIntersection(ix);
121
- if (entryExitT.x == NO_HIT) {
139
+ shapeIntersection = nextIntersection(ix);
140
+ if (shapeIntersection.entry.w == NO_HIT) {
122
141
  break;
123
142
  } else {
124
143
  // Found another intersection. Resume raymarching there
125
- currT = entryExitT.x;
126
- endT = entryExitT.y;
144
+ currT = shapeIntersection.entry.w * RAY_SCALE;
145
+ endT = shapeIntersection.exit.w;
127
146
  positionUv = viewPosUv + currT * viewDirUv;
128
147
  }
129
148
  #endif
130
149
  }
131
150
 
132
151
  // Traverse the tree from the current ray position.
133
- // This is similar to traverseOctree but is faster when the ray is in the same tile as the previous step.
152
+ // This is similar to traverseOctreeFromBeginning but is faster when the ray is in the same tile as the previous step.
134
153
  positionUvShapeSpace = convertUvToShapeUvSpace(positionUv);
135
154
  traverseOctreeFromExisting(positionUvShapeSpace, traversalData, sampleDatas);
155
+ step = getStepSize(sampleDatas[0], viewRayUv, shapeIntersection);
136
156
  }
137
157
 
138
158
  // Convert the alpha from [0,ALPHA_ACCUM_MAX] to [0,1]
@@ -143,8 +163,8 @@ void main()
143
163
  if (colorAccum.a == 0.0) {
144
164
  discard;
145
165
  }
146
- gl_FragColor = u_pickColor;
166
+ out_FragColor = u_pickColor;
147
167
  #else
148
- gl_FragColor = colorAccum;
168
+ out_FragColor = colorAccum;
149
169
  #endif
150
170
  }