@cesium/engine 1.0.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (472) hide show
  1. package/Build/Workers/{AttributeCompression-4589338a.js → AttributeCompression-b646d393.js} +1 -1
  2. package/Build/Workers/{AxisAlignedBoundingBox-bfb1234f.js → AxisAlignedBoundingBox-47525601.js} +1 -1
  3. package/Build/Workers/{BoundingRectangle-7ffc2153.js → BoundingRectangle-93b263ac.js} +1 -1
  4. package/Build/Workers/{BoxGeometry-93f344a3.js → BoxGeometry-8c4b4125.js} +1 -1
  5. package/Build/Workers/{Color-0c5aaf47.js → Color-52c60ed7.js} +1 -1
  6. package/Build/Workers/{CoplanarPolygonGeometryLibrary-6597982a.js → CoplanarPolygonGeometryLibrary-33c4c1f8.js} +1 -1
  7. package/Build/Workers/{CorridorGeometryLibrary-2119580e.js → CorridorGeometryLibrary-5039cd8e.js} +1 -1
  8. package/Build/Workers/{CylinderGeometry-f9503c6d.js → CylinderGeometry-3ac44974.js} +1 -1
  9. package/Build/Workers/{EllipseGeometry-fedf72d5.js → EllipseGeometry-a9c9b3be.js} +1 -1
  10. package/Build/Workers/{EllipseGeometryLibrary-4ea68687.js → EllipseGeometryLibrary-855d4681.js} +1 -1
  11. package/Build/Workers/{EllipseOutlineGeometry-e2ae6a35.js → EllipseOutlineGeometry-017a5929.js} +1 -1
  12. package/Build/Workers/{EllipsoidGeodesic-16de63ea.js → EllipsoidGeodesic-98c62a56.js} +1 -1
  13. package/Build/Workers/{EllipsoidGeometry-95c0330e.js → EllipsoidGeometry-826e7bce.js} +1 -1
  14. package/Build/Workers/{EllipsoidOutlineGeometry-d6d2ceec.js → EllipsoidOutlineGeometry-784dcdb5.js} +1 -1
  15. package/Build/Workers/{EllipsoidRhumbLine-ae5e65e0.js → EllipsoidRhumbLine-19756602.js} +1 -1
  16. package/Build/Workers/{EllipsoidTangentPlane-bfc674bf.js → EllipsoidTangentPlane-ed9443a1.js} +1 -1
  17. package/Build/Workers/{EncodedCartesian3-f473ea18.js → EncodedCartesian3-81f70735.js} +1 -1
  18. package/Build/Workers/{FrustumGeometry-3bf2e4eb.js → FrustumGeometry-9f1ee4d8.js} +1 -1
  19. package/Build/Workers/{GeometryAttribute-df5f473e.js → GeometryAttribute-334718f8.js} +1 -1
  20. package/Build/Workers/{GeometryInstance-aa75b4cf.js → GeometryInstance-451dc1cd.js} +1 -1
  21. package/Build/Workers/{GeometryPipeline-f0e46c42.js → GeometryPipeline-8fb0db69.js} +1 -1
  22. package/Build/Workers/{IntersectionTests-9de29d51.js → IntersectionTests-27d49265.js} +1 -1
  23. package/Build/Workers/{Matrix2-ce637455.js → Matrix2-13178034.js} +4 -2
  24. package/Build/Workers/{Matrix3-4f4df527.js → Matrix3-315394f6.js} +2 -1
  25. package/Build/Workers/{OrientedBoundingBox-d3ff3d4d.js → OrientedBoundingBox-79ee7cbb.js} +5 -5
  26. package/Build/Workers/{Plane-b81241c2.js → Plane-900aa728.js} +1 -1
  27. package/Build/Workers/{PolygonGeometryLibrary-6f4937bb.js → PolygonGeometryLibrary-6b5a29e9.js} +1 -1
  28. package/Build/Workers/PolygonPipeline-21668b3f.js +1345 -0
  29. package/Build/Workers/{PolylinePipeline-2e2b015c.js → PolylinePipeline-5e2e1b21.js} +1 -1
  30. package/Build/Workers/{PolylineVolumeGeometryLibrary-7ee1d449.js → PolylineVolumeGeometryLibrary-97f0b94e.js} +1 -1
  31. package/Build/Workers/{PrimitivePipeline-a9b7aae0.js → PrimitivePipeline-5640850a.js} +1 -1
  32. package/Build/Workers/{RectangleGeometryLibrary-9aa6c8f6.js → RectangleGeometryLibrary-d5457f7b.js} +1 -1
  33. package/Build/Workers/{TerrainEncoding-b52dcfc5.js → TerrainEncoding-bfdf2021.js} +1 -1
  34. package/Build/Workers/{Transforms-2f755df8.js → Transforms-a05e5e6e.js} +114 -83
  35. package/Build/Workers/{WallGeometryLibrary-ab19a93d.js → WallGeometryLibrary-6db0ebb6.js} +1 -1
  36. package/Build/Workers/{WebMercatorProjection-9f25de49.js → WebMercatorProjection-13a90d41.js} +1 -1
  37. package/Build/Workers/cesiumWorkerBootstrapper.js +92 -2
  38. package/Build/Workers/combineGeometry.js +1 -1
  39. package/Build/Workers/createBoxGeometry.js +1 -1
  40. package/Build/Workers/createBoxOutlineGeometry.js +1 -1
  41. package/Build/Workers/createCircleGeometry.js +1 -1
  42. package/Build/Workers/createCircleOutlineGeometry.js +1 -1
  43. package/Build/Workers/createCoplanarPolygonGeometry.js +1 -1
  44. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +1 -1
  45. package/Build/Workers/createCorridorGeometry.js +1 -1
  46. package/Build/Workers/createCorridorOutlineGeometry.js +1 -1
  47. package/Build/Workers/createCylinderGeometry.js +1 -1
  48. package/Build/Workers/createCylinderOutlineGeometry.js +1 -1
  49. package/Build/Workers/createEllipseGeometry.js +1 -1
  50. package/Build/Workers/createEllipseOutlineGeometry.js +1 -1
  51. package/Build/Workers/createEllipsoidGeometry.js +1 -1
  52. package/Build/Workers/createEllipsoidOutlineGeometry.js +1 -1
  53. package/Build/Workers/createFrustumGeometry.js +1 -1
  54. package/Build/Workers/createFrustumOutlineGeometry.js +1 -1
  55. package/Build/Workers/createGeometry.js +1 -1
  56. package/Build/Workers/createGroundPolylineGeometry.js +1 -1
  57. package/Build/Workers/createPlaneGeometry.js +1 -1
  58. package/Build/Workers/createPlaneOutlineGeometry.js +1 -1
  59. package/Build/Workers/createPolygonGeometry.js +1 -1
  60. package/Build/Workers/createPolygonOutlineGeometry.js +1 -1
  61. package/Build/Workers/createPolylineGeometry.js +1 -1
  62. package/Build/Workers/createPolylineVolumeGeometry.js +1 -1
  63. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +1 -1
  64. package/Build/Workers/createRectangleGeometry.js +1 -1
  65. package/Build/Workers/createRectangleOutlineGeometry.js +1 -1
  66. package/Build/Workers/createSimplePolylineGeometry.js +1 -1
  67. package/Build/Workers/createSphereGeometry.js +1 -1
  68. package/Build/Workers/createSphereOutlineGeometry.js +1 -1
  69. package/Build/Workers/createVectorTileClampedPolylines.js +1 -1
  70. package/Build/Workers/createVectorTileGeometries.js +1 -1
  71. package/Build/Workers/createVectorTilePoints.js +1 -1
  72. package/Build/Workers/createVectorTilePolygons.js +1 -1
  73. package/Build/Workers/createVectorTilePolylines.js +1 -1
  74. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +1 -1
  75. package/Build/Workers/createVerticesFromHeightmap.js +7 -3
  76. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +1 -1
  77. package/Build/Workers/createWallGeometry.js +1 -1
  78. package/Build/Workers/createWallOutlineGeometry.js +1 -1
  79. package/Build/Workers/decodeDraco.js +9 -1
  80. package/Build/Workers/decodeI3S.js +1 -1
  81. package/Build/Workers/package.js +25 -1
  82. package/Build/Workers/transcodeKTX2.js +22 -2
  83. package/Build/Workers/transferTypedArrayTest.js +25 -1
  84. package/Build/Workers/upsampleQuantizedTerrainMesh.js +1 -1
  85. package/README.md +14 -16
  86. package/Source/Core/EarthOrientationParameters.js +67 -63
  87. package/Source/Core/FeatureDetection.js +18 -0
  88. package/Source/Core/Ion.js +1 -2
  89. package/Source/Core/Matrix2.js +2 -1
  90. package/Source/Core/Matrix3.js +2 -1
  91. package/Source/Core/Matrix4.js +1 -0
  92. package/Source/Core/OrientedBoundingBox.js +4 -4
  93. package/Source/Core/PixelFormat.js +22 -2
  94. package/Source/Core/S2Cell.js +3 -3
  95. package/Source/Core/Transforms.js +3 -7
  96. package/Source/Core/sampleTerrain.js +5 -0
  97. package/Source/DataSources/GpxDataSource.js +4 -6
  98. package/Source/DataSources/KmlDataSource.js +3 -5
  99. package/Source/Renderer/AutomaticUniforms.js +3 -3
  100. package/Source/Renderer/Context.js +20 -12
  101. package/Source/Renderer/Pass.js +3 -2
  102. package/Source/Renderer/ShaderBuilder.js +13 -12
  103. package/Source/Renderer/ShaderSource.js +31 -26
  104. package/Source/Renderer/demodernizeShader.js +76 -0
  105. package/Source/Scene/AutoExposure.js +5 -5
  106. package/Source/Scene/BatchTable.js +5 -5
  107. package/Source/Scene/BillboardCollection.js +2 -2
  108. package/Source/Scene/BingMapsImageryProvider.js +1 -1
  109. package/Source/Scene/Cesium3DTile.js +8 -2
  110. package/Source/Scene/Cesium3DTileBatchTable.js +28 -28
  111. package/Source/Scene/Cesium3DTileContentType.js +19 -0
  112. package/Source/Scene/Cesium3DTilesVoxelProvider.js +494 -0
  113. package/Source/Scene/Cesium3DTileset.js +6 -1
  114. package/Source/Scene/Cesium3DTilesetMetadata.js +2 -2
  115. package/Source/Scene/ClassificationPrimitive.js +3 -8
  116. package/Source/Scene/ContentMetadata.js +2 -2
  117. package/Source/Scene/DebugAppearance.js +7 -9
  118. package/Source/Scene/DebugInspector.js +5 -5
  119. package/Source/Scene/DepthPlane.js +0 -6
  120. package/Source/Scene/DerivedCommand.js +15 -22
  121. package/Source/Scene/EllipsoidPrimitive.js +0 -7
  122. package/Source/Scene/Expression.js +1 -1
  123. package/Source/Scene/Globe.js +10 -0
  124. package/Source/Scene/GlobeSurfaceTileProvider.js +7 -0
  125. package/Source/Scene/GlobeTranslucencyState.js +6 -6
  126. package/Source/Scene/GltfImageLoader.js +1 -1
  127. package/Source/Scene/GltfVertexBufferLoader.js +10 -2
  128. package/Source/Scene/GroundPolylinePrimitive.js +2 -4
  129. package/Source/Scene/GroupMetadata.js +2 -2
  130. package/Source/Scene/ImplicitMetadataView.js +2 -2
  131. package/Source/Scene/ImplicitSubtreeCache.js +127 -0
  132. package/Source/Scene/ImplicitSubtreeMetadata.js +2 -2
  133. package/Source/Scene/ImplicitTileset.js +3 -2
  134. package/Source/Scene/InvertClassification.js +9 -10
  135. package/Source/Scene/KeyframeNode.js +47 -0
  136. package/Source/Scene/Material.js +6 -6
  137. package/Source/Scene/Megatexture.js +490 -0
  138. package/Source/Scene/MetadataClass.js +60 -25
  139. package/Source/Scene/MetadataClassProperty.js +132 -68
  140. package/Source/Scene/MetadataComponentType.js +78 -57
  141. package/Source/Scene/MetadataEnum.js +59 -23
  142. package/Source/Scene/MetadataEnumValue.js +49 -15
  143. package/Source/Scene/MetadataSchema.js +53 -24
  144. package/Source/Scene/MetadataSchemaLoader.js +2 -2
  145. package/Source/Scene/MetadataSemantic.js +8 -0
  146. package/Source/Scene/MetadataTableProperty.js +2 -2
  147. package/Source/Scene/MetadataType.js +6 -14
  148. package/Source/Scene/Model/CustomShader.js +1 -1
  149. package/Source/Scene/Model/FeatureIdPipelineStage.js +4 -4
  150. package/Source/Scene/Model/GeoJsonLoader.js +1 -1
  151. package/Source/Scene/Model/LightingModel.js +1 -1
  152. package/Source/Scene/Model/MetadataPipelineStage.js +1 -1
  153. package/Source/Scene/Model/Model.js +2 -3
  154. package/Source/Scene/Model/PickingPipelineStage.js +1 -1
  155. package/Source/Scene/Model/buildDrawCommand.js +19 -11
  156. package/Source/Scene/OIT.js +211 -119
  157. package/Source/Scene/PickDepth.js +2 -2
  158. package/Source/Scene/PointCloud.js +12 -12
  159. package/Source/Scene/PointCloudEyeDomeLighting.js +9 -4
  160. package/Source/Scene/PolylineCollection.js +2 -7
  161. package/Source/Scene/PolylineMaterialAppearance.js +2 -3
  162. package/Source/Scene/PostProcessStage.js +13 -13
  163. package/Source/Scene/PostProcessStageLibrary.js +3 -3
  164. package/Source/Scene/Primitive.js +22 -31
  165. package/Source/Scene/PropertyAttribute.js +2 -2
  166. package/Source/Scene/PropertyAttributeProperty.js +2 -2
  167. package/Source/Scene/PropertyTable.js +2 -2
  168. package/Source/Scene/PropertyTexture.js +2 -2
  169. package/Source/Scene/PropertyTextureProperty.js +2 -2
  170. package/Source/Scene/ResourceCache.js +9 -1
  171. package/Source/Scene/ResourceCacheKey.js +9 -1
  172. package/Source/Scene/Scene.js +17 -0
  173. package/Source/Scene/ShadowMap.js +7 -7
  174. package/Source/Scene/ShadowMapShader.js +9 -9
  175. package/Source/Scene/ShadowVolumeAppearance.js +1 -1
  176. package/Source/Scene/SpatialNode.js +375 -0
  177. package/Source/Scene/StructuralMetadata.js +2 -2
  178. package/Source/Scene/TextureAtlas.js +5 -3
  179. package/Source/Scene/TileMetadata.js +2 -2
  180. package/Source/Scene/TilesetMetadata.js +2 -2
  181. package/Source/Scene/Vector3DTilePolylines.js +1 -1
  182. package/Source/Scene/Vector3DTilePrimitive.js +2 -2
  183. package/Source/Scene/VoxelBoxShape.js +527 -0
  184. package/Source/Scene/VoxelContent.js +169 -0
  185. package/Source/Scene/VoxelCylinderShape.js +937 -0
  186. package/Source/Scene/VoxelEllipsoidShape.js +945 -0
  187. package/Source/Scene/VoxelPrimitive.js +1919 -0
  188. package/Source/Scene/VoxelProvider.js +255 -0
  189. package/Source/Scene/VoxelRenderResources.js +224 -0
  190. package/Source/Scene/VoxelShape.js +152 -0
  191. package/Source/Scene/VoxelShapeType.js +105 -0
  192. package/Source/Scene/VoxelTraversal.js +1144 -0
  193. package/Source/Scene/buildVoxelDrawCommands.js +116 -0
  194. package/Source/Scene/computeFlyToLocationForRectangle.js +10 -1
  195. package/Source/Scene/createElevationBandMaterial.js +10 -15
  196. package/Source/Scene/getClipAndStyleCode.js +1 -1
  197. package/Source/Scene/getClippingFunction.js +3 -3
  198. package/Source/Scene/parseBatchTable.js +18 -2
  199. package/Source/Scene/preprocess3DTileContent.js +8 -0
  200. package/Source/Scene/processVoxelProperties.js +455 -0
  201. package/Source/Shaders/AdjustTranslucentFS.glsl +9 -6
  202. package/Source/Shaders/AdjustTranslucentFS.js +9 -6
  203. package/Source/Shaders/Appearances/AllMaterialAppearanceFS.glsl +7 -7
  204. package/Source/Shaders/Appearances/AllMaterialAppearanceFS.js +7 -7
  205. package/Source/Shaders/Appearances/AllMaterialAppearanceVS.glsl +12 -12
  206. package/Source/Shaders/Appearances/AllMaterialAppearanceVS.js +12 -12
  207. package/Source/Shaders/Appearances/BasicMaterialAppearanceFS.glsl +4 -4
  208. package/Source/Shaders/Appearances/BasicMaterialAppearanceFS.js +4 -4
  209. package/Source/Shaders/Appearances/BasicMaterialAppearanceVS.glsl +6 -6
  210. package/Source/Shaders/Appearances/BasicMaterialAppearanceVS.js +6 -6
  211. package/Source/Shaders/Appearances/EllipsoidSurfaceAppearanceFS.glsl +5 -5
  212. package/Source/Shaders/Appearances/EllipsoidSurfaceAppearanceFS.js +5 -5
  213. package/Source/Shaders/Appearances/EllipsoidSurfaceAppearanceVS.glsl +7 -7
  214. package/Source/Shaders/Appearances/EllipsoidSurfaceAppearanceVS.js +7 -7
  215. package/Source/Shaders/Appearances/PerInstanceColorAppearanceFS.glsl +4 -4
  216. package/Source/Shaders/Appearances/PerInstanceColorAppearanceFS.js +4 -4
  217. package/Source/Shaders/Appearances/PerInstanceColorAppearanceVS.glsl +8 -8
  218. package/Source/Shaders/Appearances/PerInstanceColorAppearanceVS.js +8 -8
  219. package/Source/Shaders/Appearances/PerInstanceFlatColorAppearanceFS.glsl +2 -2
  220. package/Source/Shaders/Appearances/PerInstanceFlatColorAppearanceFS.js +2 -2
  221. package/Source/Shaders/Appearances/PerInstanceFlatColorAppearanceVS.glsl +5 -5
  222. package/Source/Shaders/Appearances/PerInstanceFlatColorAppearanceVS.js +5 -5
  223. package/Source/Shaders/Appearances/PolylineColorAppearanceVS.glsl +10 -10
  224. package/Source/Shaders/Appearances/PolylineColorAppearanceVS.js +10 -10
  225. package/Source/Shaders/Appearances/PolylineMaterialAppearanceVS.glsl +12 -12
  226. package/Source/Shaders/Appearances/PolylineMaterialAppearanceVS.js +12 -12
  227. package/Source/Shaders/Appearances/TexturedMaterialAppearanceFS.glsl +5 -5
  228. package/Source/Shaders/Appearances/TexturedMaterialAppearanceFS.js +5 -5
  229. package/Source/Shaders/Appearances/TexturedMaterialAppearanceVS.glsl +8 -8
  230. package/Source/Shaders/Appearances/TexturedMaterialAppearanceVS.js +8 -8
  231. package/Source/Shaders/BillboardCollectionFS.glsl +15 -15
  232. package/Source/Shaders/BillboardCollectionFS.js +15 -15
  233. package/Source/Shaders/BillboardCollectionVS.glsl +24 -24
  234. package/Source/Shaders/BillboardCollectionVS.js +24 -24
  235. package/Source/Shaders/BrdfLutGeneratorFS.glsl +2 -2
  236. package/Source/Shaders/BrdfLutGeneratorFS.js +2 -2
  237. package/Source/Shaders/Builtin/Constants/passOverlay.glsl +1 -1
  238. package/Source/Shaders/Builtin/Constants/passOverlay.js +1 -1
  239. package/Source/Shaders/Builtin/Constants/passVoxels.glsl +9 -0
  240. package/Source/Shaders/Builtin/Constants/passVoxels.js +11 -0
  241. package/Source/Shaders/Builtin/CzmBuiltins.js +19 -15
  242. package/Source/Shaders/Builtin/Functions/depthClamp.glsl +3 -3
  243. package/Source/Shaders/Builtin/Functions/depthClamp.js +3 -3
  244. package/Source/Shaders/Builtin/Functions/getWaterNoise.glsl +4 -4
  245. package/Source/Shaders/Builtin/Functions/getWaterNoise.js +4 -4
  246. package/Source/Shaders/Builtin/Functions/phong.glsl +1 -1
  247. package/Source/Shaders/Builtin/Functions/phong.js +1 -1
  248. package/Source/Shaders/Builtin/Functions/readDepth.glsl +1 -1
  249. package/Source/Shaders/Builtin/Functions/readDepth.js +1 -1
  250. package/Source/Shaders/Builtin/Functions/sampleOctahedralProjection.glsl +5 -5
  251. package/Source/Shaders/Builtin/Functions/sampleOctahedralProjection.js +5 -5
  252. package/Source/Shaders/Builtin/Functions/shadowDepthCompare.glsl +3 -3
  253. package/Source/Shaders/Builtin/Functions/shadowDepthCompare.js +3 -3
  254. package/Source/Shaders/Builtin/Functions/tangentToEyeSpaceMatrix.glsl +1 -1
  255. package/Source/Shaders/Builtin/Functions/tangentToEyeSpaceMatrix.js +1 -1
  256. package/Source/Shaders/Builtin/Functions/textureCube.glsl +17 -0
  257. package/Source/Shaders/Builtin/Functions/textureCube.js +18 -0
  258. package/Source/Shaders/Builtin/Functions/translateRelativeToEye.glsl +2 -2
  259. package/Source/Shaders/Builtin/Functions/translateRelativeToEye.js +2 -2
  260. package/Source/Shaders/Builtin/Functions/vertexLogDepth.glsl +2 -2
  261. package/Source/Shaders/Builtin/Functions/vertexLogDepth.js +2 -2
  262. package/Source/Shaders/Builtin/Functions/windowToEyeCoordinates.glsl +55 -43
  263. package/Source/Shaders/Builtin/Functions/windowToEyeCoordinates.js +55 -43
  264. package/Source/Shaders/Builtin/Functions/writeDepthClamp.glsl +5 -8
  265. package/Source/Shaders/Builtin/Functions/writeDepthClamp.js +5 -8
  266. package/Source/Shaders/Builtin/Functions/writeLogDepth.glsl +6 -6
  267. package/Source/Shaders/Builtin/Functions/writeLogDepth.js +6 -6
  268. package/Source/Shaders/CloudCollectionFS.glsl +18 -18
  269. package/Source/Shaders/CloudCollectionFS.js +18 -18
  270. package/Source/Shaders/CloudCollectionVS.glsl +11 -11
  271. package/Source/Shaders/CloudCollectionVS.js +11 -11
  272. package/Source/Shaders/CloudNoiseFS.glsl +5 -5
  273. package/Source/Shaders/CloudNoiseFS.js +5 -5
  274. package/Source/Shaders/CloudNoiseVS.glsl +2 -2
  275. package/Source/Shaders/CloudNoiseVS.js +2 -2
  276. package/Source/Shaders/CompareAndPackTranslucentDepth.glsl +4 -4
  277. package/Source/Shaders/CompareAndPackTranslucentDepth.js +4 -4
  278. package/Source/Shaders/CompositeOITFS.glsl +6 -6
  279. package/Source/Shaders/CompositeOITFS.js +6 -6
  280. package/Source/Shaders/DepthPlaneFS.glsl +2 -2
  281. package/Source/Shaders/DepthPlaneFS.js +2 -2
  282. package/Source/Shaders/DepthPlaneVS.glsl +2 -2
  283. package/Source/Shaders/DepthPlaneVS.js +2 -2
  284. package/Source/Shaders/EllipsoidFS.glsl +5 -13
  285. package/Source/Shaders/EllipsoidFS.js +6 -14
  286. package/Source/Shaders/EllipsoidVS.glsl +2 -2
  287. package/Source/Shaders/EllipsoidVS.js +2 -2
  288. package/Source/Shaders/FXAA3_11.glsl +4 -4
  289. package/Source/Shaders/FXAA3_11.js +4 -4
  290. package/Source/Shaders/GlobeFS.glsl +17 -16
  291. package/Source/Shaders/GlobeFS.js +17 -16
  292. package/Source/Shaders/GlobeVS.glsl +17 -17
  293. package/Source/Shaders/GlobeVS.js +17 -17
  294. package/Source/Shaders/Materials/AspectRampMaterial.glsl +1 -1
  295. package/Source/Shaders/Materials/AspectRampMaterial.js +1 -1
  296. package/Source/Shaders/Materials/BumpMapMaterial.glsl +3 -3
  297. package/Source/Shaders/Materials/BumpMapMaterial.js +3 -3
  298. package/Source/Shaders/Materials/ElevationBandMaterial.glsl +3 -3
  299. package/Source/Shaders/Materials/ElevationBandMaterial.js +3 -3
  300. package/Source/Shaders/Materials/ElevationContourMaterial.glsl +2 -1
  301. package/Source/Shaders/Materials/ElevationContourMaterial.js +2 -1
  302. package/Source/Shaders/Materials/ElevationRampMaterial.glsl +1 -1
  303. package/Source/Shaders/Materials/ElevationRampMaterial.js +1 -1
  304. package/Source/Shaders/Materials/GridMaterial.glsl +3 -2
  305. package/Source/Shaders/Materials/GridMaterial.js +3 -2
  306. package/Source/Shaders/Materials/NormalMapMaterial.glsl +1 -1
  307. package/Source/Shaders/Materials/NormalMapMaterial.js +1 -1
  308. package/Source/Shaders/Materials/PolylineArrowMaterial.glsl +3 -2
  309. package/Source/Shaders/Materials/PolylineArrowMaterial.js +3 -2
  310. package/Source/Shaders/Materials/PolylineDashMaterial.glsl +1 -1
  311. package/Source/Shaders/Materials/PolylineDashMaterial.js +1 -1
  312. package/Source/Shaders/Materials/PolylineOutlineMaterial.glsl +1 -1
  313. package/Source/Shaders/Materials/PolylineOutlineMaterial.js +1 -1
  314. package/Source/Shaders/Materials/SlopeRampMaterial.glsl +1 -1
  315. package/Source/Shaders/Materials/SlopeRampMaterial.js +1 -1
  316. package/Source/Shaders/Materials/Water.glsl +1 -1
  317. package/Source/Shaders/Materials/Water.js +1 -1
  318. package/Source/Shaders/Model/ImageBasedLightingStageFS.glsl +3 -3
  319. package/Source/Shaders/Model/ImageBasedLightingStageFS.js +3 -3
  320. package/Source/Shaders/Model/MaterialStageFS.glsl +10 -10
  321. package/Source/Shaders/Model/MaterialStageFS.js +10 -10
  322. package/Source/Shaders/Model/ModelClippingPlanesStageFS.glsl +3 -3
  323. package/Source/Shaders/Model/ModelClippingPlanesStageFS.js +3 -3
  324. package/Source/Shaders/Model/ModelFS.glsl +1 -1
  325. package/Source/Shaders/Model/ModelFS.js +1 -1
  326. package/Source/Shaders/Model/PrimitiveOutlineStageFS.glsl +3 -3
  327. package/Source/Shaders/Model/PrimitiveOutlineStageFS.js +3 -3
  328. package/Source/Shaders/Model/SelectedFeatureIdStageCommon.glsl +1 -1
  329. package/Source/Shaders/Model/SelectedFeatureIdStageCommon.js +1 -1
  330. package/Source/Shaders/OctahedralProjectionAtlasFS.glsl +8 -8
  331. package/Source/Shaders/OctahedralProjectionAtlasFS.js +8 -8
  332. package/Source/Shaders/OctahedralProjectionFS.glsl +4 -4
  333. package/Source/Shaders/OctahedralProjectionFS.js +4 -4
  334. package/Source/Shaders/OctahedralProjectionVS.glsl +3 -3
  335. package/Source/Shaders/OctahedralProjectionVS.js +3 -3
  336. package/Source/Shaders/PointPrimitiveCollectionFS.glsl +6 -6
  337. package/Source/Shaders/PointPrimitiveCollectionFS.js +6 -6
  338. package/Source/Shaders/PointPrimitiveCollectionVS.glsl +17 -14
  339. package/Source/Shaders/PointPrimitiveCollectionVS.js +17 -14
  340. package/Source/Shaders/PolylineFS.glsl +3 -3
  341. package/Source/Shaders/PolylineFS.js +3 -3
  342. package/Source/Shaders/PolylineShadowVolumeFS.glsl +12 -16
  343. package/Source/Shaders/PolylineShadowVolumeFS.js +12 -16
  344. package/Source/Shaders/PolylineShadowVolumeMorphFS.glsl +8 -8
  345. package/Source/Shaders/PolylineShadowVolumeMorphFS.js +8 -8
  346. package/Source/Shaders/PolylineShadowVolumeMorphVS.glsl +20 -20
  347. package/Source/Shaders/PolylineShadowVolumeMorphVS.js +20 -20
  348. package/Source/Shaders/PolylineShadowVolumeVS.glsl +20 -20
  349. package/Source/Shaders/PolylineShadowVolumeVS.js +20 -20
  350. package/Source/Shaders/PolylineVS.glsl +17 -17
  351. package/Source/Shaders/PolylineVS.js +17 -17
  352. package/Source/Shaders/PostProcessStages/AcesTonemappingStage.glsl +4 -4
  353. package/Source/Shaders/PostProcessStages/AcesTonemappingStage.js +4 -4
  354. package/Source/Shaders/PostProcessStages/AdditiveBlend.glsl +4 -4
  355. package/Source/Shaders/PostProcessStages/AdditiveBlend.js +4 -4
  356. package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.glsl +4 -4
  357. package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.js +4 -4
  358. package/Source/Shaders/PostProcessStages/AmbientOcclusionModulate.glsl +4 -4
  359. package/Source/Shaders/PostProcessStages/AmbientOcclusionModulate.js +4 -4
  360. package/Source/Shaders/PostProcessStages/BlackAndWhite.glsl +4 -4
  361. package/Source/Shaders/PostProcessStages/BlackAndWhite.js +4 -4
  362. package/Source/Shaders/PostProcessStages/BloomComposite.glsl +5 -5
  363. package/Source/Shaders/PostProcessStages/BloomComposite.js +5 -5
  364. package/Source/Shaders/PostProcessStages/BrightPass.glsl +3 -3
  365. package/Source/Shaders/PostProcessStages/BrightPass.js +3 -3
  366. package/Source/Shaders/PostProcessStages/Brightness.glsl +3 -3
  367. package/Source/Shaders/PostProcessStages/Brightness.js +3 -3
  368. package/Source/Shaders/PostProcessStages/CompositeTranslucentClassification.glsl +5 -5
  369. package/Source/Shaders/PostProcessStages/CompositeTranslucentClassification.js +5 -5
  370. package/Source/Shaders/PostProcessStages/ContrastBias.glsl +3 -3
  371. package/Source/Shaders/PostProcessStages/ContrastBias.js +3 -3
  372. package/Source/Shaders/PostProcessStages/DepthOfField.glsl +2 -2
  373. package/Source/Shaders/PostProcessStages/DepthOfField.js +2 -2
  374. package/Source/Shaders/PostProcessStages/DepthView.glsl +2 -2
  375. package/Source/Shaders/PostProcessStages/DepthView.js +2 -2
  376. package/Source/Shaders/PostProcessStages/DepthViewPacked.glsl +3 -3
  377. package/Source/Shaders/PostProcessStages/DepthViewPacked.js +3 -3
  378. package/Source/Shaders/PostProcessStages/EdgeDetection.glsl +7 -7
  379. package/Source/Shaders/PostProcessStages/EdgeDetection.js +7 -7
  380. package/Source/Shaders/PostProcessStages/FXAA.glsl +3 -3
  381. package/Source/Shaders/PostProcessStages/FXAA.js +3 -3
  382. package/Source/Shaders/PostProcessStages/FilmicTonemapping.glsl +4 -4
  383. package/Source/Shaders/PostProcessStages/FilmicTonemapping.js +4 -4
  384. package/Source/Shaders/PostProcessStages/GaussianBlur1D.glsl +5 -5
  385. package/Source/Shaders/PostProcessStages/GaussianBlur1D.js +5 -5
  386. package/Source/Shaders/PostProcessStages/LensFlare.glsl +13 -13
  387. package/Source/Shaders/PostProcessStages/LensFlare.js +13 -13
  388. package/Source/Shaders/PostProcessStages/ModifiedReinhardTonemapping.glsl +4 -4
  389. package/Source/Shaders/PostProcessStages/ModifiedReinhardTonemapping.js +4 -4
  390. package/Source/Shaders/PostProcessStages/NightVision.glsl +3 -3
  391. package/Source/Shaders/PostProcessStages/NightVision.js +3 -3
  392. package/Source/Shaders/PostProcessStages/PassThrough.glsl +2 -2
  393. package/Source/Shaders/PostProcessStages/PassThrough.js +2 -2
  394. package/Source/Shaders/PostProcessStages/PassThroughDepth.glsl +2 -2
  395. package/Source/Shaders/PostProcessStages/PassThroughDepth.js +2 -2
  396. package/Source/Shaders/PostProcessStages/PointCloudEyeDomeLighting.glsl +7 -9
  397. package/Source/Shaders/PostProcessStages/PointCloudEyeDomeLighting.js +8 -10
  398. package/Source/Shaders/PostProcessStages/ReinhardTonemapping.glsl +4 -4
  399. package/Source/Shaders/PostProcessStages/ReinhardTonemapping.js +4 -4
  400. package/Source/Shaders/PostProcessStages/Silhouette.glsl +4 -4
  401. package/Source/Shaders/PostProcessStages/Silhouette.js +4 -4
  402. package/Source/Shaders/ReprojectWebMercatorFS.glsl +2 -2
  403. package/Source/Shaders/ReprojectWebMercatorFS.js +2 -2
  404. package/Source/Shaders/ReprojectWebMercatorVS.glsl +3 -3
  405. package/Source/Shaders/ReprojectWebMercatorVS.js +3 -3
  406. package/Source/Shaders/ShadowVolumeAppearanceFS.glsl +19 -23
  407. package/Source/Shaders/ShadowVolumeAppearanceFS.js +20 -24
  408. package/Source/Shaders/ShadowVolumeAppearanceVS.glsl +12 -12
  409. package/Source/Shaders/ShadowVolumeAppearanceVS.js +12 -12
  410. package/Source/Shaders/ShadowVolumeFS.glsl +2 -6
  411. package/Source/Shaders/ShadowVolumeFS.js +3 -7
  412. package/Source/Shaders/SkyAtmosphereFS.glsl +6 -6
  413. package/Source/Shaders/SkyAtmosphereFS.js +6 -6
  414. package/Source/Shaders/SkyAtmosphereVS.glsl +6 -6
  415. package/Source/Shaders/SkyAtmosphereVS.js +6 -6
  416. package/Source/Shaders/SkyBoxFS.glsl +3 -3
  417. package/Source/Shaders/SkyBoxFS.js +3 -3
  418. package/Source/Shaders/SkyBoxVS.glsl +2 -2
  419. package/Source/Shaders/SkyBoxVS.js +2 -2
  420. package/Source/Shaders/SunFS.glsl +3 -3
  421. package/Source/Shaders/SunFS.js +3 -3
  422. package/Source/Shaders/SunTextureFS.glsl +2 -2
  423. package/Source/Shaders/SunTextureFS.js +2 -2
  424. package/Source/Shaders/SunVS.glsl +2 -2
  425. package/Source/Shaders/SunVS.js +2 -2
  426. package/Source/Shaders/Vector3DTileClampedPolylinesFS.glsl +9 -13
  427. package/Source/Shaders/Vector3DTileClampedPolylinesFS.js +9 -13
  428. package/Source/Shaders/Vector3DTileClampedPolylinesVS.glsl +12 -12
  429. package/Source/Shaders/Vector3DTileClampedPolylinesVS.js +12 -12
  430. package/Source/Shaders/Vector3DTilePolylinesVS.glsl +5 -5
  431. package/Source/Shaders/Vector3DTilePolylinesVS.js +5 -5
  432. package/Source/Shaders/VectorTileVS.glsl +2 -2
  433. package/Source/Shaders/VectorTileVS.js +2 -2
  434. package/Source/Shaders/ViewportQuadFS.glsl +2 -2
  435. package/Source/Shaders/ViewportQuadFS.js +2 -2
  436. package/Source/Shaders/ViewportQuadVS.glsl +3 -3
  437. package/Source/Shaders/ViewportQuadVS.js +3 -3
  438. package/Source/Shaders/Voxels/IntersectBox.glsl +79 -0
  439. package/Source/Shaders/Voxels/IntersectBox.js +81 -0
  440. package/Source/Shaders/Voxels/IntersectClippingPlanes.glsl +70 -0
  441. package/Source/Shaders/Voxels/IntersectClippingPlanes.js +72 -0
  442. package/Source/Shaders/Voxels/IntersectCylinder.glsl +273 -0
  443. package/Source/Shaders/Voxels/IntersectCylinder.js +275 -0
  444. package/Source/Shaders/Voxels/IntersectDepth.glsl +23 -0
  445. package/Source/Shaders/Voxels/IntersectDepth.js +25 -0
  446. package/Source/Shaders/Voxels/IntersectEllipsoid.glsl +347 -0
  447. package/Source/Shaders/Voxels/IntersectEllipsoid.js +349 -0
  448. package/Source/Shaders/Voxels/Intersection.glsl +54 -0
  449. package/Source/Shaders/Voxels/Intersection.js +56 -0
  450. package/Source/Shaders/Voxels/IntersectionUtils.glsl +151 -0
  451. package/Source/Shaders/Voxels/IntersectionUtils.js +153 -0
  452. package/Source/Shaders/Voxels/Megatexture.glsl +136 -0
  453. package/Source/Shaders/Voxels/Megatexture.js +138 -0
  454. package/Source/Shaders/Voxels/Octree.glsl +221 -0
  455. package/Source/Shaders/Voxels/Octree.js +223 -0
  456. package/Source/Shaders/Voxels/VoxelFS.glsl +150 -0
  457. package/Source/Shaders/Voxels/VoxelFS.js +152 -0
  458. package/Source/Shaders/Voxels/VoxelVS.glsl +11 -0
  459. package/Source/Shaders/Voxels/VoxelVS.js +13 -0
  460. package/Source/Shaders/Voxels/convertUvToBox.glsl +16 -0
  461. package/Source/Shaders/Voxels/convertUvToBox.js +18 -0
  462. package/Source/Shaders/Voxels/convertUvToCylinder.glsl +75 -0
  463. package/Source/Shaders/Voxels/convertUvToCylinder.js +77 -0
  464. package/Source/Shaders/Voxels/convertUvToEllipsoid.glsl +130 -0
  465. package/Source/Shaders/Voxels/convertUvToEllipsoid.js +132 -0
  466. package/Source/ThirdParty/Workers/z-worker-pako.js +0 -0
  467. package/Source/WorkersES6/decodeDraco.js +9 -1
  468. package/index.d.ts +3148 -2297
  469. package/index.js +1118 -1085
  470. package/package.json +3 -4
  471. package/Build/Workers/PolygonPipeline-774a8aaf.js +0 -1341
  472. package/Source/Renderer/modernizeShader.js +0 -242
