@cesium/engine 1.1.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 (380) hide show
  1. package/Build/Workers/{AxisAlignedBoundingBox-a4321399.js → AxisAlignedBoundingBox-47525601.js} +1 -1
  2. package/Build/Workers/{BoundingRectangle-80d8801f.js → BoundingRectangle-93b263ac.js} +1 -1
  3. package/Build/Workers/{BoxGeometry-33c10a4f.js → BoxGeometry-8c4b4125.js} +1 -1
  4. package/Build/Workers/{Color-1bf9a6e0.js → Color-52c60ed7.js} +1 -1
  5. package/Build/Workers/{CoplanarPolygonGeometryLibrary-5c5b981b.js → CoplanarPolygonGeometryLibrary-33c4c1f8.js} +1 -1
  6. package/Build/Workers/{CorridorGeometryLibrary-7cbae7a0.js → CorridorGeometryLibrary-5039cd8e.js} +1 -1
  7. package/Build/Workers/{CylinderGeometry-42740df0.js → CylinderGeometry-3ac44974.js} +1 -1
  8. package/Build/Workers/{EllipseGeometry-49a3ac21.js → EllipseGeometry-a9c9b3be.js} +1 -1
  9. package/Build/Workers/{EllipseGeometryLibrary-b891b2f8.js → EllipseGeometryLibrary-855d4681.js} +1 -1
  10. package/Build/Workers/{EllipseOutlineGeometry-fbd72e07.js → EllipseOutlineGeometry-017a5929.js} +1 -1
  11. package/Build/Workers/{EllipsoidGeometry-a351dba8.js → EllipsoidGeometry-826e7bce.js} +1 -1
  12. package/Build/Workers/{EllipsoidOutlineGeometry-3e8779bf.js → EllipsoidOutlineGeometry-784dcdb5.js} +1 -1
  13. package/Build/Workers/{EllipsoidTangentPlane-cfb50678.js → EllipsoidTangentPlane-ed9443a1.js} +1 -1
  14. package/Build/Workers/{FrustumGeometry-c5754412.js → FrustumGeometry-9f1ee4d8.js} +1 -1
  15. package/Build/Workers/{GeometryAttribute-0bfd05e8.js → GeometryAttribute-334718f8.js} +1 -1
  16. package/Build/Workers/{GeometryPipeline-0166905d.js → GeometryPipeline-8fb0db69.js} +1 -1
  17. package/Build/Workers/{IntersectionTests-a93d3de9.js → IntersectionTests-27d49265.js} +1 -1
  18. package/Build/Workers/{OrientedBoundingBox-b450cb61.js → OrientedBoundingBox-79ee7cbb.js} +1 -1
  19. package/Build/Workers/{PolygonGeometryLibrary-f918ac26.js → PolygonGeometryLibrary-6b5a29e9.js} +1 -1
  20. package/Build/Workers/{PolygonPipeline-f59a8f0a.js → PolygonPipeline-21668b3f.js} +1 -1
  21. package/Build/Workers/{PolylinePipeline-d8e6bd9b.js → PolylinePipeline-5e2e1b21.js} +1 -1
  22. package/Build/Workers/{PolylineVolumeGeometryLibrary-125d2edf.js → PolylineVolumeGeometryLibrary-97f0b94e.js} +1 -1
  23. package/Build/Workers/{PrimitivePipeline-0d7b5ed4.js → PrimitivePipeline-5640850a.js} +1 -1
  24. package/Build/Workers/{RectangleGeometryLibrary-0768db63.js → RectangleGeometryLibrary-d5457f7b.js} +1 -1
  25. package/Build/Workers/{TerrainEncoding-06470d7f.js → TerrainEncoding-bfdf2021.js} +1 -1
  26. package/Build/Workers/{Transforms-26539bce.js → Transforms-a05e5e6e.js} +17 -0
  27. package/Build/Workers/{WallGeometryLibrary-6167b0fc.js → WallGeometryLibrary-6db0ebb6.js} +1 -1
  28. package/Build/Workers/cesiumWorkerBootstrapper.js +68 -2
  29. package/Build/Workers/combineGeometry.js +1 -1
  30. package/Build/Workers/createBoxGeometry.js +1 -1
  31. package/Build/Workers/createBoxOutlineGeometry.js +1 -1
  32. package/Build/Workers/createCircleGeometry.js +1 -1
  33. package/Build/Workers/createCircleOutlineGeometry.js +1 -1
  34. package/Build/Workers/createCoplanarPolygonGeometry.js +1 -1
  35. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +1 -1
  36. package/Build/Workers/createCorridorGeometry.js +1 -1
  37. package/Build/Workers/createCorridorOutlineGeometry.js +1 -1
  38. package/Build/Workers/createCylinderGeometry.js +1 -1
  39. package/Build/Workers/createCylinderOutlineGeometry.js +1 -1
  40. package/Build/Workers/createEllipseGeometry.js +1 -1
  41. package/Build/Workers/createEllipseOutlineGeometry.js +1 -1
  42. package/Build/Workers/createEllipsoidGeometry.js +1 -1
  43. package/Build/Workers/createEllipsoidOutlineGeometry.js +1 -1
  44. package/Build/Workers/createFrustumGeometry.js +1 -1
  45. package/Build/Workers/createFrustumOutlineGeometry.js +1 -1
  46. package/Build/Workers/createGeometry.js +1 -1
  47. package/Build/Workers/createGroundPolylineGeometry.js +1 -1
  48. package/Build/Workers/createPlaneGeometry.js +1 -1
  49. package/Build/Workers/createPlaneOutlineGeometry.js +1 -1
  50. package/Build/Workers/createPolygonGeometry.js +1 -1
  51. package/Build/Workers/createPolygonOutlineGeometry.js +1 -1
  52. package/Build/Workers/createPolylineGeometry.js +1 -1
  53. package/Build/Workers/createPolylineVolumeGeometry.js +1 -1
  54. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +1 -1
  55. package/Build/Workers/createRectangleGeometry.js +1 -1
  56. package/Build/Workers/createRectangleOutlineGeometry.js +1 -1
  57. package/Build/Workers/createSimplePolylineGeometry.js +1 -1
  58. package/Build/Workers/createSphereGeometry.js +1 -1
  59. package/Build/Workers/createSphereOutlineGeometry.js +1 -1
  60. package/Build/Workers/createVectorTileGeometries.js +1 -1
  61. package/Build/Workers/createVectorTilePolygons.js +1 -1
  62. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +1 -1
  63. package/Build/Workers/createVerticesFromHeightmap.js +1 -1
  64. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +1 -1
  65. package/Build/Workers/createWallGeometry.js +1 -1
  66. package/Build/Workers/createWallOutlineGeometry.js +1 -1
  67. package/Build/Workers/decodeDraco.js +9 -1
  68. package/Build/Workers/package.js +1 -1
  69. package/Build/Workers/transcodeKTX2.js +22 -2
  70. package/Build/Workers/transferTypedArrayTest.js +1 -1
  71. package/Build/Workers/upsampleQuantizedTerrainMesh.js +1 -1
  72. package/README.md +14 -16
  73. package/Source/Core/FeatureDetection.js +18 -0
  74. package/Source/Core/Ion.js +1 -2
  75. package/Source/Core/PixelFormat.js +22 -2
  76. package/Source/Core/sampleTerrain.js +5 -0
  77. package/Source/Renderer/AutomaticUniforms.js +3 -3
  78. package/Source/Renderer/Context.js +4 -14
  79. package/Source/Renderer/ShaderBuilder.js +13 -12
  80. package/Source/Renderer/ShaderSource.js +31 -26
  81. package/Source/Renderer/demodernizeShader.js +76 -0
  82. package/Source/Scene/AutoExposure.js +5 -5
  83. package/Source/Scene/BatchTable.js +5 -5
  84. package/Source/Scene/BillboardCollection.js +2 -2
  85. package/Source/Scene/BingMapsImageryProvider.js +1 -1
  86. package/Source/Scene/Cesium3DTile.js +8 -2
  87. package/Source/Scene/Cesium3DTileBatchTable.js +28 -28
  88. package/Source/Scene/Cesium3DTilesVoxelProvider.js +12 -0
  89. package/Source/Scene/Cesium3DTileset.js +6 -1
  90. package/Source/Scene/ClassificationPrimitive.js +3 -8
  91. package/Source/Scene/DebugAppearance.js +7 -9
  92. package/Source/Scene/DebugInspector.js +5 -5
  93. package/Source/Scene/DepthPlane.js +0 -6
  94. package/Source/Scene/DerivedCommand.js +8 -22
  95. package/Source/Scene/EllipsoidPrimitive.js +0 -7
  96. package/Source/Scene/GlobeTranslucencyState.js +6 -6
  97. package/Source/Scene/GroundPolylinePrimitive.js +2 -4
  98. package/Source/Scene/InvertClassification.js +9 -10
  99. package/Source/Scene/Material.js +6 -6
  100. package/Source/Scene/Megatexture.js +2 -2
  101. package/Source/Scene/MetadataSemantic.js +8 -0
  102. package/Source/Scene/Model/CustomShader.js +1 -1
  103. package/Source/Scene/Model/FeatureIdPipelineStage.js +4 -4
  104. package/Source/Scene/Model/LightingModel.js +1 -1
  105. package/Source/Scene/Model/MetadataPipelineStage.js +1 -1
  106. package/Source/Scene/Model/PickingPipelineStage.js +1 -1
  107. package/Source/Scene/OIT.js +211 -119
  108. package/Source/Scene/PickDepth.js +2 -2
  109. package/Source/Scene/PointCloud.js +11 -11
  110. package/Source/Scene/PointCloudEyeDomeLighting.js +9 -4
  111. package/Source/Scene/PolylineCollection.js +2 -7
  112. package/Source/Scene/PolylineMaterialAppearance.js +2 -3
  113. package/Source/Scene/PostProcessStage.js +13 -13
  114. package/Source/Scene/PostProcessStageLibrary.js +3 -3
  115. package/Source/Scene/Primitive.js +22 -31
  116. package/Source/Scene/ShadowMap.js +7 -7
  117. package/Source/Scene/ShadowMapShader.js +9 -9
  118. package/Source/Scene/ShadowVolumeAppearance.js +1 -1
  119. package/Source/Scene/TextureAtlas.js +5 -3
  120. package/Source/Scene/Vector3DTilePolylines.js +1 -1
  121. package/Source/Scene/Vector3DTilePrimitive.js +2 -2
  122. package/Source/Scene/VoxelEllipsoidShape.js +15 -7
  123. package/Source/Scene/VoxelPrimitive.js +4 -4
  124. package/Source/Scene/computeFlyToLocationForRectangle.js +10 -1
  125. package/Source/Scene/createElevationBandMaterial.js +10 -15
  126. package/Source/Scene/getClipAndStyleCode.js +1 -1
  127. package/Source/Scene/getClippingFunction.js +3 -3
  128. package/Source/Scene/processVoxelProperties.js +1 -1
  129. package/Source/Shaders/AdjustTranslucentFS.glsl +9 -6
  130. package/Source/Shaders/AdjustTranslucentFS.js +9 -6
  131. package/Source/Shaders/Appearances/AllMaterialAppearanceFS.glsl +7 -7
  132. package/Source/Shaders/Appearances/AllMaterialAppearanceFS.js +7 -7
  133. package/Source/Shaders/Appearances/AllMaterialAppearanceVS.glsl +12 -12
  134. package/Source/Shaders/Appearances/AllMaterialAppearanceVS.js +12 -12
  135. package/Source/Shaders/Appearances/BasicMaterialAppearanceFS.glsl +4 -4
  136. package/Source/Shaders/Appearances/BasicMaterialAppearanceFS.js +4 -4
  137. package/Source/Shaders/Appearances/BasicMaterialAppearanceVS.glsl +6 -6
  138. package/Source/Shaders/Appearances/BasicMaterialAppearanceVS.js +6 -6
  139. package/Source/Shaders/Appearances/EllipsoidSurfaceAppearanceFS.glsl +5 -5
  140. package/Source/Shaders/Appearances/EllipsoidSurfaceAppearanceFS.js +5 -5
  141. package/Source/Shaders/Appearances/EllipsoidSurfaceAppearanceVS.glsl +7 -7
  142. package/Source/Shaders/Appearances/EllipsoidSurfaceAppearanceVS.js +7 -7
  143. package/Source/Shaders/Appearances/PerInstanceColorAppearanceFS.glsl +4 -4
  144. package/Source/Shaders/Appearances/PerInstanceColorAppearanceFS.js +4 -4
  145. package/Source/Shaders/Appearances/PerInstanceColorAppearanceVS.glsl +8 -8
  146. package/Source/Shaders/Appearances/PerInstanceColorAppearanceVS.js +8 -8
  147. package/Source/Shaders/Appearances/PerInstanceFlatColorAppearanceFS.glsl +2 -2
  148. package/Source/Shaders/Appearances/PerInstanceFlatColorAppearanceFS.js +2 -2
  149. package/Source/Shaders/Appearances/PerInstanceFlatColorAppearanceVS.glsl +5 -5
  150. package/Source/Shaders/Appearances/PerInstanceFlatColorAppearanceVS.js +5 -5
  151. package/Source/Shaders/Appearances/PolylineColorAppearanceVS.glsl +10 -10
  152. package/Source/Shaders/Appearances/PolylineColorAppearanceVS.js +10 -10
  153. package/Source/Shaders/Appearances/PolylineMaterialAppearanceVS.glsl +12 -12
  154. package/Source/Shaders/Appearances/PolylineMaterialAppearanceVS.js +12 -12
  155. package/Source/Shaders/Appearances/TexturedMaterialAppearanceFS.glsl +5 -5
  156. package/Source/Shaders/Appearances/TexturedMaterialAppearanceFS.js +5 -5
  157. package/Source/Shaders/Appearances/TexturedMaterialAppearanceVS.glsl +8 -8
  158. package/Source/Shaders/Appearances/TexturedMaterialAppearanceVS.js +8 -8
  159. package/Source/Shaders/BillboardCollectionFS.glsl +15 -15
  160. package/Source/Shaders/BillboardCollectionFS.js +15 -15
  161. package/Source/Shaders/BillboardCollectionVS.glsl +23 -23
  162. package/Source/Shaders/BillboardCollectionVS.js +23 -23
  163. package/Source/Shaders/BrdfLutGeneratorFS.glsl +2 -2
  164. package/Source/Shaders/BrdfLutGeneratorFS.js +2 -2
  165. package/Source/Shaders/Builtin/CzmBuiltins.js +2 -0
  166. package/Source/Shaders/Builtin/Functions/depthClamp.glsl +3 -3
  167. package/Source/Shaders/Builtin/Functions/depthClamp.js +3 -3
  168. package/Source/Shaders/Builtin/Functions/getWaterNoise.glsl +4 -4
  169. package/Source/Shaders/Builtin/Functions/getWaterNoise.js +4 -4
  170. package/Source/Shaders/Builtin/Functions/phong.glsl +1 -1
  171. package/Source/Shaders/Builtin/Functions/phong.js +1 -1
  172. package/Source/Shaders/Builtin/Functions/readDepth.glsl +1 -1
  173. package/Source/Shaders/Builtin/Functions/readDepth.js +1 -1
  174. package/Source/Shaders/Builtin/Functions/sampleOctahedralProjection.glsl +5 -5
  175. package/Source/Shaders/Builtin/Functions/sampleOctahedralProjection.js +5 -5
  176. package/Source/Shaders/Builtin/Functions/shadowDepthCompare.glsl +3 -3
  177. package/Source/Shaders/Builtin/Functions/shadowDepthCompare.js +3 -3
  178. package/Source/Shaders/Builtin/Functions/tangentToEyeSpaceMatrix.glsl +1 -1
  179. package/Source/Shaders/Builtin/Functions/tangentToEyeSpaceMatrix.js +1 -1
  180. package/Source/Shaders/Builtin/Functions/textureCube.glsl +17 -0
  181. package/Source/Shaders/Builtin/Functions/textureCube.js +18 -0
  182. package/Source/Shaders/Builtin/Functions/translateRelativeToEye.glsl +2 -2
  183. package/Source/Shaders/Builtin/Functions/translateRelativeToEye.js +2 -2
  184. package/Source/Shaders/Builtin/Functions/vertexLogDepth.glsl +2 -2
  185. package/Source/Shaders/Builtin/Functions/vertexLogDepth.js +2 -2
  186. package/Source/Shaders/Builtin/Functions/writeDepthClamp.glsl +5 -8
  187. package/Source/Shaders/Builtin/Functions/writeDepthClamp.js +5 -8
  188. package/Source/Shaders/Builtin/Functions/writeLogDepth.glsl +6 -6
  189. package/Source/Shaders/Builtin/Functions/writeLogDepth.js +6 -6
  190. package/Source/Shaders/CloudCollectionFS.glsl +18 -18
  191. package/Source/Shaders/CloudCollectionFS.js +18 -18
  192. package/Source/Shaders/CloudCollectionVS.glsl +11 -11
  193. package/Source/Shaders/CloudCollectionVS.js +11 -11
  194. package/Source/Shaders/CloudNoiseFS.glsl +5 -5
  195. package/Source/Shaders/CloudNoiseFS.js +5 -5
  196. package/Source/Shaders/CloudNoiseVS.glsl +2 -2
  197. package/Source/Shaders/CloudNoiseVS.js +2 -2
  198. package/Source/Shaders/CompareAndPackTranslucentDepth.glsl +4 -4
  199. package/Source/Shaders/CompareAndPackTranslucentDepth.js +4 -4
  200. package/Source/Shaders/CompositeOITFS.glsl +6 -6
  201. package/Source/Shaders/CompositeOITFS.js +6 -6
  202. package/Source/Shaders/DepthPlaneFS.glsl +2 -2
  203. package/Source/Shaders/DepthPlaneFS.js +2 -2
  204. package/Source/Shaders/DepthPlaneVS.glsl +2 -2
  205. package/Source/Shaders/DepthPlaneVS.js +2 -2
  206. package/Source/Shaders/EllipsoidFS.glsl +5 -13
  207. package/Source/Shaders/EllipsoidFS.js +6 -14
  208. package/Source/Shaders/EllipsoidVS.glsl +2 -2
  209. package/Source/Shaders/EllipsoidVS.js +2 -2
  210. package/Source/Shaders/FXAA3_11.glsl +4 -4
  211. package/Source/Shaders/FXAA3_11.js +4 -4
  212. package/Source/Shaders/GlobeFS.glsl +15 -15
  213. package/Source/Shaders/GlobeFS.js +15 -15
  214. package/Source/Shaders/GlobeVS.glsl +17 -17
  215. package/Source/Shaders/GlobeVS.js +17 -17
  216. package/Source/Shaders/Materials/AspectRampMaterial.glsl +1 -1
  217. package/Source/Shaders/Materials/AspectRampMaterial.js +1 -1
  218. package/Source/Shaders/Materials/BumpMapMaterial.glsl +3 -3
  219. package/Source/Shaders/Materials/BumpMapMaterial.js +3 -3
  220. package/Source/Shaders/Materials/ElevationBandMaterial.glsl +3 -3
  221. package/Source/Shaders/Materials/ElevationBandMaterial.js +3 -3
  222. package/Source/Shaders/Materials/ElevationContourMaterial.glsl +2 -1
  223. package/Source/Shaders/Materials/ElevationContourMaterial.js +2 -1
  224. package/Source/Shaders/Materials/ElevationRampMaterial.glsl +1 -1
  225. package/Source/Shaders/Materials/ElevationRampMaterial.js +1 -1
  226. package/Source/Shaders/Materials/GridMaterial.glsl +3 -2
  227. package/Source/Shaders/Materials/GridMaterial.js +3 -2
  228. package/Source/Shaders/Materials/NormalMapMaterial.glsl +1 -1
  229. package/Source/Shaders/Materials/NormalMapMaterial.js +1 -1
  230. package/Source/Shaders/Materials/PolylineArrowMaterial.glsl +3 -2
  231. package/Source/Shaders/Materials/PolylineArrowMaterial.js +3 -2
  232. package/Source/Shaders/Materials/PolylineDashMaterial.glsl +1 -1
  233. package/Source/Shaders/Materials/PolylineDashMaterial.js +1 -1
  234. package/Source/Shaders/Materials/PolylineOutlineMaterial.glsl +1 -1
  235. package/Source/Shaders/Materials/PolylineOutlineMaterial.js +1 -1
  236. package/Source/Shaders/Materials/SlopeRampMaterial.glsl +1 -1
  237. package/Source/Shaders/Materials/SlopeRampMaterial.js +1 -1
  238. package/Source/Shaders/Materials/Water.glsl +1 -1
  239. package/Source/Shaders/Materials/Water.js +1 -1
  240. package/Source/Shaders/Model/ImageBasedLightingStageFS.glsl +3 -3
  241. package/Source/Shaders/Model/ImageBasedLightingStageFS.js +3 -3
  242. package/Source/Shaders/Model/MaterialStageFS.glsl +10 -10
  243. package/Source/Shaders/Model/MaterialStageFS.js +10 -10
  244. package/Source/Shaders/Model/ModelClippingPlanesStageFS.glsl +3 -3
  245. package/Source/Shaders/Model/ModelClippingPlanesStageFS.js +3 -3
  246. package/Source/Shaders/Model/ModelFS.glsl +1 -1
  247. package/Source/Shaders/Model/ModelFS.js +1 -1
  248. package/Source/Shaders/Model/PrimitiveOutlineStageFS.glsl +3 -3
  249. package/Source/Shaders/Model/PrimitiveOutlineStageFS.js +3 -3
  250. package/Source/Shaders/Model/SelectedFeatureIdStageCommon.glsl +1 -1
  251. package/Source/Shaders/Model/SelectedFeatureIdStageCommon.js +1 -1
  252. package/Source/Shaders/OctahedralProjectionAtlasFS.glsl +8 -8
  253. package/Source/Shaders/OctahedralProjectionAtlasFS.js +8 -8
  254. package/Source/Shaders/OctahedralProjectionFS.glsl +4 -4
  255. package/Source/Shaders/OctahedralProjectionFS.js +4 -4
  256. package/Source/Shaders/OctahedralProjectionVS.glsl +3 -3
  257. package/Source/Shaders/OctahedralProjectionVS.js +3 -3
  258. package/Source/Shaders/PointPrimitiveCollectionFS.glsl +6 -6
  259. package/Source/Shaders/PointPrimitiveCollectionFS.js +6 -6
  260. package/Source/Shaders/PointPrimitiveCollectionVS.glsl +12 -12
  261. package/Source/Shaders/PointPrimitiveCollectionVS.js +12 -12
  262. package/Source/Shaders/PolylineFS.glsl +3 -3
  263. package/Source/Shaders/PolylineFS.js +3 -3
  264. package/Source/Shaders/PolylineShadowVolumeFS.glsl +12 -16
  265. package/Source/Shaders/PolylineShadowVolumeFS.js +12 -16
  266. package/Source/Shaders/PolylineShadowVolumeMorphFS.glsl +8 -8
  267. package/Source/Shaders/PolylineShadowVolumeMorphFS.js +8 -8
  268. package/Source/Shaders/PolylineShadowVolumeMorphVS.glsl +20 -20
  269. package/Source/Shaders/PolylineShadowVolumeMorphVS.js +20 -20
  270. package/Source/Shaders/PolylineShadowVolumeVS.glsl +20 -20
  271. package/Source/Shaders/PolylineShadowVolumeVS.js +20 -20
  272. package/Source/Shaders/PolylineVS.glsl +17 -17
  273. package/Source/Shaders/PolylineVS.js +17 -17
  274. package/Source/Shaders/PostProcessStages/AcesTonemappingStage.glsl +4 -4
  275. package/Source/Shaders/PostProcessStages/AcesTonemappingStage.js +4 -4
  276. package/Source/Shaders/PostProcessStages/AdditiveBlend.glsl +4 -4
  277. package/Source/Shaders/PostProcessStages/AdditiveBlend.js +4 -4
  278. package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.glsl +4 -4
  279. package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.js +4 -4
  280. package/Source/Shaders/PostProcessStages/AmbientOcclusionModulate.glsl +4 -4
  281. package/Source/Shaders/PostProcessStages/AmbientOcclusionModulate.js +4 -4
  282. package/Source/Shaders/PostProcessStages/BlackAndWhite.glsl +4 -4
  283. package/Source/Shaders/PostProcessStages/BlackAndWhite.js +4 -4
  284. package/Source/Shaders/PostProcessStages/BloomComposite.glsl +5 -5
  285. package/Source/Shaders/PostProcessStages/BloomComposite.js +5 -5
  286. package/Source/Shaders/PostProcessStages/BrightPass.glsl +3 -3
  287. package/Source/Shaders/PostProcessStages/BrightPass.js +3 -3
  288. package/Source/Shaders/PostProcessStages/Brightness.glsl +3 -3
  289. package/Source/Shaders/PostProcessStages/Brightness.js +3 -3
  290. package/Source/Shaders/PostProcessStages/CompositeTranslucentClassification.glsl +5 -5
  291. package/Source/Shaders/PostProcessStages/CompositeTranslucentClassification.js +5 -5
  292. package/Source/Shaders/PostProcessStages/ContrastBias.glsl +3 -3
  293. package/Source/Shaders/PostProcessStages/ContrastBias.js +3 -3
  294. package/Source/Shaders/PostProcessStages/DepthOfField.glsl +2 -2
  295. package/Source/Shaders/PostProcessStages/DepthOfField.js +2 -2
  296. package/Source/Shaders/PostProcessStages/DepthView.glsl +2 -2
  297. package/Source/Shaders/PostProcessStages/DepthView.js +2 -2
  298. package/Source/Shaders/PostProcessStages/DepthViewPacked.glsl +3 -3
  299. package/Source/Shaders/PostProcessStages/DepthViewPacked.js +3 -3
  300. package/Source/Shaders/PostProcessStages/EdgeDetection.glsl +7 -7
  301. package/Source/Shaders/PostProcessStages/EdgeDetection.js +7 -7
  302. package/Source/Shaders/PostProcessStages/FXAA.glsl +3 -3
  303. package/Source/Shaders/PostProcessStages/FXAA.js +3 -3
  304. package/Source/Shaders/PostProcessStages/FilmicTonemapping.glsl +4 -4
  305. package/Source/Shaders/PostProcessStages/FilmicTonemapping.js +4 -4
  306. package/Source/Shaders/PostProcessStages/GaussianBlur1D.glsl +5 -5
  307. package/Source/Shaders/PostProcessStages/GaussianBlur1D.js +5 -5
  308. package/Source/Shaders/PostProcessStages/LensFlare.glsl +13 -13
  309. package/Source/Shaders/PostProcessStages/LensFlare.js +13 -13
  310. package/Source/Shaders/PostProcessStages/ModifiedReinhardTonemapping.glsl +4 -4
  311. package/Source/Shaders/PostProcessStages/ModifiedReinhardTonemapping.js +4 -4
  312. package/Source/Shaders/PostProcessStages/NightVision.glsl +3 -3
  313. package/Source/Shaders/PostProcessStages/NightVision.js +3 -3
  314. package/Source/Shaders/PostProcessStages/PassThrough.glsl +2 -2
  315. package/Source/Shaders/PostProcessStages/PassThrough.js +2 -2
  316. package/Source/Shaders/PostProcessStages/PassThroughDepth.glsl +2 -2
  317. package/Source/Shaders/PostProcessStages/PassThroughDepth.js +2 -2
  318. package/Source/Shaders/PostProcessStages/PointCloudEyeDomeLighting.glsl +7 -9
  319. package/Source/Shaders/PostProcessStages/PointCloudEyeDomeLighting.js +8 -10
  320. package/Source/Shaders/PostProcessStages/ReinhardTonemapping.glsl +4 -4
  321. package/Source/Shaders/PostProcessStages/ReinhardTonemapping.js +4 -4
  322. package/Source/Shaders/PostProcessStages/Silhouette.glsl +4 -4
  323. package/Source/Shaders/PostProcessStages/Silhouette.js +4 -4
  324. package/Source/Shaders/ReprojectWebMercatorFS.glsl +2 -2
  325. package/Source/Shaders/ReprojectWebMercatorFS.js +2 -2
  326. package/Source/Shaders/ReprojectWebMercatorVS.glsl +3 -3
  327. package/Source/Shaders/ReprojectWebMercatorVS.js +3 -3
  328. package/Source/Shaders/ShadowVolumeAppearanceFS.glsl +19 -23
  329. package/Source/Shaders/ShadowVolumeAppearanceFS.js +20 -24
  330. package/Source/Shaders/ShadowVolumeAppearanceVS.glsl +12 -12
  331. package/Source/Shaders/ShadowVolumeAppearanceVS.js +12 -12
  332. package/Source/Shaders/ShadowVolumeFS.glsl +2 -6
  333. package/Source/Shaders/ShadowVolumeFS.js +3 -7
  334. package/Source/Shaders/SkyAtmosphereFS.glsl +6 -6
  335. package/Source/Shaders/SkyAtmosphereFS.js +6 -6
  336. package/Source/Shaders/SkyAtmosphereVS.glsl +6 -6
  337. package/Source/Shaders/SkyAtmosphereVS.js +6 -6
  338. package/Source/Shaders/SkyBoxFS.glsl +3 -3
  339. package/Source/Shaders/SkyBoxFS.js +3 -3
  340. package/Source/Shaders/SkyBoxVS.glsl +2 -2
  341. package/Source/Shaders/SkyBoxVS.js +2 -2
  342. package/Source/Shaders/SunFS.glsl +3 -3
  343. package/Source/Shaders/SunFS.js +3 -3
  344. package/Source/Shaders/SunTextureFS.glsl +2 -2
  345. package/Source/Shaders/SunTextureFS.js +2 -2
  346. package/Source/Shaders/SunVS.glsl +2 -2
  347. package/Source/Shaders/SunVS.js +2 -2
  348. package/Source/Shaders/Vector3DTileClampedPolylinesFS.glsl +9 -13
  349. package/Source/Shaders/Vector3DTileClampedPolylinesFS.js +9 -13
  350. package/Source/Shaders/Vector3DTileClampedPolylinesVS.glsl +12 -12
  351. package/Source/Shaders/Vector3DTileClampedPolylinesVS.js +12 -12
  352. package/Source/Shaders/Vector3DTilePolylinesVS.glsl +5 -5
  353. package/Source/Shaders/Vector3DTilePolylinesVS.js +5 -5
  354. package/Source/Shaders/VectorTileVS.glsl +2 -2
  355. package/Source/Shaders/VectorTileVS.js +2 -2
  356. package/Source/Shaders/ViewportQuadFS.glsl +2 -2
  357. package/Source/Shaders/ViewportQuadFS.js +2 -2
  358. package/Source/Shaders/ViewportQuadVS.glsl +3 -3
  359. package/Source/Shaders/ViewportQuadVS.js +3 -3
  360. package/Source/Shaders/Voxels/IntersectDepth.glsl +1 -1
  361. package/Source/Shaders/Voxels/IntersectDepth.js +1 -1
  362. package/Source/Shaders/Voxels/IntersectEllipsoid.glsl +12 -2
  363. package/Source/Shaders/Voxels/IntersectEllipsoid.js +12 -2
  364. package/Source/Shaders/Voxels/Megatexture.glsl +1 -1
  365. package/Source/Shaders/Voxels/Megatexture.js +1 -1
  366. package/Source/Shaders/Voxels/Octree.glsl +4 -4
  367. package/Source/Shaders/Voxels/Octree.js +4 -4
  368. package/Source/Shaders/Voxels/VoxelFS.glsl +2 -2
  369. package/Source/Shaders/Voxels/VoxelFS.js +2 -2
  370. package/Source/Shaders/Voxels/VoxelVS.glsl +1 -1
  371. package/Source/Shaders/Voxels/VoxelVS.js +1 -1
  372. package/Source/Shaders/Voxels/convertUvToCylinder.glsl +5 -9
  373. package/Source/Shaders/Voxels/convertUvToCylinder.js +5 -9
  374. package/Source/Shaders/Voxels/convertUvToEllipsoid.glsl +3 -6
  375. package/Source/Shaders/Voxels/convertUvToEllipsoid.js +3 -6
  376. package/Source/WorkersES6/decodeDraco.js +9 -1
  377. package/index.d.ts +26 -12
  378. package/index.js +53 -52
  379. package/package.json +1 -1
  380. package/Source/Renderer/modernizeShader.js +0 -242
