@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
@@ -4,6 +4,7 @@ import ComponentDatatype from "../Core/ComponentDatatype.js";
4
4
  import createGuid from "../Core/createGuid.js";
5
5
  import defaultValue from "../Core/defaultValue.js";
6
6
  import defined from "../Core/defined.js";
7
+ import deprecationWarning from "../Core/deprecationWarning.js";
7
8
  import destroyObject from "../Core/destroyObject.js";
8
9
  import DeveloperError from "../Core/DeveloperError.js";
9
10
  import Geometry from "../Core/Geometry.js";
@@ -44,7 +45,7 @@ function Context(canvas, options) {
44
45
 
45
46
  const {
46
47
  getWebGLStub,
47
- requestWebgl2 = false,
48
+ requestWebgl1,
48
49
  webgl: webglOptions = {},
49
50
  allowTextureFilterAnisotropic = true,
50
51
  } = defaultValue(options, {});
@@ -59,12 +60,11 @@ function Context(canvas, options) {
59
60
 
60
61
  const glContext = defined(getWebGLStub)
61
62
  ? getWebGLStub(canvas, webglOptions)
62
- : getWebGLContext(canvas, webglOptions, requestWebgl2);
63
+ : getWebGLContext(canvas, webglOptions, requestWebgl1);
63
64
 
64
65
  // Get context type. instanceof will throw if WebGL2 is not supported
65
- const webgl2 =
66
- typeof WebGL2RenderingContext !== "undefined" &&
67
- glContext instanceof WebGL2RenderingContext;
66
+ const webgl2Supported = typeof WebGL2RenderingContext !== "undefined";
67
+ const webgl2 = webgl2Supported && glContext instanceof WebGL2RenderingContext;
68
68
 
69
69
  this._canvas = canvas;
70
70
  this._originalGLContext = glContext;
@@ -367,7 +367,7 @@ function Context(canvas, options) {
367
367
  */
368
368
  this.options = {
369
369
  getWebGLStub: getWebGLStub,
370
- requestWebgl2: requestWebgl2,
370
+ requestWebgl1: requestWebgl1,
371
371
  webgl: webglOptions,
372
372
  allowTextureFilterAnisotropic: allowTextureFilterAnisotropic,
373
373
  };
@@ -397,7 +397,7 @@ function Context(canvas, options) {
397
397
  * especially for horizon views.
398
398
  * </p>
399
399
  *
400
- * @property {Boolean} [requestWebGl2 = false] If true and the browser supports it, use a WebGL 2 rendering context
400
+ * @property {Boolean} [requestWebGl1=false] If true and the browser supports it, use a WebGL 1 rendering context
401
401
  * @property {Boolean} [allowTextureFilterAnisotropic=true] If true, use anisotropic filtering during texture sampling
402
402
  * @property {WebGLOptions} [webgl] WebGL options to be passed on to canvas.getContext
403
403
  * @property {Function} [getWebGLStub] A function to create a WebGL stub for testing
@@ -407,19 +407,23 @@ function Context(canvas, options) {
407
407
  * @private
408
408
  * @param {HTMLCanvasElement} canvas The canvas element to which the context will be associated
409
409
  * @param {WebGLOptions} webglOptions WebGL options to be passed on to HTMLCanvasElement.getContext()
410
- * @param {Boolean} requestWebgl2 Whether to request a WebGL2RenderingContext
410
+ * @param {Boolean} requestWebgl1 Whether to request a WebGLRenderingContext or a WebGL2RenderingContext.
411
411
  * @returns {WebGLRenderingContext|WebGL2RenderingContext}
412
412
  */
413
- function getWebGLContext(canvas, webglOptions, requestWebgl2) {
413
+ function getWebGLContext(canvas, webglOptions, requestWebgl1) {
414
414
  if (typeof WebGLRenderingContext === "undefined") {
415
415
  throw new RuntimeError(
416
416
  "The browser does not support WebGL. Visit http://get.webgl.org."
417
417
  );
418
418
  }
419
419
 
420
- requestWebgl2 =
421
- requestWebgl2 && typeof WebGL2RenderingContext !== "undefined";
422
- const contextType = requestWebgl2 ? "webgl2" : "webgl";
420
+ // Ensure that WebGL 2 is supported when it is requested. Otherwise, fall back to WebGL 1.
421
+ const webgl2Supported = typeof WebGL2RenderingContext !== "undefined";
422
+ if (!requestWebgl1 && !webgl2Supported) {
423
+ requestWebgl1 = true;
424
+ }
425
+
426
+ const contextType = requestWebgl1 ? "webgl" : "webgl2";
423
427
  const glContext = canvas.getContext(contextType, webglOptions);
424
428
 
425
429
  if (!defined(glContext)) {
@@ -1633,4 +1637,8 @@ Context.prototype.destroy = function () {
1633
1637
 
1634
1638
  return destroyObject(this);
1635
1639
  };
1640
+
1641
+ // Used for specs.
1642
+ Context._deprecationWarning = deprecationWarning;
1643
+
1636
1644
  export default Context;
@@ -20,7 +20,8 @@ const Pass = {
20
20
  CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW: 6,
21
21
  OPAQUE: 7,
22
22
  TRANSLUCENT: 8,
23
- OVERLAY: 9,
24
- NUMBER_OF_PASSES: 10,
23
+ VOXELS: 9,
24
+ OVERLAY: 10,
25
+ NUMBER_OF_PASSES: 11,
25
26
  };
26
27
  export default Object.freeze(Pass);
@@ -43,9 +43,9 @@ import ShaderFunction from "./ShaderFunction.js";
43
43
  * "void main()",
44
44
  * "{",
45
45
  * " #ifdef SOLID_COLOR",
46
- * " gl_FragColor = vec4(u_color, 1.0);",
46
+ * " out_FragColor = vec4(u_color, 1.0);",
47
47
  * " #else",
48
- * " gl_FragColor = vec4(v_color, 1.0);",
48
+ * " out_FragColor = vec4(v_color, 1.0);",
49
49
  * " #endif",
50
50
  * "}"
51
51
  * ]);
@@ -307,7 +307,7 @@ ShaderBuilder.prototype.addUniform = function (type, identifier, destination) {
307
307
  * @return {Number} The integer location of the attribute. This location can be used when creating attributes for a {@link VertexArray}. This will always be 0.
308
308
  *
309
309
  * @example
310
- * // creates the line "attribute vec3 a_position;"
310
+ * // creates the line "in vec3 a_position;"
311
311
  * shaderBuilder.setPositionAttribute("vec3", "a_position");
312
312
  */
313
313
  ShaderBuilder.prototype.setPositionAttribute = function (type, identifier) {
@@ -322,7 +322,7 @@ ShaderBuilder.prototype.setPositionAttribute = function (type, identifier) {
322
322
  }
323
323
  //>>includeEnd('debug');
324
324
 
325
- this._positionAttributeLine = `attribute ${type} ${identifier};`;
325
+ this._positionAttributeLine = `in ${type} ${identifier};`;
326
326
 
327
327
  // Some WebGL implementations require attribute 0 to always be active, so
328
328
  // this builder assumes the position will always go in location 0
@@ -343,7 +343,7 @@ ShaderBuilder.prototype.setPositionAttribute = function (type, identifier) {
343
343
  * @return {Number} The integer location of the attribute. This location can be used when creating attributes for a {@link VertexArray}
344
344
  *
345
345
  * @example
346
- * // creates the line "attribute vec2 a_texCoord0;" in the vertex shader
346
+ * // creates the line "in vec2 a_texCoord0;" in the vertex shader
347
347
  * shaderBuilder.addAttribute("vec2", "a_texCoord0");
348
348
  */
349
349
  ShaderBuilder.prototype.addAttribute = function (type, identifier) {
@@ -352,7 +352,7 @@ ShaderBuilder.prototype.addAttribute = function (type, identifier) {
352
352
  Check.typeOf.string("identifier", identifier);
353
353
  //>>includeEnd('debug');
354
354
 
355
- const line = `attribute ${type} ${identifier};`;
355
+ const line = `in ${type} ${identifier};`;
356
356
  this._attributeLines.push(line);
357
357
 
358
358
  const location = this._nextAttributeLocation;
@@ -371,7 +371,8 @@ ShaderBuilder.prototype.addAttribute = function (type, identifier) {
371
371
  * @param {String} identifier An identifier for the varying. Identifiers must begin with <code>v_</code> to be consistent with Cesium's style guide.
372
372
  *
373
373
  * @example
374
- * // creates the line "varying vec3 v_color;" in both shaders
374
+ * // creates the line "in vec3 v_color;" in the vertex shader
375
+ * // creates the line "out vec3 v_color;" in the fragment shader
375
376
  * shaderBuilder.addVarying("vec3", "v_color");
376
377
  */
377
378
  ShaderBuilder.prototype.addVarying = function (type, identifier) {
@@ -380,9 +381,9 @@ ShaderBuilder.prototype.addVarying = function (type, identifier) {
380
381
  Check.typeOf.string("identifier", identifier);
381
382
  //>>includeEnd('debug');
382
383
 
383
- const line = `varying ${type} ${identifier};`;
384
- this._vertexShaderParts.varyingLines.push(line);
385
- this._fragmentShaderParts.varyingLines.push(line);
384
+ const line = `${type} ${identifier};`;
385
+ this._vertexShaderParts.varyingLines.push(`out ${line}`);
386
+ this._fragmentShaderParts.varyingLines.push(`in ${line}`);
386
387
  };
387
388
 
388
389
  /**
@@ -427,9 +428,9 @@ ShaderBuilder.prototype.addVertexLines = function (lines) {
427
428
  * "void main()",
428
429
  * "{",
429
430
  * " #ifdef SOLID_COLOR",
430
- * " gl_FragColor = vec4(u_color, 1.0);",
431
+ * " out_FragColor = vec4(u_color, 1.0);",
431
432
  * " #else",
432
- * " gl_FragColor = vec4(v_color, 1.0);",
433
+ * " out_FragColor = vec4(v_color, 1.0);",
433
434
  * " #endif",
434
435
  * "}"
435
436
  * ]);
@@ -1,9 +1,9 @@
1
1
  import defaultValue from "../Core/defaultValue.js";
2
2
  import defined from "../Core/defined.js";
3
3
  import DeveloperError from "../Core/DeveloperError.js";
4
- import modernizeShader from "../Renderer/modernizeShader.js";
5
4
  import CzmBuiltins from "../Shaders/Builtin/CzmBuiltins.js";
6
5
  import AutomaticUniforms from "./AutomaticUniforms.js";
6
+ import demodernizeShader from "./demodernizeShader.js";
7
7
 
8
8
  function removeComments(source) {
9
9
  // remove inline comments
@@ -223,12 +223,6 @@ function combineShader(shaderSource, isFragmentShader, context) {
223
223
  // combine into single string
224
224
  let result = "";
225
225
 
226
- // #version must be first
227
- // defaults to #version 100 if not specified
228
- if (defined(version)) {
229
- result = `#version ${version}\n`;
230
- }
231
-
232
226
  const extensionsLength = extensions.length;
233
227
  for (i = 0; i < extensionsLength; i++) {
234
228
  result += extensions[i];
@@ -261,12 +255,6 @@ function combineShader(shaderSource, isFragmentShader, context) {
261
255
  }
262
256
  }
263
257
 
264
- // GLSLModernizer inserts its own layout qualifiers
265
- // at this position in the source
266
- if (context.webgl2) {
267
- result += "#define OUTPUT_DECLARATION\n\n";
268
- }
269
-
270
258
  // Define a constant for the OES_texture_float_linear extension since WebGL does not.
271
259
  if (context.textureFloatLinear) {
272
260
  result += "#define OES_texture_float_linear\n\n";
@@ -278,19 +266,36 @@ function combineShader(shaderSource, isFragmentShader, context) {
278
266
  }
279
267
 
280
268
  // append built-ins
269
+ let builtinSources = "";
281
270
  if (shaderSource.includeBuiltIns) {
282
- result += getBuiltinsAndAutomaticUniforms(combinedSources);
271
+ builtinSources = getBuiltinsAndAutomaticUniforms(combinedSources);
283
272
  }
284
273
 
285
274
  // reset line number
286
275
  result += "\n#line 0\n";
287
276
 
288
277
  // append actual source
278
+ const combinedShader = builtinSources + combinedSources;
279
+ if (
280
+ context.webgl2 &&
281
+ isFragmentShader &&
282
+ !/layout\s*\(location\s*=\s*0\)\s*out\s+vec4\s+out_FragColor;/g.test(
283
+ combinedShader
284
+ ) &&
285
+ !/czm_out_FragColor/g.test(combinedShader) &&
286
+ /out_FragColor/g.test(combinedShader)
287
+ ) {
288
+ result += "layout(location = 0) out vec4 out_FragColor;\n\n";
289
+ }
290
+
291
+ result += builtinSources;
289
292
  result += combinedSources;
290
293
 
291
294
  // modernize the source
292
- if (context.webgl2) {
293
- result = modernizeShader(result, isFragmentShader, true);
295
+ if (!context.webgl2) {
296
+ result = demodernizeShader(result, isFragmentShader);
297
+ } else {
298
+ result = `#version 300 es\n${result}`;
294
299
  }
295
300
 
296
301
  return result;
@@ -302,21 +307,21 @@ function combineShader(shaderSource, isFragmentShader, context) {
302
307
  * @param {Object} [options] Object with the following properties:
303
308
  * @param {String[]} [options.sources] An array of strings to combine containing GLSL code for the shader.
304
309
  * @param {String[]} [options.defines] An array of strings containing GLSL identifiers to <code>#define</code>.
305
- * @param {String} [options.pickColorQualifier] The GLSL qualifier, <code>uniform</code> or <code>varying</code>, for the input <code>czm_pickColor</code>. When defined, a pick fragment shader is generated.
310
+ * @param {String} [options.pickColorQualifier] The GLSL qualifier, <code>uniform</code> or <code>in</code>, for the input <code>czm_pickColor</code>. When defined, a pick fragment shader is generated.
306
311
  * @param {Boolean} [options.includeBuiltIns=true] If true, referenced built-in functions will be included with the combined shader. Set to false if this shader will become a source in another shader, to avoid duplicating functions.
307
312
  *
308
- * @exception {DeveloperError} options.pickColorQualifier must be 'uniform' or 'varying'.
313
+ * @exception {DeveloperError} options.pickColorQualifier must be 'uniform' or 'in'.
309
314
  *
310
315
  * @example
311
316
  * // 1. Prepend #defines to a shader
312
317
  * const source = new Cesium.ShaderSource({
313
318
  * defines : ['WHITE'],
314
- * sources : ['void main() { \n#ifdef WHITE\n gl_FragColor = vec4(1.0); \n#else\n gl_FragColor = vec4(0.0); \n#endif\n }']
319
+ * sources : ['void main() { \n#ifdef WHITE\n out_FragColor = vec4(1.0); \n#else\n out_FragColor = vec4(0.0); \n#endif\n }']
315
320
  * });
316
321
  *
317
322
  * // 2. Modify a fragment shader for picking
318
323
  * const source2 = new Cesium.ShaderSource({
319
- * sources : ['void main() { gl_FragColor = vec4(1.0); }'],
324
+ * sources : ['void main() { out_FragColor = vec4(1.0); }'],
320
325
  * pickColorQualifier : 'uniform'
321
326
  * });
322
327
  *
@@ -330,10 +335,10 @@ function ShaderSource(options) {
330
335
  if (
331
336
  defined(pickColorQualifier) &&
332
337
  pickColorQualifier !== "uniform" &&
333
- pickColorQualifier !== "varying"
338
+ pickColorQualifier !== "in"
334
339
  ) {
335
340
  throw new DeveloperError(
336
- "options.pickColorQualifier must be 'uniform' or 'varying'."
341
+ "options.pickColorQualifier must be 'uniform' or 'in'."
337
342
  );
338
343
  }
339
344
  //>>includeEnd('debug');
@@ -430,8 +435,8 @@ ShaderSource.createPickVertexShaderSource = function (vertexShaderSource) {
430
435
  "czm_old_main"
431
436
  );
432
437
  const pickMain =
433
- "attribute vec4 pickColor; \n" +
434
- "varying vec4 czm_pickColor; \n" +
438
+ "in vec4 pickColor; \n" +
439
+ "out vec4 czm_pickColor; \n" +
435
440
  "void main() \n" +
436
441
  "{ \n" +
437
442
  " czm_old_main(); \n" +
@@ -454,10 +459,10 @@ ShaderSource.createPickFragmentShaderSource = function (
454
459
  `void main() \n` +
455
460
  `{ \n` +
456
461
  ` czm_old_main(); \n` +
457
- ` if (gl_FragColor.a == 0.0) { \n` +
462
+ ` if (out_FragColor.a == 0.0) { \n` +
458
463
  ` discard; \n` +
459
464
  ` } \n` +
460
- ` gl_FragColor = czm_pickColor; \n` +
465
+ ` out_FragColor = czm_pickColor; \n` +
461
466
  `}`;
462
467
 
463
468
  return `${renamedFS}\n${pickMain}`;
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Transpiles a [GLSL 3.00]{@link https://registry.khronos.org/OpenGL/specs/es/3.0/GLSL_ES_Specification_3.00.pdf}
3
+ * shader to a [GLSL 1.00]{@link https://registry.khronos.org/OpenGL/specs/es/2.0/GLSL_ES_Specification_1.00.pdf} shader.
4
+ *
5
+ * This function does not aim to provide a comprehensive transpilation from GLSL 3.00 to GLSL 1.00; only the functionality
6
+ * used within the CesiumJS shaders is supported.
7
+ *
8
+ * @private
9
+ *
10
+ * @param {string} input The GLSL 3.00 shader.
11
+ * @param {boolean} isFragmentShader True if the shader is a fragment shader.
12
+ *
13
+ * @return {string}
14
+ */
15
+ function demodernizeShader(input, isFragmentShader) {
16
+ let output = input;
17
+
18
+ // Remove version string got GLSL 3.00.
19
+ output = output.replaceAll(`version 300 es`, ``);
20
+
21
+ // Replace all texture calls with texture2D
22
+ output = output.replaceAll(
23
+ /(texture\()/g,
24
+ `texture2D(` // Trailing ')' is included in the match group.
25
+ );
26
+
27
+ if (isFragmentShader) {
28
+ // Replace the in with varying.
29
+ output = output.replaceAll(/(in)\s+(vec\d|mat\d|float)/g, `varying $2`);
30
+
31
+ if (/out_FragData_(\d+)/.test(output)) {
32
+ output = `#extension GL_EXT_draw_buffers : enable\n${output}`;
33
+
34
+ // Remove all layout declarations for out_FragData.
35
+ output = output.replaceAll(
36
+ /layout\s+\(location\s*=\s*\d+\)\s*out\s+vec4\s+out_FragData_\d+;/g,
37
+ ``
38
+ );
39
+
40
+ // Replace out_FragData with gl_FragData.
41
+ output = output.replaceAll(/out_FragData_(\d+)/g, `gl_FragData[$1]`);
42
+ }
43
+
44
+ // Replace out_FragColor with gl_FragColor.
45
+ output = output.replaceAll(/out_FragColor/g, `gl_FragColor`);
46
+ output = output.replaceAll(/out_FragColor\[(\d+)\]/g, `gl_FragColor[$1]`);
47
+
48
+ // Remove all layout declarations for out_FragColor.
49
+ output = output.replaceAll(
50
+ /layout\s+\(location\s*=\s*0\)\s*out\s+vec4\s+out_FragColor/g,
51
+ ``
52
+ );
53
+
54
+ if (/gl_FragDepth/.test(output)) {
55
+ output = `#extension GL_EXT_frag_depth : enable\n${output}`;
56
+ // Replace gl_FragDepth with gl_FragDepthEXT.
57
+ output = output.replaceAll(/gl_FragDepth/g, `gl_FragDepthEXT`);
58
+ }
59
+ } else {
60
+ // Replace the in with attribute.
61
+ output = output.replaceAll(/(in)\s+(vec\d|mat\d|float)/g, `attribute $2`);
62
+
63
+ // Replace the out with varying.
64
+ output = output.replaceAll(
65
+ /(out)\s+(vec\d|mat\d|float)\s+([\w]+);/g,
66
+ `varying $2 $3;`
67
+ );
68
+ }
69
+
70
+ // Add version string for GLSL 1.00.
71
+ output = `#version 100\n${output}`;
72
+
73
+ return output;
74
+ }
75
+
76
+ export default demodernizeShader;
@@ -203,16 +203,16 @@ function createUniformMap(autoexposure, index) {
203
203
  function getShaderSource(index, length) {
204
204
  let source =
205
205
  "uniform sampler2D colorTexture; \n" +
206
- "varying vec2 v_textureCoordinates; \n" +
206
+ "in vec2 v_textureCoordinates; \n" +
207
207
  "float sampleTexture(vec2 offset) { \n";
208
208
 
209
209
  if (index === 0) {
210
210
  source +=
211
- " vec4 color = texture2D(colorTexture, v_textureCoordinates + offset); \n" +
211
+ " vec4 color = texture(colorTexture, v_textureCoordinates + offset); \n" +
212
212
  " return czm_luminance(color.rgb); \n";
213
213
  } else {
214
214
  source +=
215
- " return texture2D(colorTexture, v_textureCoordinates + offset).r; \n";
215
+ " return texture(colorTexture, v_textureCoordinates + offset).r; \n";
216
216
  }
217
217
 
218
218
  source += "}\n\n";
@@ -244,13 +244,13 @@ function getShaderSource(index, length) {
244
244
 
245
245
  if (index === length - 1) {
246
246
  source +=
247
- " float previous = texture2D(previousLuminance, vec2(0.5)).r; \n" +
247
+ " float previous = texture(previousLuminance, vec2(0.5)).r; \n" +
248
248
  " color = clamp(color, minMaxLuminance.x, minMaxLuminance.y); \n" +
249
249
  " color = previous + (color - previous) / (60.0 * 1.5); \n" +
250
250
  " color = clamp(color, minMaxLuminance.x, minMaxLuminance.y); \n";
251
251
  }
252
252
 
253
- source += " gl_FragColor = vec4(color); \n" + "} \n";
253
+ source += " out_FragColor = vec4(color); \n" + "} \n";
254
254
  return source;
255
255
  }
256
256
 
@@ -530,12 +530,12 @@ function getGlslAttributeFunction(batchTable, attributeIndex) {
530
530
  ) {
531
531
  glslFunction +=
532
532
  "vec4 textureValue; \n" +
533
- "textureValue.x = czm_unpackFloat(texture2D(batchTexture, st)); \n" +
534
- "textureValue.y = czm_unpackFloat(texture2D(batchTexture, st + vec2(batchTextureStep.x, 0.0))); \n" +
535
- "textureValue.z = czm_unpackFloat(texture2D(batchTexture, st + vec2(batchTextureStep.x * 2.0, 0.0))); \n" +
536
- "textureValue.w = czm_unpackFloat(texture2D(batchTexture, st + vec2(batchTextureStep.x * 3.0, 0.0))); \n";
533
+ "textureValue.x = czm_unpackFloat(texture(batchTexture, st)); \n" +
534
+ "textureValue.y = czm_unpackFloat(texture(batchTexture, st + vec2(batchTextureStep.x, 0.0))); \n" +
535
+ "textureValue.z = czm_unpackFloat(texture(batchTexture, st + vec2(batchTextureStep.x * 2.0, 0.0))); \n" +
536
+ "textureValue.w = czm_unpackFloat(texture(batchTexture, st + vec2(batchTextureStep.x * 3.0, 0.0))); \n";
537
537
  } else {
538
- glslFunction += " vec4 textureValue = texture2D(batchTexture, st); \n";
538
+ glslFunction += " vec4 textureValue = texture(batchTexture, st); \n";
539
539
  }
540
540
 
541
541
  glslFunction += ` ${functionReturnType} value = textureValue${functionReturnValue}; \n`;
@@ -1789,10 +1789,10 @@ function updateBoundingVolume(collection, frameState, boundingVolume) {
1789
1789
  function createDebugCommand(billboardCollection, context) {
1790
1790
  const fs =
1791
1791
  "uniform sampler2D billboard_texture; \n" +
1792
- "varying vec2 v_textureCoordinates; \n" +
1792
+ "in vec2 v_textureCoordinates; \n" +
1793
1793
  "void main() \n" +
1794
1794
  "{ \n" +
1795
- " gl_FragColor = texture2D(billboard_texture, v_textureCoordinates); \n" +
1795
+ " out_FragColor = texture(billboard_texture, v_textureCoordinates); \n" +
1796
1796
  "} \n";
1797
1797
 
1798
1798
  const drawCommand = context.createViewportQuadCommand(fs, {
@@ -177,7 +177,7 @@ function BingMapsImageryProvider(options) {
177
177
 
178
178
  this._proxy = options.proxy;
179
179
  this._credit = new Credit(
180
- `<a href="http://www.bing.com"><img src="${BingMapsImageryProvider.logoUrl}" title="Bing Imagery"/></a>`
180
+ `<a href="https://www.microsoft.com/en-us/maps/product/enduserterms"><img src="${BingMapsImageryProvider.logoUrl}" title="Bing Imagery"/></a>`
181
181
  );
182
182
 
183
183
  this._tilingScheme = new WebMercatorTilingScheme({
@@ -146,7 +146,7 @@ function Cesium3DTile(tileset, baseResource, header, parent) {
146
146
 
147
147
  if (!defined(this._geometricError)) {
148
148
  this._geometricError = defined(parent)
149
- ? parent.geometricError
149
+ ? parent._geometricError
150
150
  : tileset._geometricError;
151
151
  Cesium3DTile._deprecationWarning(
152
152
  "geometricErrorUndefined",
@@ -874,7 +874,7 @@ Cesium3DTile.prototype.getScreenSpaceError = function (
874
874
  const heightFraction = defaultValue(progressiveResolutionHeightFraction, 1.0);
875
875
  const parentGeometricError = defined(this.parent)
876
876
  ? this.parent.geometricError
877
- : tileset._geometricError;
877
+ : tileset._scaledGeometricError;
878
878
  const geometricError = useParentGeometricError
879
879
  ? parentGeometricError
880
880
  : this.geometricError;
@@ -1791,6 +1791,12 @@ Cesium3DTile.prototype.updateGeometricErrorScale = function () {
1791
1791
  const scale = Matrix4.getScale(this.computedTransform, scratchScale);
1792
1792
  const uniformScale = Cartesian3.maximumComponent(scale);
1793
1793
  this.geometricError = this._geometricError * uniformScale;
1794
+
1795
+ if (!defined(this.parent)) {
1796
+ // Update the tileset's geometric error
1797
+ const tileset = this._tileset;
1798
+ tileset._scaledGeometricError = tileset._geometricError * uniformScale;
1799
+ }
1794
1800
  };
1795
1801
 
1796
1802
  function applyDebugSettings(tile, tileset, frameState, passOptions) {