@@ -40,7 +40,7 @@ import PostProcessStageSampleMode from "./PostProcessStageSampleMode.js";
40
40
  *
41
41
  * @exception {DeveloperError} options.textureScale must be greater than 0.0 and less than or equal to 1.0.
42
42
  * @exception {DeveloperError} options.pixelFormat must be a color format.
43
- * @exception {DeveloperError} When options.pixelDatatype is FLOAT, this WebGL implementation must support the OES_texture_float extension. Check context.floatingPointTexture.
43
+ * @exception {DeveloperError} When options.pixelDatatype is FLOAT, this WebGL implementation must support floating point textures. Check context.floatingPointTexture.
44
44
  *
45
45
  * @see PostProcessStageComposite
46
46
  *
@@ -48,12 +48,12 @@ import PostProcessStageSampleMode from "./PostProcessStageSampleMode.js";
48
48
  * // Simple stage to change the color
49
49
  * const fs =`
50
50
  * uniform sampler2D colorTexture;
51
- * varying vec2 v_textureCoordinates;
51
+ * in vec2 v_textureCoordinates;
52
52
  * uniform float scale;
53
53
  * uniform vec3 offset;
54
54
  * void main() {
55
- * vec4 color = texture2D(colorTexture, v_textureCoordinates);
56
- * gl_FragColor = vec4(color.rgb * scale + offset, 1.0);
55
+ * vec4 color = texture(colorTexture, v_textureCoordinates);
56
+ * out_FragColor = vec4(color.rgb * scale + offset, 1.0);
57
57
  * }`;