@@ -167,6 +167,7 @@ function Cesium3DTileset(options) {
167
167
  this._asset = undefined; // Metadata for the entire tileset
168
168
  this._properties = undefined; // Metadata for per-model/point/etc properties
169
169
  this._geometricError = undefined; // Geometric error when the tree is not rendered at all
170
+ this._scaledGeometricError = undefined; // Geometric error scaled by root tile scale
170
171
  this._extensionsUsed = undefined;
171
172
  this._extensions = undefined;
172
173
  this._modelUpAxis = undefined;
@@ -1007,6 +1008,11 @@ function Cesium3DTileset(options) {
1007
1008
  return;
1008
1009
  }
1009
1010
 
1011
+ // Set these before loading the tileset since _geometricError
1012
+ // and _scaledGeometricError get accessed during tile creation
1013
+ that._geometricError = tilesetJson.geometricError;
1014
+ that._scaledGeometricError = tilesetJson.geometricError;
1015
+
1010
1016
  that._root = that.loadTileset(resource, tilesetJson);
1011
1017
 
1012
1018
  // Handle legacy gltfUpAxis option
@@ -1019,7 +1025,6 @@ function Cesium3DTileset(options) {
1019
1025
  const asset = tilesetJson.asset;
1020
1026
  that._asset = asset;
1021
1027
  that._properties = tilesetJson.properties;
1022
- that._geometricError = tilesetJson.geometricError;
1023
1028
  that._extensionsUsed = tilesetJson.extensionsUsed;
1024
1029
  that._extensions = tilesetJson.extensions;
1025
1030
  that._modelUpAxis = modelUpAxis;
@@ -493,22 +493,17 @@ function modifyForEncodedNormals(primitive, vertexShaderSource) {
493
493
  return vertexShaderSource;
494
494
  }
495
495
 
496
- if (
497
- vertexShaderSource.search(/attribute\s+vec3\s+extrudeDirection;/g) !== -1
498
- ) {
496
+ if (vertexShaderSource.search(/in\s+vec3\s+extrudeDirection;/g) !== -1) {
499
497
  const attributeName = "compressedAttributes";
500
498
 
501
499
  //only shadow volumes use extrudeDirection, and shadow volumes use vertexFormat: POSITION_ONLY so we don't need to check other attributes
502
- const attributeDecl = `attribute vec2 ${attributeName};`;
500
+ const attributeDecl = `in vec2 ${attributeName};`;
503
501
 
504
502
  const globalDecl = "vec3 extrudeDirection;\n";
505
503
  const decode = ` extrudeDirection = czm_octDecode(${attributeName}, 65535.0);\n`;
506
504
 
507
505
  let modifiedVS = vertexShaderSource;
508
- modifiedVS = modifiedVS.replace(
509
- /attribute\s+vec3\s+extrudeDirection;/g,
510
- ""
511
- );
506
+ modifiedVS = modifiedVS.replace(/in\s+vec3\s+extrudeDirection;/g, "");
512
507
  modifiedVS = ShaderSource.replaceMain(
513
508
  modifiedVS,
514
509
  "czm_non_compressed_main"
@@ -88,14 +88,12 @@ function DebugAppearance(options) {
88
88
 
89
89
  const vs =
90
90
  `${
91
- "attribute vec3 position3DHigh;\n" +
92
- "attribute vec3 position3DLow;\n" +
93
- "attribute float batchId;\n"
91
+ "in vec3 position3DHigh;\n" +
92
+ "in vec3 position3DLow;\n" +
93
+ "in float batchId;\n"
94
94
  }${
95
- perInstanceAttribute
96
- ? ""
97
- : `attribute ${glslDatatype} ${attributeName};\n`
98
- }varying ${glslDatatype} ${varyingName};\n` +
95
+ perInstanceAttribute ? "" : `in ${glslDatatype} ${attributeName};\n`
96
+ }out ${glslDatatype} ${varyingName};\n` +
99
97
  `void main()\n` +
100
98
  `{\n` +
101
99
  `vec4 p = czm_translateRelativeToEye(position3DHigh, position3DLow);\n${
@@ -105,10 +103,10 @@ function DebugAppearance(options) {
105
103
  }gl_Position = czm_modelViewProjectionRelativeToEye * p;\n` +
106
104
  `}`;
107
105
  const fs =
108
- `varying ${glslDatatype} ${varyingName};\n${getColor}\n` +
106
+ `in ${glslDatatype} ${varyingName};\n${getColor}\n` +
109
107
  `void main()\n` +
110
108
  `{\n` +
111
- `gl_FragColor = getColor();\n` +
109
+ `out_FragColor = getColor();\n` +
112
110
  `}`;
113
111
 
114
112
  /**
@@ -31,7 +31,7 @@ function createDebugShowFrustumsShaderProgram(scene, shaderProgram) {
31
31
  const targets = [];
32
32
  fs.sources = fs.sources.map(function (source) {
33
33
  source = ShaderSource.replaceMain(source, "czm_Debug_main");
34
- const re = /gl_FragData\[(\d+)\]/g;
34
+ const re = /out_FragData_(\d+)/g;
35
35
  let match;
36
36
  while ((match = re.exec(source)) !== null) {
37
37
  if (targets.indexOf(match[1]) === -1) {
@@ -52,12 +52,12 @@ function createDebugShowFrustumsShaderProgram(scene, shaderProgram) {
52
52
  let i;
53
53
  if (length > 0) {
54
54
  for (i = 0; i < length; ++i) {
55
- newMain += ` gl_FragData[${targets[i]}].rgb *= debugShowCommandsColor;\n`;
56
- newMain += ` gl_FragData[${targets[i]}].rgb *= debugShowFrustumsColor;\n`;
55
+ newMain += ` out_FragData_${targets[i]}.rgb *= debugShowCommandsColor;\n`;
56
+ newMain += ` out_FragData_${targets[i]}.rgb *= debugShowFrustumsColor;\n`;
57
57
  }
58
58
  } else {
59
- newMain += " gl_FragColor.rgb *= debugShowCommandsColor;\n";
60
- newMain += " gl_FragColor.rgb *= debugShowFrustumsColor;\n";
59
+ newMain += " out_FragColor.rgb *= debugShowCommandsColor;\n";
60
+ newMain += " out_FragColor.rgb *= debugShowFrustumsColor;\n";
61
61
  }
62
62
  newMain += "}";
63
63
 
@@ -173,12 +173,6 @@ DepthPlane.prototype.update = function (frameState) {
173
173
  sources: [DepthPlaneFS],
174
174
  });
175
175
  if (useLogDepth) {
176
- const extension =
177
- "#ifdef GL_EXT_frag_depth \n" +
178
- "#extension GL_EXT_frag_depth : enable \n" +
179
- "#endif \n\n";
180
-
181
- fs.sources.push(extension);
182
176
  fs.defines.push("LOG_DEPTH");
183
177
  vs.defines.push("LOG_DEPTH");
184
178
  }
@@ -8,7 +8,7 @@ import ShaderSource from "../Renderer/ShaderSource.js";
8
8
  */
9
9
  function DerivedCommand() {}
10
10
 
11
- const fragDepthRegex = /\bgl_FragDepthEXT\b/;
11
+ const fragDepthRegex = /\bgl_FragDepth\b/;
12
12
  const discardRegex = /\bdiscard\b/;
13
13
 
14
14
  function getDepthOnlyShaderProgram(context, shaderProgram) {
@@ -44,18 +44,18 @@ function getDepthOnlyShaderProgram(context, shaderProgram) {
44
44
  let source;
45
45
  if (!writesDepthOrDiscards && !usesLogDepth) {
46
46
  source =
47
- "void main() \n" + "{ \n" + " gl_FragColor = vec4(1.0); \n" + "} \n";
47
+ "void main() \n" +
48
+ "{ \n" +
49
+ " out_FragColor = vec4(1.0); \n" +
50
+ "} \n";
48
51
  fs = new ShaderSource({
49
52
  sources: [source],
50
53
  });
51
54
  } else if (!writesDepthOrDiscards && usesLogDepth) {
52
55
  source =
53
- "#ifdef GL_EXT_frag_depth \n" +
54
- "#extension GL_EXT_frag_depth : enable \n" +
55
- "#endif \n\n" +
56
56
  "void main() \n" +
57
57
  "{ \n" +
58
- " gl_FragColor = vec4(1.0); \n" +
58
+ " out_FragColor = vec4(1.0); \n" +
59
59
  " czm_writeLogDepth(); \n" +
60
60
  "} \n";
61
61
  fs = new ShaderSource({
@@ -145,7 +145,6 @@ DerivedCommand.createDepthOnlyDerivedCommand = function (
145
145
 
146
146
  const writeLogDepthRegex = /\s+czm_writeLogDepth\(/;
147
147
  const vertexlogDepthRegex = /\s+czm_vertexLogDepth\(/;
148
- const extensionRegex = /\s*#extension\s+GL_EXT_frag_depth\s*:\s*enable/;
149
148
 
150
149
  function getLogDepthShaderProgram(context, shaderProgram) {
151
150
  const disableLogDepthWrite =
@@ -210,20 +209,7 @@ function getLogDepthShaderProgram(context, shaderProgram) {
210
209
  writesLogDepth = true;
211
210
  }
212
211
 
213
- let addExtension = true;
214
- for (i = 0; i < length; ++i) {
215
- if (extensionRegex.test(sources[i])) {
216
- addExtension = false;
217
- }
218
- }
219
-
220
212
  let logSource = "";
221
- if (addExtension) {
222
- logSource +=
223
- "#ifdef GL_EXT_frag_depth \n" +
224
- "#extension GL_EXT_frag_depth : enable \n" +
225
- "#endif \n\n";
226
- }
227
213
 
228
214
  if (!writesLogDepth) {
229
215
  for (i = 0; i < length; i++) {
@@ -297,10 +283,10 @@ function getPickShaderProgram(context, shaderProgram, pickId) {
297
283
  "void main() \n" +
298
284
  "{ \n" +
299
285
  " czm_non_pick_main(); \n" +
300
- " if (gl_FragColor.a == 0.0) { \n" +
286
+ " if (out_FragColor.a == 0.0) { \n" +
301
287
  " discard; \n" +
302
288
  " } \n" +
303
- " gl_FragColor = "
289
+ " out_FragColor = "
304
290
  }${pickId}; \n` + `} \n`;
305
291
  const newSources = new Array(length + 1);
306
292
  for (let i = 0; i < length; ++i) {
@@ -238,11 +238,6 @@ function getVertexArray(context) {
238
238
  return vertexArray;
239
239
  }
240
240
 
241
- const logDepthExtension =
242
- "#ifdef GL_EXT_frag_depth \n" +
243
- "#extension GL_EXT_frag_depth : enable \n" +
244
- "#endif \n\n";
245
-
246
241
  /**
247
242
  * Called when {@link Viewer} or {@link CesiumWidget} render the scene to
248
243
  * get the draw commands needed to render this primitive.
@@ -378,7 +373,6 @@ EllipsoidPrimitive.prototype.update = function (frameState) {
378
373
  if (this._useLogDepth) {
379
374
  vs.defines.push("LOG_DEPTH");
380
375
  fs.defines.push("LOG_DEPTH");
381
- fs.sources.push(logDepthExtension);
382
376
  }
383
377
 
384
378
  this._sp = ShaderProgram.replaceCache({
@@ -443,7 +437,6 @@ EllipsoidPrimitive.prototype.update = function (frameState) {
443
437
  if (this._useLogDepth) {
444
438
  vs.defines.push("LOG_DEPTH");
445
439
  fs.defines.push("LOG_DEPTH");
446
- fs.sources.push(logDepthExtension);
447
440
  }
448
441
 
449
442
  this._pickSP = ShaderProgram.replaceCache({
@@ -401,7 +401,7 @@ function getDepthOnlyShaderProgram(vs, fs) {
401
401
  }
402
402
 
403
403
  const depthOnlyShader =
404
- "void main() \n" + "{ \n" + " gl_FragColor = vec4(1.0); \n" + "} \n";
404
+ "void main() \n" + "{ \n" + " out_FragColor = vec4(1.0); \n" + "} \n";
405
405
 
406
406
  fs.sources = [depthOnlyShader];
407
407
  }
@@ -423,7 +423,7 @@ function getTranslucentShaderProgram(vs, fs) {
423
423
  "{ \n" +
424
424
  " vec2 st = gl_FragCoord.xy / czm_viewport.zw; \n" +
425
425
  "#ifdef MANUAL_DEPTH_TEST \n" +
426
- " float logDepthOrDepth = czm_unpackDepth(texture2D(czm_globeDepthTexture, st)); \n" +
426
+ " float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, st)); \n" +
427
427
  " if (logDepthOrDepth != 0.0) \n" +
428
428
  " { \n" +
429
429
  " vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); \n" +
@@ -435,13 +435,13 @@ function getTranslucentShaderProgram(vs, fs) {
435
435
  " } \n" +
436
436
  "#endif \n" +
437
437
  " czm_globe_translucency_main(); \n" +
438
- " vec4 classificationColor = texture2D(u_classificationTexture, st); \n" +
438
+ " vec4 classificationColor = texture(u_classificationTexture, st); \n" +
439
439
  " if (classificationColor.a > 0.0) \n" +
440
440
  " { \n" +
441
441
  " // Reverse premultiplication process to get the correct composited result of the classification primitives \n" +
442
442
  " classificationColor.rgb /= classificationColor.a; \n" +
443
443
  " } \n" +
444
- " gl_FragColor = classificationColor * vec4(classificationColor.aaa, 1.0) + gl_FragColor * (1.0 - classificationColor.a); \n" +
444
+ " out_FragColor = classificationColor * vec4(classificationColor.aaa, 1.0) + out_FragColor * (1.0 - classificationColor.a); \n" +
445
445
  "} \n";
446
446
 
447
447
  sources.push(globeTranslucencyMain);
@@ -473,12 +473,12 @@ function getPickShaderProgram(vs, fs) {
473
473
  "void main() \n" +
474
474
  "{ \n" +
475
475
  " vec2 st = gl_FragCoord.xy / czm_viewport.zw; \n" +
476
- " vec4 pickColor = texture2D(u_classificationTexture, st); \n" +
476
+ " vec4 pickColor = texture(u_classificationTexture, st); \n" +
477
477
  " if (pickColor == vec4(0.0)) \n" +
478
478
  " { \n" +
479
479
  " discard; \n" +
480
480
  " } \n" +
481
- " gl_FragColor = pickColor; \n" +
481
+ " out_FragColor = pickColor; \n" +
482
482
  "} \n";
483
483
 
484
484
  fs.sources = [pickShader];
@@ -405,12 +405,10 @@ function createShaderProgram(groundPolylinePrimitive, frameState, appearance) {
405
405
 
406
406
  // Check for use of v_width and v_polylineAngle in material shader
407
407
  // to determine whether these varyings should be active in the vertex shader.
408
- if (
409
- materialShaderSource.search(/varying\s+float\s+v_polylineAngle;/g) !== -1
410
- ) {
408
+ if (materialShaderSource.search(/in\s+float\s+v_polylineAngle;/g) !== -1) {
411
409
  vsDefines.push("ANGLE_VARYING");
412
410
  }
413
- if (materialShaderSource.search(/varying\s+float\s+v_width;/g) !== -1) {
411
+ if (materialShaderSource.search(/in\s+float\s+v_width;/g) !== -1) {
414
412
  vsDefines.push("WIDTH_VARYING");
415
413
  }
416
414
  } else {
@@ -126,19 +126,18 @@ const rsDefault = {
126
126
  };
127
127
 
128
128
  const translucentFS =
129
- "#extension GL_EXT_frag_depth : enable\n" +
130
129
  "uniform sampler2D colorTexture;\n" +
131
130
  "uniform sampler2D depthTexture;\n" +
132
131
  "uniform sampler2D classifiedTexture;\n" +
133
- "varying vec2 v_textureCoordinates;\n" +
132
+ "in vec2 v_textureCoordinates;\n" +
134
133
  "void main()\n" +
135
134
  "{\n" +
136
- " vec4 color = texture2D(colorTexture, v_textureCoordinates);\n" +
135
+ " vec4 color = texture(colorTexture, v_textureCoordinates);\n" +
137
136
  " if (color.a == 0.0)\n" +
138
137
  " {\n" +
139
138
  " discard;\n" +
140
139
  " }\n" +
141
- " bool isClassified = all(equal(texture2D(classifiedTexture, v_textureCoordinates), vec4(0.0)));\n" +
140
+ " bool isClassified = all(equal(texture(classifiedTexture, v_textureCoordinates), vec4(0.0)));\n" +
142
141
  "#ifdef UNCLASSIFIED\n" +
143
142
  " vec4 highlightColor = czm_invertClassificationColor;\n" +
144
143
  " if (isClassified)\n" +
@@ -152,24 +151,24 @@ const translucentFS =
152
151
  " discard;\n" +
153
152
  " }\n" +
154
153
  "#endif\n" +
155
- " gl_FragColor = color * highlightColor;\n" +
156
- " gl_FragDepthEXT = texture2D(depthTexture, v_textureCoordinates).r;\n" +
154
+ " out_FragColor = color * highlightColor;\n" +
155
+ " gl_FragDepth = texture(depthTexture, v_textureCoordinates).r;\n" +
157
156
  "}\n";
158
157
 
159
158
  const opaqueFS =
160
159
  "uniform sampler2D colorTexture;\n" +
161
- "varying vec2 v_textureCoordinates;\n" +
160
+ "in vec2 v_textureCoordinates;\n" +
162
161
  "void main()\n" +
163
162
  "{\n" +
164
- " vec4 color = texture2D(colorTexture, v_textureCoordinates);\n" +
163
+ " vec4 color = texture(colorTexture, v_textureCoordinates);\n" +
165
164
  " if (color.a == 0.0)\n" +
166
165
  " {\n" +
167
166
  " discard;\n" +
168
167
  " }\n" +
169
168
  "#ifdef UNCLASSIFIED\n" +
170
- " gl_FragColor = color * czm_invertClassificationColor;\n" +
169
+ " out_FragColor = color * czm_invertClassificationColor;\n" +
171
170
  "#else\n" +
172
- " gl_FragColor = color;\n" +
171
+ " out_FragColor = color;\n" +
173
172
  "#endif\n" +
174
173
  "}\n";
175
174
 
@@ -1264,8 +1264,8 @@ Material._materialCache.addMaterial(Material.ImageType, {
1264
1264
  },
1265
1265
  components: {
1266
1266
  diffuse:
1267
- "texture2D(image, fract(repeat * materialInput.st)).rgb * color.rgb",
1268
- alpha: "texture2D(image, fract(repeat * materialInput.st)).a * color.a",
1267
+ "texture(image, fract(repeat * materialInput.st)).rgb * color.rgb",
1268
+ alpha: "texture(image, fract(repeat * materialInput.st)).a * color.a",
1269
1269
  },
1270
1270
  },
1271
1271
  translucent: function (material) {
@@ -1288,7 +1288,7 @@ Material._materialCache.addMaterial(Material.DiffuseMapType, {
1288
1288
  repeat: new Cartesian2(1.0, 1.0),
1289
1289
  },
1290
1290
  components: {
1291
- diffuse: "texture2D(image, fract(repeat * materialInput.st)).channels",
1291
+ diffuse: "texture(image, fract(repeat * materialInput.st)).channels",
1292
1292
  },
1293
1293
  },
1294
1294
  translucent: false,
@@ -1309,7 +1309,7 @@ Material._materialCache.addMaterial(Material.AlphaMapType, {
1309
1309
  repeat: new Cartesian2(1.0, 1.0),
1310
1310
  },
1311
1311
  components: {
1312
- alpha: "texture2D(image, fract(repeat * materialInput.st)).channel",
1312
+ alpha: "texture(image, fract(repeat * materialInput.st)).channel",
1313
1313
  },
1314
1314
  },
1315
1315
  translucent: true,
@@ -1330,7 +1330,7 @@ Material._materialCache.addMaterial(Material.SpecularMapType, {
1330
1330
  repeat: new Cartesian2(1.0, 1.0),
1331
1331
  },
1332
1332
  components: {
1333
- specular: "texture2D(image, fract(repeat * materialInput.st)).channel",
1333
+ specular: "texture(image, fract(repeat * materialInput.st)).channel",
1334
1334
  },
1335
1335
  },
1336
1336
  translucent: false,
@@ -1351,7 +1351,7 @@ Material._materialCache.addMaterial(Material.EmissionMapType, {
1351
1351
  repeat: new Cartesian2(1.0, 1.0),
1352
1352
  },
1353
1353
  components: {
1354
- emission: "texture2D(image, fract(repeat * materialInput.st)).channels",
1354
+ emission: "texture(image, fract(repeat * materialInput.st)).channels",
1355
1355
  },
1356
1356
  },
1357
1357
  translucent: false,
@@ -63,9 +63,9 @@ function Megatexture(
63
63
 
64
64
  let pixelFormat;
65
65
  if (channelCount === 1) {
66
- pixelFormat = PixelFormat.LUMINANCE;
66
+ pixelFormat = context.webgl2 ? PixelFormat.RED : PixelFormat.LUMINANCE;
67
67
  } else if (channelCount === 2) {
68
- pixelFormat = PixelFormat.LUMINANCE_ALPHA;
68
+ pixelFormat = context.webgl2 ? PixelFormat.RG : PixelFormat.LUMINANCE_ALPHA;
69
69
  } else if (channelCount === 3) {
70
70
  pixelFormat = PixelFormat.RGB;
71
71
  } else if (channelCount === 4) {
@@ -32,6 +32,14 @@ const MetadataSemantic = {
32
32
  * @private
33
33
  */
34
34
  DESCRIPTION: "DESCRIPTION",
35
+ /**
36
+ * The number of tiles in a tileset, stored as a <code>UINT64</code>.
37
+ *
38
+ * @type {String}
39
+ * @constant
40
+ * @private
41
+ */
42
+ TILESET_TILE_COUNT: "TILESET_TILE_COUNT",
35
43
  /**
36
44
  * A bounding box for a tile, stored as an array of 12 <code>FLOAT32</code> or <code>FLOAT64</code> components. The components are the same format as for <code>boundingVolume.box</code> in 3D Tiles 1.0. This semantic is used to provide a tighter bounding volume than the one implicitly calculated in implicit tiling.
37
45
  *
@@ -113,7 +113,7 @@ import CustomShaderTranslucencyMode from "./CustomShaderTranslucencyMode.js";
113
113
  * `,
114
114
  * fragmentShaderText: `
115
115
  * void fragmentMain(FragmentInput fsInput, inout czm_modelMaterial material) {
116
- * material.normal = texture2D(u_normalMap, fsInput.attributes.texCoord_0);
116
+ * material.normal = texture(u_normalMap, fsInput.attributes.texCoord_0);
117
117
  * material.diffuse = v_selectedColor;
118
118
  * }
119
119
  * `
@@ -295,13 +295,13 @@ function processImplicitRange(
295
295
  );
296
296
 
297
297
  // Declare the vertex attribute in the shader
298
- // Example: attribute float a_implicit_feature_id_n;
298
+ // Example: in float a_implicit_feature_id_n;
299
299
  const shaderBuilder = renderResources.shaderBuilder;
300
300
  const implicitAttributeName = `a_implicit_${variableName}`;
301
301
  shaderBuilder.addAttribute("float", implicitAttributeName);
302
302
 
303
303
  // Also declare the corresponding varyings
304
- // Example: varying float v_implicit_feature_id_n;
304
+ // Example: in float v_implicit_feature_id_n;
305
305
  const implicitVaryingName = `v_implicit_${variableName}`;
306
306
  shaderBuilder.addVarying("float", implicitVaryingName);
307
307
 
@@ -388,9 +388,9 @@ function processTexture(
388
388
  );
389
389
 
390
390
  // Read one or more channels from the texture
391
- // example: texture2D(u_featureIdTexture_0, v_texCoord_1).rg
391
+ // example: texture(u_featureIdTexture_0, v_texCoord_1).rg
392
392
  const texCoord = `v_texCoord_${textureReader.texCoord}`;
393
- const textureRead = `texture2D(${uniformName}, ${texCoord}).${channels}`;
393
+ const textureRead = `texture(${uniformName}, ${texCoord}).${channels}`;
394
394
 
395
395
  // Finally, assign to the struct field. Example:
396
396
  // featureIds.featureId_0 = unpacked;
@@ -9,7 +9,7 @@ const LightingModel = {
9
9
  /**
10
10
  * Use unlit shading, i.e. skip lighting calculations. The model's
11
11
  * diffuse color (assumed to be linear RGB, not sRGB) is used directly
12
- * when computing <code>gl_FragColor</code>. The alpha mode is still
12
+ * when computing <code>out_FragColor</code>. The alpha mode is still
13
13
  * applied.
14
14
  *
15
15
  * @type {Number}
@@ -452,7 +452,7 @@ function addPropertyTexturePropertyMetadata(renderResources, propertyInfo) {
452
452
 
453
453
  // Get a GLSL expression for the value of the property
454
454
  const texCoordVariable = `attributes.texCoord_${texCoord}`;
455
- const valueExpression = `texture2D(${textureUniformName}, ${texCoordVariable}).${channels}`;
455
+ const valueExpression = `texture(${textureUniformName}, ${texCoordVariable}).${channels}`;
456
456
 
457
457
  // Some types need an unpacking step or two. For example, since texture reads
458
458
  // are always normalized, UINT8 (not normalized) properties need to be
@@ -157,7 +157,7 @@ function processPickTexture(renderResources, primitive, instances) {
157
157
 
158
158
  // The feature ID is ignored if it is greater than the number of features.
159
159
  renderResources.pickId =
160
- "((selectedFeature.id < int(model_featuresLength)) ? texture2D(model_pickTexture, selectedFeature.st) : vec4(0.0))";
160
+ "((selectedFeature.id < int(model_featuresLength)) ? texture(model_pickTexture, selectedFeature.st) : vec4(0.0))";
161
161
  }
162
162
 
163
163
  function processInstancedPickIds(renderResources, context) {