58
58
  * scene.postProcessStages.add(new Cesium.PostProcessStage({
59
59
  * fragmentShader : fs,
@@ -70,15 +70,15 @@ import PostProcessStageSampleMode from "./PostProcessStageSampleMode.js";
70
70
  * // If czm_selected returns true, the current fragment belongs to geometry in the selected array.
71
71
  * const fs =`
72
72
  * uniform sampler2D colorTexture;
73
- * varying vec2 v_textureCoordinates;
73
+ * in vec2 v_textureCoordinates;
74
74
  * uniform vec4 highlight;
75
75
  * void main() {
76
- * vec4 color = texture2D(colorTexture, v_textureCoordinates);
76
+ * vec4 color = texture(colorTexture, v_textureCoordinates);
77
77
  * if (czm_selected()) {
78
78
  * vec3 highlighted = highlight.a * highlight.rgb + (1.0 - highlight.a) * color.rgb;
79
- * gl_FragColor = vec4(highlighted, 1.0);
79
+ * out_FragColor = vec4(highlighted, 1.0);
80
80
  * } else {
81
- * gl_FragColor = color;
81
+ * out_FragColor = color;
82
82
  * }
83
83
  * }`;
84
84
  * const stage = scene.postProcessStages.add(new Cesium.PostProcessStage({
@@ -364,7 +364,7 @@ Object.defineProperties(PostProcessStage.prototype, {
364
364
  * if (czm_selected(v_textureCoordinates)) {
365
365
  * // apply post-process stage
366
366
  * } else {
367
- * gl_FragColor = texture2D(colorTexture, v_textureCoordinates);
367
+ * out_FragColor = texture(colorTexture, v_textureCoordinates);
368
368
  * }
369
369
  * </code>
370
370
  * </p>
@@ -556,22 +556,22 @@ function createDrawCommand(stage, context) {
556
556
  if (defined(stage._selectedIdTexture)) {
557
557
  const width = stage._selectedIdTexture.width;
558
558
 
559
- fs = fs.replace(/varying\s+vec2\s+v_textureCoordinates;/g, "");
559
+ fs = fs.replace(/in\s+vec2\s+v_textureCoordinates;/g, "");
560
560
  fs =
561
561
  `${
562
562
  "#define CZM_SELECTED_FEATURE \n" +
563
563
  "uniform sampler2D czm_idTexture; \n" +
564
564
  "uniform sampler2D czm_selectedIdTexture; \n" +
565
565
  "uniform float czm_selectedIdTextureStep; \n" +
566
- "varying vec2 v_textureCoordinates; \n" +
566
+ "in vec2 v_textureCoordinates; \n" +
567
567
  "bool czm_selected(vec2 offset) \n" +
568
568
  "{ \n" +
569
569
  " bool selected = false;\n" +
570
- " vec4 id = texture2D(czm_idTexture, v_textureCoordinates + offset); \n" +
570
+ " vec4 id = texture(czm_idTexture, v_textureCoordinates + offset); \n" +
571
571
  " for (int i = 0; i < "
572
572
  }${width}; ++i) \n` +
573
573
  ` { \n` +
574
- ` vec4 selectedId = texture2D(czm_selectedIdTexture, vec2((float(i) + 0.5) * czm_selectedIdTextureStep, 0.5)); \n` +
574
+ ` vec4 selectedId = texture(czm_selectedIdTexture, vec2((float(i) + 0.5) * czm_selectedIdTextureStep, 0.5)); \n` +
575
575
  ` if (all(equal(id, selectedId))) \n` +
576
576
  ` { \n` +
577
577
  ` return true; \n` +
@@ -283,7 +283,7 @@ function getSilhouetteEdgeDetection(edgeDetectionStages) {
283
283
  for (let i = 0; i < edgeDetectionStages.length; ++i) {
284
284
  fsDecl += `uniform sampler2D edgeTexture${i}; \n`;
285
285
  fsLoop +=
286
- ` vec4 edge${i} = texture2D(edgeTexture${i}, v_textureCoordinates); \n` +
286
+ ` vec4 edge${i} = texture(edgeTexture${i}, v_textureCoordinates); \n` +
287
287
  ` if (edge${i}.a > 0.0) \n` +
288
288
  ` { \n` +
289
289
  ` color = edge${i}; \n` +
@@ -293,12 +293,12 @@ function getSilhouetteEdgeDetection(edgeDetectionStages) {
293
293
  }
294
294
 
295
295
  const fs =
296
- `${fsDecl}varying vec2 v_textureCoordinates; \n` +
296
+ `${fsDecl}in vec2 v_textureCoordinates; \n` +
297
297
  `void main() { \n` +
298
298
  ` vec4 color = vec4(0.0); \n` +
299
299
  ` for (int i = 0; i < ${edgeDetectionStages.length}; i++) \n` +
300
300
  ` { \n${fsLoop} } \n` +
301
- ` gl_FragColor = color; \n` +
301
+ ` out_FragColor = color; \n` +
302
302
  `} \n`;
303
303
 
304
304
  const edgeComposite = new PostProcessStage({
@@ -743,7 +743,7 @@ function cloneInstance(instance, geometry) {
743
743
  };
744
744
  }
745
745
 
746
- const positionRegex = /attribute\s+vec(?:3|4)\s+(.*)3DHigh;/g;
746
+ const positionRegex = /in\s+vec(?:3|4)\s+(.*)3DHigh;/g;
747
747
 
748
748
  Primitive._modifyShaderPosition = function (
749
749
  primitive,
@@ -771,8 +771,7 @@ Primitive._modifyShaderPosition = function (
771
771
  if (!defined(primitive.rtcCenter)) {
772
772
  // Use GPU RTE
773
773
  if (!scene3DOnly) {
774
- attributes +=
775
- `attribute vec3 ${name}2DHigh;\n` + `attribute vec3 ${name}2DLow;\n`;
774
+ attributes += `in vec3 ${name}2DHigh;\nin vec3 ${name}2DLow;\n`;
776
775
 
777
776
  computeFunctions +=
778
777
  `${functionName}\n` +
@@ -805,16 +804,16 @@ Primitive._modifyShaderPosition = function (
805
804
  } else {
806
805
  // Use RTC
807
806
  vertexShaderSource = vertexShaderSource.replace(
808
- /attribute\s+vec(?:3|4)\s+position3DHigh;/g,
807
+ /in\s+vec(?:3|4)\s+position3DHigh;/g,
809
808
  ""
810
809
  );
811
810
  vertexShaderSource = vertexShaderSource.replace(
812
- /attribute\s+vec(?:3|4)\s+position3DLow;/g,
811
+ /in\s+vec(?:3|4)\s+position3DLow;/g,
813
812
  ""
814
813
  );
815
814
 
816
815
  forwardDecl += "uniform mat4 u_modifiedModelView;\n";
817
- attributes += "attribute vec4 position;\n";
816
+ attributes += "in vec4 position;\n";
818
817
 
819
818
  computeFunctions +=
820
819
  `${functionName}\n` +
@@ -871,7 +870,7 @@ Primitive._updateColorAttribute = function (
871
870
  return vertexShaderSource;
872
871
  }
873
872
 
874
- if (vertexShaderSource.search(/attribute\s+vec4\s+color;/g) === -1) {
873
+ if (vertexShaderSource.search(/in\s+vec4\s+color;/g) === -1) {
875
874
  return vertexShaderSource;
876
875
  }
877
876
 
@@ -887,7 +886,7 @@ Primitive._updateColorAttribute = function (
887
886
  //>>includeEnd('debug');
888
887
 
889
888
  let modifiedVS = vertexShaderSource;
890
- modifiedVS = modifiedVS.replace(/attribute\s+vec4\s+color;/g, "");
889
+ modifiedVS = modifiedVS.replace(/in\s+vec4\s+color;/g, "");
891
890
  if (!isDepthFail) {
892
891
  modifiedVS = modifiedVS.replace(
893
892
  /(\b)color(\b)/g,
@@ -905,7 +904,7 @@ Primitive._updateColorAttribute = function (
905
904
  function appendPickToVertexShader(source) {
906
905
  const renamedVS = ShaderSource.replaceMain(source, "czm_non_pick_main");
907
906
  const pickMain =
908
- "varying vec4 v_pickColor; \n" +
907
+ "out vec4 v_pickColor; \n" +
909
908
  "void main() \n" +
910
909
  "{ \n" +
911
910
  " czm_non_pick_main(); \n" +
@@ -916,11 +915,11 @@ function appendPickToVertexShader(source) {
916
915
  }
917
916
 
918
917
  function appendPickToFragmentShader(source) {
919
- return `varying vec4 v_pickColor;\n${source}`;
918
+ return `in vec4 v_pickColor;\n${source}`;
920
919
  }
921
920
 
922
921
  Primitive._updatePickColorAttribute = function (source) {
923
- let vsPick = source.replace(/attribute\s+vec4\s+pickColor;/g, "");
922
+ let vsPick = source.replace(/in\s+vec4\s+pickColor;/g, "");
924
923
  vsPick = vsPick.replace(
925
924
  /(\b)pickColor(\b)/g,
926
925
  "$1czm_batchTable_pickColor(batchId)$2"
@@ -933,10 +932,10 @@ Primitive._appendOffsetToShader = function (primitive, vertexShaderSource) {
933
932
  return vertexShaderSource;
934
933
  }
935
934
 
936
- let attr = "attribute float batchId;\n";
937
- attr += "attribute float applyOffset;";
935
+ let attr = "in float batchId;\n";
936
+ attr += "in float applyOffset;";
938
937
  let modifiedShader = vertexShaderSource.replace(
939
- /attribute\s+float\s+batchId;/g,
938
+ /in\s+float\s+batchId;/g,
940
939
  attr
941
940
  );
942
941
 
@@ -1033,17 +1032,16 @@ function modifyForEncodedNormals(primitive, vertexShaderSource) {
1033
1032
  }
1034
1033
 
1035
1034
  const containsNormal =
1036
- vertexShaderSource.search(/attribute\s+vec3\s+normal;/g) !== -1;
1037
- const containsSt =
1038
- vertexShaderSource.search(/attribute\s+vec2\s+st;/g) !== -1;
1035
+ vertexShaderSource.search(/in\s+vec3\s+normal;/g) !== -1;
1036
+ const containsSt = vertexShaderSource.search(/in\s+vec2\s+st;/g) !== -1;
1039
1037
  if (!containsNormal && !containsSt) {
1040
1038
  return vertexShaderSource;
1041
1039
  }
1042
1040
 
1043
1041
  const containsTangent =
1044
- vertexShaderSource.search(/attribute\s+vec3\s+tangent;/g) !== -1;
1042
+ vertexShaderSource.search(/in\s+vec3\s+tangent;/g) !== -1;
1045
1043
  const containsBitangent =
1046
- vertexShaderSource.search(/attribute\s+vec3\s+bitangent;/g) !== -1;
1044
+ vertexShaderSource.search(/in\s+vec3\s+bitangent;/g) !== -1;
1047
1045
 
1048
1046
  let numComponents = containsSt && containsNormal ? 2.0 : 1.0;
1049
1047
  numComponents += containsTangent || containsBitangent ? 1 : 0;
@@ -1051,7 +1049,7 @@ function modifyForEncodedNormals(primitive, vertexShaderSource) {
1051
1049
  const type = numComponents > 1 ? `vec${numComponents}` : "float";
1052
1050
 
1053
1051
  const attributeName = "compressedAttributes";
1054
- const attributeDecl = `attribute ${type} ${attributeName};`;
1052
+ const attributeDecl = `in ${type} ${attributeName};`;
1055
1053
 
1056
1054
  let globalDecl = "";
1057
1055
  let decode = "";
@@ -1092,10 +1090,10 @@ function modifyForEncodedNormals(primitive, vertexShaderSource) {
1092
1090
  }
1093
1091
 
1094
1092
  let modifiedVS = vertexShaderSource;
1095
- modifiedVS = modifiedVS.replace(/attribute\s+vec3\s+normal;/g, "");
1096
- modifiedVS = modifiedVS.replace(/attribute\s+vec2\s+st;/g, "");
1097
- modifiedVS = modifiedVS.replace(/attribute\s+vec3\s+tangent;/g, "");
1098
- modifiedVS = modifiedVS.replace(/attribute\s+vec3\s+bitangent;/g, "");
1093
+ modifiedVS = modifiedVS.replace(/in\s+vec3\s+normal;/g, "");
1094
+ modifiedVS = modifiedVS.replace(/in\s+vec2\s+st;/g, "");
1095
+ modifiedVS = modifiedVS.replace(/in\s+vec3\s+tangent;/g, "");
1096
+ modifiedVS = modifiedVS.replace(/in\s+vec3\s+bitangent;/g, "");
1099
1097
  modifiedVS = ShaderSource.replaceMain(modifiedVS, "czm_non_compressed_main");
1100
1098
  const compressedMain =
1101
1099
  `${"void main() \n" + "{ \n"}${decode} czm_non_compressed_main(); \n` +
@@ -1125,19 +1123,12 @@ function depthClampFS(fragmentShaderSource) {
1125
1123
  modifiedFS +=
1126
1124
  "void main() {\n" +
1127
1125
  " czm_non_depth_clamp_main();\n" +
1128
- "#if defined(GL_EXT_frag_depth)\n" +
1129
1126
  " #if defined(LOG_DEPTH)\n" +
1130
1127
  " czm_writeLogDepth();\n" +
1131
1128
  " #else\n" +
1132
1129
  " czm_writeDepthClamp();\n" +
1133
1130
  " #endif\n" +
1134
- "#endif\n" +
1135
1131
  "}\n";
1136
- modifiedFS = `${
1137
- "#ifdef GL_EXT_frag_depth\n" +
1138
- "#extension GL_EXT_frag_depth : enable\n" +
1139
- "#endif\n"
1140
- }${modifiedFS}`;
1141
1132
  return modifiedFS;
1142
1133
  }
1143
1134
 
@@ -112,7 +112,7 @@ Object.defineProperties(PropertyAttribute.prototype, {
112
112
  },
113
113
 
114
114
  /**
115
- * Extras in the JSON object.
115
+ * Extra user-defined properties.
116
116
  *
117
117
  * @memberof PropertyAttribute.prototype
118
118
  *
@@ -127,7 +127,7 @@ Object.defineProperties(PropertyAttribute.prototype, {
127
127
  },
128
128
 
129
129
  /**
130
- * Extensions in the JSON object.
130
+ * An object containing extensions.
131
131
  *
132
132
  * @memberof PropertyAttribute.prototype
133
133
  *
@@ -134,7 +134,7 @@ Object.defineProperties(PropertyAttributeProperty.prototype, {
134
134
  },
135
135
 
136
136
  /**
137
- * Extras in the JSON object.
137
+ * Extra user-defined properties.
138
138
  *
139
139
  * @memberof PropertyAttributeProperty.prototype
140
140
  * @type {*}
@@ -148,7 +148,7 @@ Object.defineProperties(PropertyAttributeProperty.prototype, {
148
148
  },
149
149
 
150
150
  /**
151
- * Extensions in the JSON object.
151
+ * An object containing extensions.
152
152
  *
153
153
  * @memberof PropertyAttributeProperty.prototype
154
154
  * @type {*}
@@ -113,7 +113,7 @@ Object.defineProperties(PropertyTable.prototype, {
113
113
  },
114
114
 
115
115
  /**
116
- * Extras in the JSON object.
116
+ * Extra user-defined properties.
117
117
  *
118
118
  * @memberof PropertyTable.prototype
119
119
  * @type {*}
@@ -127,7 +127,7 @@ Object.defineProperties(PropertyTable.prototype, {
127
127
  },
128
128
 
129
129
  /**
130
- * Extensions in the JSON object.
130
+ * An object containing extensions.
131
131
  *
132
132
  * @memberof PropertyTable.prototype
133
133
  * @type {Object}
@@ -116,7 +116,7 @@ Object.defineProperties(PropertyTexture.prototype, {
116
116
  },
117
117
 
118
118
  /**
119
- * Extras in the JSON object.
119
+ * Extra user-defined properties.
120
120
  *
121
121
  * @memberof PropertyTexture.prototype
122
122
  * @type {*}
@@ -130,7 +130,7 @@ Object.defineProperties(PropertyTexture.prototype, {
130
130
  },
131
131
 
132
132
  /**
133
- * Extensions in the JSON object.
133
+ * An object containing extensions.
134
134
  *
135
135
  * @memberof PropertyTexture.prototype
136
136
  * @type {Object}
@@ -150,7 +150,7 @@ Object.defineProperties(PropertyTextureProperty.prototype, {
150
150
  },
151
151
 
152
152
  /**
153
- * Extras in the JSON object.
153
+ * Extra user-defined properties.
154
154
  *
155
155
  * @memberof PropertyTextureProperty.prototype
156
156
  * @type {*}
@@ -164,7 +164,7 @@ Object.defineProperties(PropertyTextureProperty.prototype, {
164
164
  },
165
165
 
166
166
  /**
167
- * Extensions in the JSON object.
167
+ * An object containing extensions.
168
168
  *
169
169
  * @memberof PropertyTextureProperty.prototype
170
170
  * @type {*}
@@ -476,7 +476,7 @@ ResourceCache.loadVertexBuffer = function (options) {
476
476
  }
477
477
 
478
478
  const hasBufferViewId = defined(bufferViewId);
479
- const hasDraco = defined(draco);
479
+ const hasDraco = hasDracoCompression(draco, attributeSemantic);
480
480
  const hasAttributeSemantic = defined(attributeSemantic);
481
481
  const hasAccessorId = defined(accessorId);
482
482
 
@@ -553,6 +553,14 @@ ResourceCache.loadVertexBuffer = function (options) {
553
553
  return vertexBufferLoader;
554
554
  };
555
555
 
556
+ function hasDracoCompression(draco, semantic) {
557
+ return (
558
+ defined(draco) &&
559
+ defined(draco.attributes) &&
560
+ defined(draco.attributes[semantic])
561
+ );
562
+ }
563
+
556
564
  /**
557
565
  * Loads a glTF index buffer from the cache.
558
566
  *
@@ -327,7 +327,7 @@ ResourceCacheKey.getVertexBufferCacheKey = function (options) {
327
327
  Check.typeOf.object("options.frameState", frameState);
328
328
 
329
329
  const hasBufferViewId = defined(bufferViewId);
330
- const hasDraco = defined(draco);
330
+ const hasDraco = hasDracoCompression(draco, attributeSemantic);
331
331
  const hasAttributeSemantic = defined(attributeSemantic);
332
332
 
333
333
  if (hasBufferViewId === hasDraco) {
@@ -394,6 +394,14 @@ ResourceCacheKey.getVertexBufferCacheKey = function (options) {
394
394
  return `vertex-buffer:${bufferCacheKey}-range-${bufferViewCacheKey}${cacheKeySuffix}`;
395
395
  };
396
396
 
397
+ function hasDracoCompression(draco, semantic) {
398
+ return (
399
+ defined(draco) &&
400
+ defined(draco.attributes) &&
401
+ defined(draco.attributes[semantic])
402
+ );
403
+ }
404
+
397
405
  /**
398
406
  * Gets the index buffer cache key.
399
407
  *
@@ -2215,6 +2215,17 @@ function executeTranslucentCommandsFrontToBack(
2215
2215
  }
2216
2216
  }
2217
2217
 
2218
+ function executeVoxelCommands(scene, executeFunction, passState, commands) {
2219
+ const context = scene.context;
2220
+
2221
+ mergeSort(commands, backToFront, scene.camera.positionWC);
2222
+
2223
+ const length = commands.length;
2224
+ for (let i = 0; i < length; ++i) {
2225
+ executeFunction(commands[i], scene, context, passState);
2226
+ }
2227
+ }
2228
+
2218
2229
  const scratchPerspectiveFrustum = new PerspectiveFrustum();
2219
2230
  const scratchPerspectiveOffCenterFrustum = new PerspectiveOffCenterFrustum();
2220
2231
  const scratchOrthographicFrustum = new OrthographicFrustum();
@@ -2623,6 +2634,12 @@ function executeCommands(scene, passState) {
2623
2634
  pickDepth.executeCopyDepth(context, passState);
2624
2635
  }
2625
2636
 
2637
+ us.updatePass(Pass.VOXELS);
2638
+ commands = frustumCommands.commands[Pass.VOXELS];
2639
+ length = frustumCommands.indices[Pass.VOXELS];
2640
+ commands.length = length;
2641
+ executeVoxelCommands(scene, executeCommand, passState, commands);
2642
+
2626
2643
  if (picking || !usePostProcessSelected) {
2627
2644
  continue;
2628
2645
  }
@@ -763,7 +763,7 @@ function createDebugShadowViewCommand(shadowMap, context) {
763
763
  if (shadowMap._isPointLight) {
764
764
  fs =
765
765
  "uniform samplerCube shadowMap_textureCube; \n" +
766
- "varying vec2 v_textureCoordinates; \n" +
766
+ "in vec2 v_textureCoordinates; \n" +
767
767
  "void main() \n" +
768
768
  "{ \n" +
769
769
  " vec2 uv = v_textureCoordinates; \n" +
@@ -812,21 +812,21 @@ function createDebugShadowViewCommand(shadowMap, context) {
812
812
  " } \n" +
813
813
  " } \n" +
814
814
  " \n" +
815
- " float shadow = czm_unpackDepth(textureCube(shadowMap_textureCube, dir)); \n" +
816
- " gl_FragColor = vec4(vec3(shadow), 1.0); \n" +
815
+ " float shadow = czm_unpackDepth(czm_textureCube(shadowMap_textureCube, dir)); \n" +
816
+ " out_FragColor = vec4(vec3(shadow), 1.0); \n" +
817
817
  "} \n";
818
818
  } else {
819
819
  fs =
820
820
  `${
821
821
  "uniform sampler2D shadowMap_texture; \n" +
822
- "varying vec2 v_textureCoordinates; \n" +
822
+ "in vec2 v_textureCoordinates; \n" +
823
823
  "void main() \n" +
824
824
  "{ \n"
825
825
  }${
826
826
  shadowMap._usesDepthTexture
827
- ? " float shadow = texture2D(shadowMap_texture, v_textureCoordinates).r; \n"
828
- : " float shadow = czm_unpackDepth(texture2D(shadowMap_texture, v_textureCoordinates)); \n"
829
- } gl_FragColor = vec4(vec3(shadow), 1.0); \n` + `} \n`;
827
+ ? " float shadow = texture(shadowMap_texture, v_textureCoordinates).r; \n"
828
+ : " float shadow = czm_unpackDepth(texture(shadowMap_texture, v_textureCoordinates)); \n"
829
+ } out_FragColor = vec4(vec3(shadow), 1.0); \n` + `} \n`;
830
830
  }
831
831
 
832
832
  const drawCommand = context.createViewportQuadCommand(fs, {
@@ -39,7 +39,7 @@ ShadowMapShader.createShadowCastVertexShader = function (
39
39
  }
40
40
 
41
41
  const shadowVS =
42
- "varying vec3 v_positionEC; \n" +
42
+ "in vec3 v_positionEC; \n" +
43
43
  "void main() \n" +
44
44
  "{ \n" +
45
45
  " czm_shadow_cast_main(); \n" +
@@ -80,7 +80,7 @@ ShadowMapShader.createShadowCastFragmentShader = function (
80
80
 
81
81
  if (isPointLight) {
82
82
  if (!hasPositionVarying) {
83
- fsSource += "varying vec3 v_positionEC; \n";
83
+ fsSource += "in vec3 v_positionEC; \n";
84
84
  }
85
85
  fsSource += "uniform vec4 shadowMap_lightPositionEC; \n";
86
86
  }
@@ -92,7 +92,7 @@ ShadowMapShader.createShadowCastFragmentShader = function (
92
92
  "void main() \n" +
93
93
  "{ \n" +
94
94
  " czm_shadow_cast_main(); \n" +
95
- " if (gl_FragColor.a == 0.0) \n" +
95
+ " if (out_FragColor.a == 0.0) \n" +
96
96
  " { \n" +
97
97
  " discard; \n" +
98
98
  " } \n";
@@ -106,11 +106,11 @@ ShadowMapShader.createShadowCastFragmentShader = function (
106
106
  ` discard; \n` +
107
107
  ` } \n` +
108
108
  ` distance /= shadowMap_lightPositionEC.w; // radius \n` +
109
- ` gl_FragColor = czm_packDepth(distance); \n`;
109
+ ` out_FragColor = czm_packDepth(distance); \n`;
110
110
  } else if (usesDepthTexture) {
111
- fsSource += " gl_FragColor = vec4(1.0); \n";
111
+ fsSource += " out_FragColor = vec4(1.0); \n";
112
112
  } else {
113
- fsSource += " gl_FragColor = czm_packDepth(gl_FragCoord.z); \n";
113
+ fsSource += " out_FragColor = czm_packDepth(gl_FragCoord.z); \n";
114
114
  }
115
115
 
116
116
  fsSource += "} \n";
@@ -257,7 +257,7 @@ ShadowMapShader.createShadowReceiveFragmentShader = function (
257
257
  "uniform vec4 shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness; \n" +
258
258
  "uniform vec4 shadowMap_texelSizeDepthBiasAndNormalShadingSmooth; \n" +
259
259
  "#ifdef LOG_DEPTH \n" +
260
- "varying vec3 v_logPositionEC; \n" +
260
+ "in vec3 v_logPositionEC; \n" +
261
261
  "#endif \n" +
262
262
  "vec4 getPositionEC() \n" +
263
263
  "{ \n"
@@ -364,7 +364,7 @@ ShadowMapShader.createShadowReceiveFragmentShader = function (
364
364
  }${
365
365
  debugCascadeColors
366
366
  ? " // Draw cascade colors for debugging \n" +
367
- " gl_FragColor *= czm_cascadeColor(weights); \n"
367
+ " out_FragColor *= czm_cascadeColor(weights); \n"
368
368
  : ""
369
369
  }`;
370
370
  } else {
@@ -383,7 +383,7 @@ ShadowMapShader.createShadowReceiveFragmentShader = function (
383
383
  " float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters); \n";
384
384
  }
385
385
 
386
- fsSource += " gl_FragColor.rgb *= visibility; \n" + "} \n";
386
+ fsSource += " out_FragColor.rgb *= visibility; \n" + "} \n";
387
387
 
388
388
  sources.push(fsSource);
389
389
 
@@ -168,7 +168,7 @@ ShadowVolumeAppearance.prototype.createPickFragmentShader = function (
168
168
  return new ShaderSource({
169
169
  defines: defines,
170
170
  sources: [ShadowVolumeAppearanceFS],
171
- pickColorQualifier: "varying",
171
+ pickColorQualifier: "in",
172
172
  });
173
173
  };
174
174