@cesium/engine 24.0.0 → 25.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 (312) hide show
  1. package/Build/Workers/{chunk-NKT5K3K3.js → chunk-35H3UBIO.js} +13 -12
  2. package/Build/Workers/{chunk-5A2SW66E.js → chunk-3LSD7OOA.js} +16 -16
  3. package/Build/Workers/{chunk-HXJMS2ZI.js → chunk-3RFFPH4M.js} +1 -1
  4. package/Build/Workers/{chunk-EDXL4W76.js → chunk-3TKLDHV3.js} +2 -2
  5. package/Build/Workers/{chunk-GQUNK2XC.js → chunk-3VDDRF2E.js} +14 -14
  6. package/Build/Workers/{chunk-Q3C6VQH6.js → chunk-3XY3MVPG.js} +4 -4
  7. package/Build/Workers/{chunk-A47HVBC5.js → chunk-4GF4MVPY.js} +7 -7
  8. package/Build/Workers/{chunk-YQFTYQMZ.js → chunk-4MTRQFJP.js} +3 -2
  9. package/Build/Workers/{chunk-N65BAKSH.js → chunk-4QQXGTCE.js} +8 -8
  10. package/Build/Workers/{chunk-EV3VGO6Y.js → chunk-4XXHJI6Y.js} +17 -17
  11. package/Build/Workers/{chunk-DHKPFLSJ.js → chunk-5T6QQAJW.js} +3 -2
  12. package/Build/Workers/{chunk-UIGVOKKI.js → chunk-6SDGQI27.js} +3 -2
  13. package/Build/Workers/{chunk-ILMFADZA.js → chunk-77RL3MBD.js} +6 -5
  14. package/Build/Workers/{chunk-2N4KDHS3.js → chunk-7LSFAEWF.js} +12 -11
  15. package/Build/Workers/{chunk-44EMEGKW.js → chunk-A7A433MD.js} +5 -5
  16. package/Build/Workers/{chunk-J6AW5YHS.js → chunk-A7ZBMVFS.js} +14 -14
  17. package/Build/Workers/{chunk-XJRBB253.js → chunk-ACFFCHHZ.js} +11 -11
  18. package/Build/Workers/{chunk-MKM27KGV.js → chunk-AEAVLYPS.js} +2 -2
  19. package/Build/Workers/{chunk-7MDYBRYJ.js → chunk-AWFZHD2B.js} +4 -4
  20. package/Build/Workers/{chunk-UQU4RXLT.js → chunk-BTX2NL3P.js} +50 -45
  21. package/Build/Workers/{chunk-4TIG36AW.js → chunk-BVAIWR7O.js} +12 -12
  22. package/Build/Workers/chunk-CKQP3DSS.js +973 -0
  23. package/Build/Workers/{chunk-VLDEUTOP.js → chunk-CZ23Y3RM.js} +2 -2
  24. package/Build/Workers/{chunk-NPF7SSHZ.js → chunk-DFEI5MAV.js} +7 -7
  25. package/Build/Workers/{chunk-AJLTU6PF.js → chunk-DH26SNAB.js} +4 -1
  26. package/Build/Workers/{chunk-5GXYJQ2K.js → chunk-DYT5NR6P.js} +3 -3
  27. package/Build/Workers/{chunk-63SIWPLS.js → chunk-EZARA5FJ.js} +13 -13
  28. package/Build/Workers/{chunk-AMIHNSST.js → chunk-FIBS5S7R.js} +2 -2
  29. package/Build/Workers/{chunk-Y7HNNPNK.js → chunk-FVLVVOBQ.js} +10 -10
  30. package/Build/Workers/{chunk-XY6HMDGI.js → chunk-GL7DNVUS.js} +5 -5
  31. package/Build/Workers/{chunk-6WLHJFD3.js → chunk-GPIGURCG.js} +59 -32
  32. package/Build/Workers/{chunk-B6SCUUFP.js → chunk-H2A4USJR.js} +10 -10
  33. package/Build/Workers/chunk-HSVQATK2.js +147 -0
  34. package/Build/Workers/{chunk-72VYSVEW.js → chunk-HVMG6AG4.js} +11 -10
  35. package/Build/Workers/{chunk-LXMCPFFS.js → chunk-I3A6DXYZ.js} +4 -4
  36. package/Build/Workers/{chunk-7QRFIKWQ.js → chunk-ITD2IN7N.js} +2 -2
  37. package/Build/Workers/{chunk-RQNJD3O4.js → chunk-J3OFS2RD.js} +12 -12
  38. package/Build/Workers/{chunk-C6P4IG5P.js → chunk-J647NNZW.js} +6 -6
  39. package/Build/Workers/{chunk-7X322WP2.js → chunk-J7KQEKPK.js} +13 -13
  40. package/Build/Workers/{chunk-7O5XJTVE.js → chunk-K6NFIRFB.js} +5 -5
  41. package/Build/Workers/{chunk-AF3MU2RL.js → chunk-LH5SF3XV.js} +7 -6
  42. package/Build/Workers/{chunk-GOQBUCXH.js → chunk-ND3NTTOF.js} +708 -430
  43. package/Build/Workers/chunk-QO2CGXMP.js +2342 -0
  44. package/Build/Workers/chunk-QSDY4NS7.js +1287 -0
  45. package/Build/Workers/chunk-QXNQQYPV.js +3201 -0
  46. package/Build/Workers/{chunk-YAOZMOFL.js → chunk-ST2UWDUU.js} +5 -5
  47. package/Build/Workers/{chunk-PVV64VFW.js → chunk-TA777BGS.js} +3 -2
  48. package/Build/Workers/{chunk-ISY4EZCA.js → chunk-TAI4HLII.js} +4 -4
  49. package/Build/Workers/{chunk-JCI63T3K.js → chunk-URUCCIPS.js} +6 -6
  50. package/Build/Workers/{chunk-VMVOUQ5J.js → chunk-VQKLRBIK.js} +7 -7
  51. package/Build/Workers/{chunk-6MPGQEHA.js → chunk-WC57YYBN.js} +2 -2
  52. package/Build/Workers/{chunk-BJD6QGXZ.js → chunk-WN6P5UDH.js} +12 -12
  53. package/Build/Workers/{chunk-LIB2H534.js → chunk-WNN5D4W3.js} +12 -11
  54. package/Build/Workers/{chunk-D4EJ2NXG.js → chunk-WTQGE7Q6.js} +17 -17
  55. package/Build/Workers/{chunk-YJZGW74L.js → chunk-WUBKZFF6.js} +2213 -1349
  56. package/Build/Workers/{chunk-7TYLCBGK.js → chunk-ZAPOS52G.js} +12 -10
  57. package/Build/Workers/{chunk-6RMS4S72.js → chunk-ZCCIIBZT.js} +6 -6
  58. package/Build/Workers/combineGeometry.js +24 -24
  59. package/Build/Workers/createBoxGeometry.js +18 -18
  60. package/Build/Workers/createBoxOutlineGeometry.js +16 -16
  61. package/Build/Workers/createCircleGeometry.js +26 -26
  62. package/Build/Workers/createCircleOutlineGeometry.js +19 -19
  63. package/Build/Workers/createCoplanarPolygonGeometry.js +33 -33
  64. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +31 -31
  65. package/Build/Workers/createCorridorGeometry.js +29 -29
  66. package/Build/Workers/createCorridorOutlineGeometry.js +28 -28
  67. package/Build/Workers/createCylinderGeometry.js +20 -20
  68. package/Build/Workers/createCylinderOutlineGeometry.js +18 -18
  69. package/Build/Workers/createEllipseGeometry.js +26 -26
  70. package/Build/Workers/createEllipseOutlineGeometry.js +19 -19
  71. package/Build/Workers/createEllipsoidGeometry.js +19 -19
  72. package/Build/Workers/createEllipsoidOutlineGeometry.js +18 -18
  73. package/Build/Workers/createFrustumGeometry.js +18 -18
  74. package/Build/Workers/createFrustumOutlineGeometry.js +18 -18
  75. package/Build/Workers/createGeometry.js +24 -24
  76. package/Build/Workers/createGroundPolylineGeometry.js +175 -118
  77. package/Build/Workers/createPlaneGeometry.js +16 -16
  78. package/Build/Workers/createPlaneOutlineGeometry.js +15 -15
  79. package/Build/Workers/createPolygonGeometry.js +32 -32
  80. package/Build/Workers/createPolygonOutlineGeometry.js +30 -30
  81. package/Build/Workers/createPolylineGeometry.js +25 -25
  82. package/Build/Workers/createPolylineVolumeGeometry.js +31 -31
  83. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +27 -27
  84. package/Build/Workers/createRectangleGeometry.js +27 -27
  85. package/Build/Workers/createRectangleOutlineGeometry.js +20 -20
  86. package/Build/Workers/createSimplePolylineGeometry.js +23 -23
  87. package/Build/Workers/createSphereGeometry.js +19 -19
  88. package/Build/Workers/createSphereOutlineGeometry.js +18 -18
  89. package/Build/Workers/createTaskProcessorWorker.js +3 -3
  90. package/Build/Workers/createVectorTileClampedPolylines.js +14 -14
  91. package/Build/Workers/createVectorTileGeometries.js +24 -24
  92. package/Build/Workers/createVectorTilePoints.js +13 -13
  93. package/Build/Workers/createVectorTilePolygons.js +22 -22
  94. package/Build/Workers/createVectorTilePolylines.js +14 -14
  95. package/Build/Workers/createVerticesFromCesium3DTilesTerrain.js +25 -25
  96. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +22 -22
  97. package/Build/Workers/createVerticesFromHeightmap.js +24 -23
  98. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +20 -20
  99. package/Build/Workers/createWallGeometry.js +24 -24
  100. package/Build/Workers/createWallOutlineGeometry.js +23 -23
  101. package/Build/Workers/decodeDraco.js +10 -10
  102. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
  103. package/Build/Workers/decodeI3S.js +10 -10
  104. package/Build/Workers/gaussianSplatSorter.js +4 -4
  105. package/Build/Workers/gaussianSplatTextureGenerator.js +4 -4
  106. package/Build/Workers/incrementallyBuildTerrainPicker.js +10 -10
  107. package/Build/Workers/transcodeKTX2.js +12 -9
  108. package/Build/Workers/transferTypedArrayTest.js +1 -1
  109. package/Build/Workers/upsampleQuantizedTerrainMesh.js +22 -22
  110. package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +25 -25
  111. package/Source/Core/ArcType.js +6 -1
  112. package/Source/Core/ArticulationStageType.js +5 -1
  113. package/Source/Core/AssociativeArray.js +100 -94
  114. package/Source/Core/BoundingSphere.js +1296 -1300
  115. package/Source/Core/Cartesian3.js +1 -2
  116. package/Source/Core/Cartographic.js +257 -249
  117. package/Source/Core/ClockRange.js +6 -1
  118. package/Source/Core/ClockStep.js +6 -1
  119. package/Source/Core/Color.js +844 -835
  120. package/Source/Core/ComponentDatatype.js +4 -1
  121. package/Source/Core/CornerType.js +6 -1
  122. package/Source/Core/Credit.js +121 -124
  123. package/Source/Core/Ellipsoid.js +637 -660
  124. package/Source/Core/ExtrapolationType.js +6 -1
  125. package/Source/Core/GeocodeType.js +6 -1
  126. package/Source/Core/GeographicProjection.js +74 -74
  127. package/Source/Core/GeographicTilingScheme.js +179 -198
  128. package/Source/Core/GeometryOffsetAttribute.js +7 -1
  129. package/Source/Core/GeometryType.js +7 -1
  130. package/Source/Core/HeightmapEncoding.js +6 -1
  131. package/Source/Core/Iau2006XysData.js +24 -13
  132. package/Source/Core/IndexDatatype.js +3 -1
  133. package/Source/Core/InterpolationType.js +5 -1
  134. package/Source/Core/Intersect.js +6 -1
  135. package/Source/Core/Ion.js +1 -1
  136. package/Source/Core/IonGeocodeProviderType.js +5 -1
  137. package/Source/Core/JulianDate.js +850 -848
  138. package/Source/Core/KeyboardEventModifier.js +6 -1
  139. package/Source/Core/MapProjection.js +39 -44
  140. package/Source/Core/Matrix2.js +906 -893
  141. package/Source/Core/Matrix3.js +1643 -1575
  142. package/Source/Core/Matrix4.js +2903 -2872
  143. package/Source/Core/PixelFormat.js +3 -1
  144. package/Source/Core/PrimitiveType.js +11 -1
  145. package/Source/Core/Ray.js +62 -60
  146. package/Source/Core/Rectangle.js +913 -904
  147. package/Source/Core/ReferenceFrame.js +6 -1
  148. package/Source/Core/RequestScheduler.js +8 -3
  149. package/Source/Core/RequestState.js +6 -1
  150. package/Source/Core/RequestType.js +6 -1
  151. package/Source/Core/ScreenSpaceEventType.js +6 -1
  152. package/Source/Core/TerrainQuantization.js +6 -1
  153. package/Source/Core/TilingScheme.js +100 -98
  154. package/Source/Core/TimeConstants.js +6 -1
  155. package/Source/Core/TimeStandard.js +6 -1
  156. package/Source/Core/TrackingReferenceFrame.js +6 -1
  157. package/Source/Core/Visibility.js +6 -1
  158. package/Source/Core/VulkanConstants.js +6 -1
  159. package/Source/Core/WebGLConstants.js +6 -1
  160. package/Source/Core/WebMercatorProjection.js +108 -109
  161. package/Source/Core/WebMercatorTilingScheme.js +246 -242
  162. package/Source/Core/WindingOrder.js +3 -1
  163. package/Source/DataSources/StaticGroundGeometryPerMaterialBatch.js +1 -0
  164. package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +1 -0
  165. package/Source/DataSources/StripeOrientation.js +6 -1
  166. package/Source/Renderer/BufferUsage.js +20 -9
  167. package/Source/Renderer/Context.js +2 -29
  168. package/Source/Renderer/DrawCommand.js +435 -403
  169. package/Source/Renderer/MipmapHint.js +5 -1
  170. package/Source/Renderer/Pass.js +7 -1
  171. package/Source/Renderer/PickId.js +44 -0
  172. package/Source/Renderer/PixelDatatype.js +3 -1
  173. package/Source/Renderer/RenderbufferFormat.js +5 -1
  174. package/Source/Renderer/ShaderDestination.js +4 -1
  175. package/Source/Renderer/TextureMagnificationFilter.js +3 -1
  176. package/Source/Renderer/TextureMinificationFilter.js +3 -1
  177. package/Source/Renderer/TextureWrap.js +5 -1
  178. package/Source/Scene/AlphaMode.js +5 -1
  179. package/Source/Scene/ArcGisBaseMapType.js +6 -1
  180. package/Source/Scene/ArcGisMapService.js +1 -1
  181. package/Source/Scene/AttributeType.js +3 -1
  182. package/Source/Scene/Axis.js +3 -1
  183. package/Source/Scene/BingMapsStyle.js +6 -1
  184. package/Source/Scene/BlendEquation.js +6 -1
  185. package/Source/Scene/BlendFunction.js +6 -1
  186. package/Source/Scene/BlendOption.js +6 -1
  187. package/Source/Scene/BlendingState.js +6 -1
  188. package/Source/Scene/BufferLoader.js +0 -2
  189. package/Source/Scene/BufferPointCollection.js +4 -1
  190. package/Source/Scene/BufferPolygonCollection.js +3 -1
  191. package/Source/Scene/BufferPolylineCollection.js +3 -1
  192. package/Source/Scene/BufferPrimitiveCollection.js +140 -24
  193. package/Source/Scene/CameraEventType.js +6 -1
  194. package/Source/Scene/Cesium3DTileColorBlendMode.js +6 -1
  195. package/Source/Scene/Cesium3DTileContentState.js +6 -1
  196. package/Source/Scene/Cesium3DTileContentType.js +3 -1
  197. package/Source/Scene/Cesium3DTileFeature.js +289 -306
  198. package/Source/Scene/Cesium3DTileOptimizationHint.js +6 -1
  199. package/Source/Scene/Cesium3DTilePass.js +5 -1
  200. package/Source/Scene/Cesium3DTilePointFeature.js +433 -511
  201. package/Source/Scene/Cesium3DTileRefine.js +6 -1
  202. package/Source/Scene/Cesium3DTileVectorFeature.js +586 -0
  203. package/Source/Scene/Cesium3DTileset.js +1 -1
  204. package/Source/Scene/ClassificationType.js +3 -1
  205. package/Source/Scene/CloudType.js +3 -1
  206. package/Source/Scene/ColorBlendMode.js +4 -1
  207. package/Source/Scene/CullFace.js +6 -1
  208. package/Source/Scene/DepthFunction.js +6 -1
  209. package/Source/Scene/DynamicAtmosphereLightingType.js +3 -1
  210. package/Source/Scene/EquirectangularPanorama.js +1 -0
  211. package/Source/Scene/ExpressionNodeType.js +6 -1
  212. package/Source/Scene/GltfBufferViewLoader.js +0 -2
  213. package/Source/Scene/GltfDracoLoader.js +0 -2
  214. package/Source/Scene/GltfImageLoader.js +0 -3
  215. package/Source/Scene/GltfIndexBufferLoader.js +0 -4
  216. package/Source/Scene/GltfJsonLoader.js +0 -2
  217. package/Source/Scene/GltfLoader.js +0 -5
  218. package/Source/Scene/GltfLoaderUtil.js +14 -0
  219. package/Source/Scene/GltfSpzLoader.js +0 -2
  220. package/Source/Scene/GltfStructuralMetadataLoader.js +0 -2
  221. package/Source/Scene/GltfTextureLoader.js +0 -2
  222. package/Source/Scene/GltfVertexBufferLoader.js +0 -4
  223. package/Source/Scene/HeightReference.js +5 -1
  224. package/Source/Scene/HorizontalOrigin.js +6 -1
  225. package/Source/Scene/ImageryProvider.js +1 -1
  226. package/Source/Scene/ImageryState.js +6 -1
  227. package/Source/Scene/ImplicitSubdivisionScheme.js +3 -1
  228. package/Source/Scene/InstanceAttributeSemantic.js +3 -1
  229. package/Source/Scene/IonWorldImageryStyle.js +6 -1
  230. package/Source/Scene/JobType.js +6 -1
  231. package/Source/Scene/LabelStyle.js +6 -1
  232. package/Source/Scene/MapMode2D.js +6 -1
  233. package/Source/Scene/MetadataComponentType.js +3 -1
  234. package/Source/Scene/MetadataSchemaLoader.js +0 -2
  235. package/Source/Scene/MetadataSemantic.js +6 -2
  236. package/Source/Scene/MetadataType.js +3 -1
  237. package/Source/Scene/Model/B3dmLoader.js +0 -3
  238. package/Source/Scene/Model/CustomShaderMode.js +3 -1
  239. package/Source/Scene/Model/CustomShaderTranslucencyMode.js +5 -1
  240. package/Source/Scene/Model/EdgeVisibilityPipelineStage.js +44 -71
  241. package/Source/Scene/Model/Extensions/Gpm/PpeSource.js +5 -1
  242. package/Source/Scene/Model/Extensions/Gpm/StorageType.js +5 -1
  243. package/Source/Scene/Model/GeoJsonLoader.js +0 -2
  244. package/Source/Scene/Model/I3dmLoader.js +0 -3
  245. package/Source/Scene/Model/InstancingPipelineStage.js +1 -1
  246. package/Source/Scene/Model/LightingModel.js +5 -1
  247. package/Source/Scene/Model/MaterialPipelineStage.js +184 -3
  248. package/Source/Scene/Model/ModelReader.js +474 -3
  249. package/Source/Scene/Model/ModelRuntimePrimitive.js +2 -1
  250. package/Source/Scene/Model/ModelType.js +3 -1
  251. package/Source/Scene/Model/PntsLoader.js +4 -3
  252. package/Source/Scene/Model/StyleCommandsNeeded.js +3 -1
  253. package/Source/Scene/Model/UniformType.js +5 -1
  254. package/Source/Scene/Model/VaryingType.js +5 -1
  255. package/Source/Scene/Model/createVectorTileBuffersFromModelComponents.js +73 -28
  256. package/Source/Scene/Model/pickModel.js +94 -299
  257. package/Source/Scene/ModelAnimationLoop.js +6 -1
  258. package/Source/Scene/ModelAnimationState.js +6 -1
  259. package/Source/Scene/ModelComponents.js +8 -1
  260. package/Source/Scene/PrimitiveState.js +7 -1
  261. package/Source/Scene/QuadtreeOccluders.js +20 -15
  262. package/Source/Scene/QuadtreeTile.js +547 -541
  263. package/Source/Scene/QuadtreeTileLoadState.js +6 -1
  264. package/Source/Scene/QuadtreeTileProvider.js +159 -175
  265. package/Source/Scene/ResourceLoader.js +0 -1
  266. package/Source/Scene/ResourceLoaderState.js +7 -1
  267. package/Source/Scene/SceneMode.js +4 -1
  268. package/Source/Scene/ShadowMode.js +3 -1
  269. package/Source/Scene/SkyBox.js +1 -1
  270. package/Source/Scene/SplitDirection.js +6 -1
  271. package/Source/Scene/StencilFunction.js +6 -1
  272. package/Source/Scene/StencilOperation.js +6 -1
  273. package/Source/Scene/TerrainState.js +7 -1
  274. package/Source/Scene/TileState.js +7 -1
  275. package/Source/Scene/Tonemapper.js +5 -1
  276. package/Source/Scene/VectorGltf3DTileContent.js +72 -51
  277. package/Source/Scene/VertexAttributeSemantic.js +3 -1
  278. package/Source/Scene/VerticalOrigin.js +6 -1
  279. package/Source/Scene/VoxelBoxShape.js +12 -6
  280. package/Source/Scene/VoxelContent.js +2 -0
  281. package/Source/Scene/VoxelCylinderShape.js +39 -38
  282. package/Source/Scene/VoxelEllipsoidShape.js +46 -96
  283. package/Source/Scene/VoxelMetadataOrder.js +6 -1
  284. package/Source/Scene/VoxelProvider.js +1 -0
  285. package/Source/Scene/VoxelShapeType.js +3 -1
  286. package/Source/Scene/renderBufferPointCollection.js +17 -66
  287. package/Source/Scene/renderBufferPolygonCollection.js +21 -68
  288. package/Source/Scene/renderBufferPolylineCollection.js +22 -73
  289. package/Source/Shaders/Builtin/CzmBuiltins.js +2 -0
  290. package/Source/Shaders/Builtin/Functions/computeTextureTransform.glsl +24 -0
  291. package/Source/Shaders/Builtin/Functions/computeTextureTransform.js +25 -0
  292. package/Source/Shaders/Model/ConstantLodStageFS.glsl +60 -0
  293. package/Source/Shaders/Model/ConstantLodStageFS.js +62 -0
  294. package/Source/Shaders/Model/ConstantLodStageVS.glsl +12 -0
  295. package/Source/Shaders/Model/ConstantLodStageVS.js +13 -0
  296. package/Source/Shaders/Model/MaterialStageFS.glsl +46 -20
  297. package/Source/Shaders/Model/MaterialStageFS.js +46 -20
  298. package/Source/Shaders/Voxels/convertLocalToBoxUv.glsl +0 -1
  299. package/Source/Shaders/Voxels/convertLocalToBoxUv.js +0 -1
  300. package/Source/Shaders/Voxels/convertLocalToCylinderUv.glsl +7 -9
  301. package/Source/Shaders/Voxels/convertLocalToCylinderUv.js +7 -9
  302. package/Source/Shaders/Voxels/convertLocalToEllipsoidUv.glsl +7 -17
  303. package/Source/Shaders/Voxels/convertLocalToEllipsoidUv.js +7 -17
  304. package/Source/Widget/CesiumWidget.js +11 -4
  305. package/index.d.ts +343 -309
  306. package/index.js +443 -438
  307. package/package.json +2 -2
  308. package/Build/Workers/chunk-DVB56LG7.js +0 -114
  309. package/Build/Workers/chunk-HKUES6UG.js +0 -2357
  310. package/Build/Workers/chunk-HRHRYFHS.js +0 -940
  311. package/Build/Workers/chunk-KLPGTXS3.js +0 -642
  312. package/Build/Workers/chunk-ZBZRTRJB.js +0 -1829
@@ -21,13 +21,11 @@ import EncodedCartesian3 from "../Core/EncodedCartesian3.js";
21
21
  import AttributeCompression from "../Core/AttributeCompression.js";
22
22
  import IndexDatatype from "../Core/IndexDatatype.js";
23
23
  import PolylineCommon from "../Shaders/PolylineCommon.js";
24
- import Matrix4 from "../Core/Matrix4.js";
25
- import BoundingSphere from "../Core/BoundingSphere.js";
26
24
  import BufferPolylineMaterial from "./BufferPolylineMaterial.js";
27
25
 
28
26
  /** @import FrameState from "./FrameState.js"; */
29
27
  /** @import BufferPolylineCollection from "./BufferPolylineCollection.js"; */
30
- /** @import {Destroyable, TypedArray} from "../Core/globalTypes.js"; */
28
+ /** @import {TypedArray} from "../Core/globalTypes.js"; */
31
29
 
32
30
  /**
33
31
  * TODO(PR#13211): Need 'keyof' syntax to avoid duplicating attribute names.
@@ -58,7 +56,6 @@ const BufferPolylineAttributeLocations = {
58
56
  * @property {RenderState} [renderState]
59
57
  * @property {ShaderProgram} [shaderProgram]
60
58
  * @property {DrawCommand} [command]
61
- * @property {Destroyable[]} [pickIds]
62
59
  * @property {Function} destroy
63
60
  * @ignore
64
61
  */
@@ -108,7 +105,7 @@ function renderBufferPolylineCollection(collection, frameState, renderContext) {
108
105
  collection.vertexCountMax - collection.primitiveCount;
109
106
  const vertexCountMax = collection.vertexCountMax * 2;
110
107
 
111
- // @ts-expect-error Requires https://github.com/CesiumGS/cesium/pull/13203.
108
+ // @ts-expect-error https://github.com/CesiumGS/cesium/issues/13420
112
109
  renderContext.indexArray = IndexDatatype.createTypedArray(
113
110
  vertexCountMax,
114
111
  segmentCountMax * 6,
@@ -126,13 +123,9 @@ function renderBufferPolylineCollection(collection, frameState, renderContext) {
126
123
  };
127
124
  }
128
125
 
129
- if (!defined(renderContext.pickIds)) {
130
- renderContext.pickIds = [];
131
- }
132
-
133
126
  if (collection._dirtyCount > 0) {
134
127
  const { _dirtyOffset, _dirtyCount } = collection;
135
- const { attributeArrays, pickIds } = renderContext;
128
+ const { attributeArrays } = renderContext;
136
129
 
137
130
  const indexArray = renderContext.indexArray;
138
131
  const positionHighArray = attributeArrays.positionHigh;
@@ -152,19 +145,6 @@ function renderBufferPolylineCollection(collection, frameState, renderContext) {
152
145
  continue;
153
146
  }
154
147
 
155
- if (collection._allowPicking && polyline._pickId === 0) {
156
- const pickId = context.createPickId({
157
- collection,
158
- index: i,
159
- get primitive() {
160
- // Cannot reuse primitives; scene.drillPick() appends to a list.
161
- return collection.get(i, new BufferPolyline());
162
- },
163
- });
164
- polyline._pickId = pickId.key;
165
- pickIds.push(pickId);
166
- }
167
-
168
148
  const cartesianArray = polyline.getPositions();
169
149
  polyline.getMaterial(material);
170
150
  const encodedColor = AttributeCompression.encodeRGB8(material.color);
@@ -274,9 +254,8 @@ function renderBufferPolylineCollection(collection, frameState, renderContext) {
274
254
  indexBuffer: Buffer.createIndexBuffer({
275
255
  context,
276
256
  typedArray: renderContext.indexArray,
277
- // @ts-expect-error Requires https://github.com/CesiumGS/cesium/pull/13203.
278
257
  usage: BufferUsage.STATIC_DRAW,
279
- // @ts-expect-error Requires https://github.com/CesiumGS/cesium/pull/13203.
258
+ // @ts-expect-error https://github.com/CesiumGS/cesium/issues/13420
280
259
  indexDatatype: IndexDatatype.fromTypedArray(renderContext.indexArray),
281
260
  }),
282
261
 
@@ -288,7 +267,6 @@ function renderBufferPolylineCollection(collection, frameState, renderContext) {
288
267
  vertexBuffer: Buffer.createVertexBuffer({
289
268
  typedArray: attributeArrays.positionHigh,
290
269
  context,
291
- // @ts-expect-error Requires https://github.com/CesiumGS/cesium/pull/13203.
292
270
  usage: BufferUsage.STATIC_DRAW,
293
271
  }),
294
272
  },
@@ -299,7 +277,6 @@ function renderBufferPolylineCollection(collection, frameState, renderContext) {
299
277
  vertexBuffer: Buffer.createVertexBuffer({
300
278
  typedArray: attributeArrays.positionLow,
301
279
  context,
302
- // @ts-expect-error Requires https://github.com/CesiumGS/cesium/pull/13203.
303
280
  usage: BufferUsage.STATIC_DRAW,
304
281
  }),
305
282
  },
@@ -311,7 +288,6 @@ function renderBufferPolylineCollection(collection, frameState, renderContext) {
311
288
  vertexBuffer: Buffer.createVertexBuffer({
312
289
  typedArray: attributeArrays.prevPositionHigh,
313
290
  context,
314
- // @ts-expect-error Requires https://github.com/CesiumGS/cesium/pull/13203.
315
291
  usage: BufferUsage.STATIC_DRAW,
316
292
  }),
317
293
  },
@@ -322,7 +298,6 @@ function renderBufferPolylineCollection(collection, frameState, renderContext) {
322
298
  vertexBuffer: Buffer.createVertexBuffer({
323
299
  typedArray: attributeArrays.prevPositionLow,
324
300
  context,
325
- // @ts-expect-error Requires https://github.com/CesiumGS/cesium/pull/13203.
326
301
  usage: BufferUsage.STATIC_DRAW,
327
302
  }),
328
303
  },
@@ -334,7 +309,6 @@ function renderBufferPolylineCollection(collection, frameState, renderContext) {
334
309
  vertexBuffer: Buffer.createVertexBuffer({
335
310
  typedArray: attributeArrays.nextPositionHigh,
336
311
  context,
337
- // @ts-expect-error Requires https://github.com/CesiumGS/cesium/pull/13203.
338
312
  usage: BufferUsage.STATIC_DRAW,
339
313
  }),
340
314
  },
@@ -345,7 +319,6 @@ function renderBufferPolylineCollection(collection, frameState, renderContext) {
345
319
  vertexBuffer: Buffer.createVertexBuffer({
346
320
  typedArray: attributeArrays.nextPositionLow,
347
321
  context,
348
- // @ts-expect-error Requires https://github.com/CesiumGS/cesium/pull/13203.
349
322
  usage: BufferUsage.STATIC_DRAW,
350
323
  }),
351
324
  },
@@ -356,7 +329,6 @@ function renderBufferPolylineCollection(collection, frameState, renderContext) {
356
329
  vertexBuffer: Buffer.createVertexBuffer({
357
330
  typedArray: attributeArrays.pickColor,
358
331
  context,
359
- // @ts-expect-error Requires https://github.com/CesiumGS/cesium/pull/13203.
360
332
  usage: BufferUsage.STATIC_DRAW,
361
333
  }),
362
334
  },
@@ -367,7 +339,6 @@ function renderBufferPolylineCollection(collection, frameState, renderContext) {
367
339
  vertexBuffer: Buffer.createVertexBuffer({
368
340
  typedArray: attributeArrays.showColorWidthAndTexCoord,
369
341
  context,
370
- // @ts-expect-error Requires https://github.com/CesiumGS/cesium/pull/13203.
371
342
  usage: BufferUsage.STATIC_DRAW,
372
343
  }),
373
344
  },
@@ -416,26 +387,35 @@ function renderBufferPolylineCollection(collection, frameState, renderContext) {
416
387
  });
417
388
  }
418
389
 
419
- if (
420
- !defined(renderContext.command) ||
421
- isCommandDirty(collection, renderContext.command)
422
- ) {
390
+ const drawCount = getDrawIndexCount(collection);
391
+
392
+ if (!defined(renderContext.command)) {
423
393
  renderContext.command = new DrawCommand({
424
394
  vertexArray: renderContext.vertexArray,
425
395
  renderState: renderContext.renderState,
426
396
  shaderProgram: renderContext.shaderProgram,
427
397
  primitiveType: PrimitiveType.TRIANGLES,
428
398
  pass: Pass.OPAQUE,
429
- pickId: "v_pickColor",
399
+ pickId: collection._allowPicking ? "v_pickColor" : undefined,
430
400
  owner: collection,
431
- count: getDrawIndexCount(collection),
432
- modelMatrix: collection.modelMatrix,
433
- boundingVolume: collection.boundingVolumeWC,
401
+ count: drawCount,
402
+ modelMatrix: collection.modelMatrix, // shared reference
403
+ boundingVolume: collection.boundingVolumeWC, // shared reference
434
404
  debugShowBoundingVolume: collection.debugShowBoundingVolume,
435
405
  });
436
406
  }
437
407
 
438
- frameState.commandList.push(renderContext.command);
408
+ const command = renderContext.command;
409
+
410
+ if (command.count !== drawCount) {
411
+ command.count = drawCount;
412
+ }
413
+
414
+ if (command.debugShowBoundingVolume !== collection.debugShowBoundingVolume) {
415
+ command.debugShowBoundingVolume = collection.debugShowBoundingVolume;
416
+ }
417
+
418
+ frameState.commandList.push(command);
439
419
 
440
420
  collection._dirtyCount = 0;
441
421
  collection._dirtyOffset = 0;
@@ -443,31 +423,6 @@ function renderBufferPolylineCollection(collection, frameState, renderContext) {
443
423
  return renderContext;
444
424
  }
445
425
 
446
- /**
447
- * Returns true if DrawCommand is out of date for given collection.
448
- * @param {BufferPolylineCollection} collection
449
- * @param {DrawCommand} command
450
- * @ignore
451
- */
452
- function isCommandDirty(collection, command) {
453
- const isModelMatrixEqual = Matrix4.equals(
454
- collection.modelMatrix,
455
- command._modelMatrix,
456
- );
457
-
458
- const isBoundingVolumeEqual = BoundingSphere.equals(
459
- collection.boundingVolumeWC,
460
- command._boundingVolume,
461
- );
462
-
463
- return (
464
- getDrawIndexCount(collection) !== command._count ||
465
- collection.debugShowBoundingVolume !== command.debugShowBoundingVolume ||
466
- !isModelMatrixEqual ||
467
- !isBoundingVolumeEqual
468
- );
469
- }
470
-
471
426
  /**
472
427
  * Returns number of drawn (not allocated) indices for given collection.
473
428
  * @param {BufferPolylineCollection} collection
@@ -518,12 +473,6 @@ function destroyRenderContext() {
518
473
  if (defined(context.renderState)) {
519
474
  RenderState.removeFromCache(context.renderState);
520
475
  }
521
-
522
- if (defined(context.pickIds)) {
523
- for (const pickId of context.pickIds) {
524
- pickId.destroy();
525
- }
526
- }
527
476
  }
528
477
 
529
478
  export default renderBufferPolylineCollection;
@@ -71,6 +71,7 @@ import czm_computeAtmosphereColor from './Functions/computeAtmosphereColor.js'
71
71
  import czm_computeGroundAtmosphereScattering from './Functions/computeGroundAtmosphereScattering.js'
72
72
  import czm_computePosition from './Functions/computePosition.js'
73
73
  import czm_computeScattering from './Functions/computeScattering.js'
74
+ import czm_computeTextureTransform from './Functions/computeTextureTransform.js'
74
75
  import czm_cosineAndSine from './Functions/cosineAndSine.js'
75
76
  import czm_decodeRGB8 from './Functions/decodeRGB8.js'
76
77
  import czm_decompressTextureCoordinates from './Functions/decompressTextureCoordinates.js'
@@ -213,6 +214,7 @@ export default {
213
214
  czm_computeGroundAtmosphereScattering : czm_computeGroundAtmosphereScattering,
214
215
  czm_computePosition : czm_computePosition,
215
216
  czm_computeScattering : czm_computeScattering,
217
+ czm_computeTextureTransform : czm_computeTextureTransform,
216
218
  czm_cosineAndSine : czm_cosineAndSine,
217
219
  czm_decodeRGB8 : czm_decodeRGB8,
218
220
  czm_decompressTextureCoordinates : czm_decompressTextureCoordinates,
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Applies a 2D texture transformation matrix to texture coordinates.
3
+ * This function applies translation, rotation, and scaling transformations
4
+ * as specified by the KHR_texture_transform glTF extension.
5
+ *
6
+ * @name czm_computeTextureTransform
7
+ * @glslFunction
8
+ *
9
+ * @param {vec2} texCoord The texture coordinates to transform.
10
+ * @param {mat3} textureTransform The 3x3 transformation matrix.
11
+ *
12
+ * @returns {vec2} The transformed texture coordinates.
13
+ *
14
+ * @example
15
+ * // GLSL declaration
16
+ * vec2 czm_computeTextureTransform(vec2 texCoord, mat3 textureTransform);
17
+ *
18
+ * // Apply texture transform to UV coordinates
19
+ * vec2 transformedUV = czm_computeTextureTransform(uv, u_textureTransform);
20
+ */
21
+ vec2 czm_computeTextureTransform(vec2 texCoord, mat3 textureTransform)
22
+ {
23
+ return vec2(textureTransform * vec3(texCoord, 1.0));
24
+ }
@@ -0,0 +1,25 @@
1
+ //This file is automatically rebuilt by the Cesium build process.
2
+ export default "/**\n\
3
+ * Applies a 2D texture transformation matrix to texture coordinates.\n\
4
+ * This function applies translation, rotation, and scaling transformations\n\
5
+ * as specified by the KHR_texture_transform glTF extension.\n\
6
+ *\n\
7
+ * @name czm_computeTextureTransform\n\
8
+ * @glslFunction\n\
9
+ *\n\
10
+ * @param {vec2} texCoord The texture coordinates to transform.\n\
11
+ * @param {mat3} textureTransform The 3x3 transformation matrix.\n\
12
+ *\n\
13
+ * @returns {vec2} The transformed texture coordinates.\n\
14
+ *\n\
15
+ * @example\n\
16
+ * // GLSL declaration\n\
17
+ * vec2 czm_computeTextureTransform(vec2 texCoord, mat3 textureTransform);\n\
18
+ *\n\
19
+ * // Apply texture transform to UV coordinates\n\
20
+ * vec2 transformedUV = czm_computeTextureTransform(uv, u_textureTransform);\n\
21
+ */\n\
22
+ vec2 czm_computeTextureTransform(vec2 texCoord, mat3 textureTransform)\n\
23
+ {\n\
24
+ return vec2(textureTransform * vec3(texCoord, 1.0));\n\
25
+ }";
@@ -0,0 +1,60 @@
1
+ #ifdef HAS_CONSTANT_LOD
2
+
3
+ vec4 constantLodTextureLookup(sampler2D textureSampler, vec3 constantLodParams) {
4
+ bool atMaxClamp = v_constantLodUvCustom.z >= constantLodParams.y;
5
+ bool atMinClamp = v_constantLodUvCustom.z <= constantLodParams.x;
6
+ bool atClampBoundary = atMaxClamp || atMinClamp;
7
+
8
+ float effectiveDistance = atMaxClamp ? constantLodParams.y :
9
+ (atMinClamp ? constantLodParams.x : v_constantLodUvCustom.z);
10
+
11
+ float logDepth = log2(effectiveDistance);
12
+ logDepth = clamp(logDepth, -10.0, 20.0);
13
+
14
+ float f = fract(logDepth);
15
+ float p = floor(logDepth);
16
+
17
+ if (atClampBoundary) {
18
+ float clampedP = ceil(logDepth);
19
+ vec2 tc = v_constantLodUvCustom.xy / pow(2.0, clampedP) * constantLodParams.z;
20
+ return texture(textureSampler, tc);
21
+ }
22
+
23
+ vec2 tc1 = v_constantLodUvCustom.xy / pow(2.0, p) * constantLodParams.z;
24
+ vec2 tc2 = v_constantLodUvCustom.xy / pow(2.0, p + 1.0) * constantLodParams.z;
25
+ return mix(texture(textureSampler, tc1), texture(textureSampler, tc2), f);
26
+ }
27
+
28
+ vec4 constantLodTextureLookup(sampler2D textureSampler, vec3 constantLodParams, mat3 textureTransform) {
29
+ bool atMaxClamp = v_constantLodUvCustom.z >= constantLodParams.y;
30
+ bool atMinClamp = v_constantLodUvCustom.z <= constantLodParams.x;
31
+ bool atClampBoundary = atMaxClamp || atMinClamp;
32
+
33
+ float effectiveDistance = atMaxClamp ? constantLodParams.y :
34
+ (atMinClamp ? constantLodParams.x : v_constantLodUvCustom.z);
35
+
36
+ float logDepth = log2(effectiveDistance);
37
+ logDepth = clamp(logDepth, -10.0, 20.0);
38
+
39
+ float f = fract(logDepth);
40
+ float p = floor(logDepth);
41
+
42
+ if (atClampBoundary) {
43
+ float clampedP = ceil(logDepth);
44
+ vec2 tc = v_constantLodUvCustom.xy / pow(2.0, clampedP) * constantLodParams.z;
45
+ // Apply texture transform to the final texture coordinates
46
+ tc = czm_computeTextureTransform(tc, textureTransform);
47
+ return texture(textureSampler, tc);
48
+ }
49
+
50
+ vec2 tc1 = v_constantLodUvCustom.xy / pow(2.0, p) * constantLodParams.z;
51
+ vec2 tc2 = v_constantLodUvCustom.xy / pow(2.0, p + 1.0) * constantLodParams.z;
52
+
53
+ // Apply texture transform to both LOD texture coordinates before mixing
54
+ tc1 = czm_computeTextureTransform(tc1, textureTransform);
55
+ tc2 = czm_computeTextureTransform(tc2, textureTransform);
56
+
57
+ return mix(texture(textureSampler, tc1), texture(textureSampler, tc2), f);
58
+ }
59
+
60
+ #endif
@@ -0,0 +1,62 @@
1
+ //This file is automatically rebuilt by the Cesium build process.
2
+ export default "#ifdef HAS_CONSTANT_LOD\n\
3
+ \n\
4
+ vec4 constantLodTextureLookup(sampler2D textureSampler, vec3 constantLodParams) {\n\
5
+ bool atMaxClamp = v_constantLodUvCustom.z >= constantLodParams.y;\n\
6
+ bool atMinClamp = v_constantLodUvCustom.z <= constantLodParams.x;\n\
7
+ bool atClampBoundary = atMaxClamp || atMinClamp;\n\
8
+ \n\
9
+ float effectiveDistance = atMaxClamp ? constantLodParams.y : \n\
10
+ (atMinClamp ? constantLodParams.x : v_constantLodUvCustom.z);\n\
11
+ \n\
12
+ float logDepth = log2(effectiveDistance);\n\
13
+ logDepth = clamp(logDepth, -10.0, 20.0);\n\
14
+ \n\
15
+ float f = fract(logDepth);\n\
16
+ float p = floor(logDepth);\n\
17
+ \n\
18
+ if (atClampBoundary) {\n\
19
+ float clampedP = ceil(logDepth);\n\
20
+ vec2 tc = v_constantLodUvCustom.xy / pow(2.0, clampedP) * constantLodParams.z;\n\
21
+ return texture(textureSampler, tc);\n\
22
+ }\n\
23
+ \n\
24
+ vec2 tc1 = v_constantLodUvCustom.xy / pow(2.0, p) * constantLodParams.z;\n\
25
+ vec2 tc2 = v_constantLodUvCustom.xy / pow(2.0, p + 1.0) * constantLodParams.z;\n\
26
+ return mix(texture(textureSampler, tc1), texture(textureSampler, tc2), f);\n\
27
+ }\n\
28
+ \n\
29
+ vec4 constantLodTextureLookup(sampler2D textureSampler, vec3 constantLodParams, mat3 textureTransform) {\n\
30
+ bool atMaxClamp = v_constantLodUvCustom.z >= constantLodParams.y;\n\
31
+ bool atMinClamp = v_constantLodUvCustom.z <= constantLodParams.x;\n\
32
+ bool atClampBoundary = atMaxClamp || atMinClamp;\n\
33
+ \n\
34
+ float effectiveDistance = atMaxClamp ? constantLodParams.y : \n\
35
+ (atMinClamp ? constantLodParams.x : v_constantLodUvCustom.z);\n\
36
+ \n\
37
+ float logDepth = log2(effectiveDistance);\n\
38
+ logDepth = clamp(logDepth, -10.0, 20.0);\n\
39
+ \n\
40
+ float f = fract(logDepth);\n\
41
+ float p = floor(logDepth);\n\
42
+ \n\
43
+ if (atClampBoundary) {\n\
44
+ float clampedP = ceil(logDepth);\n\
45
+ vec2 tc = v_constantLodUvCustom.xy / pow(2.0, clampedP) * constantLodParams.z;\n\
46
+ // Apply texture transform to the final texture coordinates\n\
47
+ tc = czm_computeTextureTransform(tc, textureTransform);\n\
48
+ return texture(textureSampler, tc);\n\
49
+ }\n\
50
+ \n\
51
+ vec2 tc1 = v_constantLodUvCustom.xy / pow(2.0, p) * constantLodParams.z;\n\
52
+ vec2 tc2 = v_constantLodUvCustom.xy / pow(2.0, p + 1.0) * constantLodParams.z;\n\
53
+ \n\
54
+ // Apply texture transform to both LOD texture coordinates before mixing\n\
55
+ tc1 = czm_computeTextureTransform(tc1, textureTransform);\n\
56
+ tc2 = czm_computeTextureTransform(tc2, textureTransform);\n\
57
+ \n\
58
+ return mix(texture(textureSampler, tc1), texture(textureSampler, tc2), f);\n\
59
+ }\n\
60
+ \n\
61
+ #endif\n\
62
+ ";
@@ -0,0 +1,12 @@
1
+ #ifdef HAS_CONSTANT_LOD
2
+ // Extract model scale to compensate for minimumPixelSize scaling
3
+ float modelScaleX = length(czm_model[0].xyz);
4
+ float modelScaleY = length(czm_model[1].xyz);
5
+ float modelScaleZ = length(czm_model[2].xyz);
6
+ float modelScale = (modelScaleX + modelScaleY + modelScaleZ) / 3.0;
7
+
8
+ // Transform model position through ENU but as direction only (w=0) to avoid position-dependent rotation
9
+ vec3 enuDir = (u_constantLodWorldToEnu * czm_model * vec4(v_positionMC, 0.0)).xyz;
10
+ v_constantLodUvCustom.xy = (enuDir.yx + u_constantLodOffset) / modelScale;
11
+ v_constantLodUvCustom.z = u_constantLodDistance / modelScale;
12
+ #endif
@@ -0,0 +1,13 @@
1
+ //This file is automatically rebuilt by the Cesium build process.
2
+ export default "#ifdef HAS_CONSTANT_LOD\n\
3
+ // Extract model scale to compensate for minimumPixelSize scaling\n\
4
+ float modelScaleX = length(czm_model[0].xyz);\n\
5
+ float modelScaleY = length(czm_model[1].xyz);\n\
6
+ float modelScaleZ = length(czm_model[2].xyz);\n\
7
+ float modelScale = (modelScaleX + modelScaleY + modelScaleZ) / 3.0;\n\
8
+ \n\
9
+ // Transform model position through ENU but as direction only (w=0) to avoid position-dependent rotation\n\
10
+ vec3 enuDir = (u_constantLodWorldToEnu * czm_model * vec4(v_positionMC, 0.0)).xyz;\n\
11
+ v_constantLodUvCustom.xy = (enuDir.yx + u_constantLodOffset) / modelScale;\n\
12
+ v_constantLodUvCustom.z = u_constantLodDistance / modelScale;\n\
13
+ #endif";
@@ -11,17 +11,12 @@ vec3 blend(vec3 sourceColor, vec3 styleColor, float styleColorBlend)
11
11
  return color;
12
12
  }
13
13
 
14
- vec2 computeTextureTransform(vec2 texCoord, mat3 textureTransform)
15
- {
16
- return vec2(textureTransform * vec3(texCoord, 1.0));
17
- }
18
-
19
14
  #ifdef HAS_NORMAL_TEXTURE
20
15
  vec2 getNormalTexCoords()
21
16
  {
22
17
  vec2 texCoord = TEXCOORD_NORMAL;
23
18
  #ifdef HAS_NORMAL_TEXTURE_TRANSFORM
24
- texCoord = vec2(u_normalTextureTransform * vec3(texCoord, 1.0));
19
+ texCoord = czm_computeTextureTransform(texCoord, u_normalTextureTransform);
25
20
  #endif
26
21
  return texCoord;
27
22
  }
@@ -64,7 +59,18 @@ NormalInfo getNormalInfo(ProcessedAttributes attributes)
64
59
 
65
60
  #ifdef HAS_NORMAL_TEXTURE
66
61
  mat3 tbn = mat3(tangent, bitangent, geometryNormal);
67
- vec3 normalSample = texture(u_normalTexture, normalTexCoords).rgb;
62
+
63
+ vec3 normalSample;
64
+ #if defined(HAS_NORMAL_CONSTANT_LOD) && defined(HAS_CONSTANT_LOD)
65
+ #ifdef HAS_NORMAL_TEXTURE_TRANSFORM
66
+ normalSample = constantLodTextureLookup(u_normalTexture, u_normalTextureConstantLodParams, u_normalTextureTransform).rgb;
67
+ #else
68
+ normalSample = constantLodTextureLookup(u_normalTexture, u_normalTextureConstantLodParams).rgb;
69
+ #endif
70
+ #else
71
+ normalSample = texture(u_normalTexture, normalTexCoords).rgb;
72
+ #endif
73
+
68
74
  normalSample = 2.0 * normalSample - 1.0;
69
75
  #ifdef HAS_NORMAL_TEXTURE_SCALE
70
76
  normalSample.xy *= u_normalTextureScale;
@@ -109,7 +115,18 @@ vec3 getNormalFromTexture(ProcessedAttributes attributes, vec3 geometryNormal)
109
115
  #endif
110
116
 
111
117
  mat3 tbn = mat3(t, b, geometryNormal);
112
- vec3 normalSample = texture(u_normalTexture, normalTexCoords).rgb;
118
+
119
+ vec3 normalSample;
120
+ #if defined(HAS_NORMAL_CONSTANT_LOD) && defined(HAS_CONSTANT_LOD)
121
+ #ifdef HAS_NORMAL_TEXTURE_TRANSFORM
122
+ normalSample = constantLodTextureLookup(u_normalTexture, u_normalTextureConstantLodParams, u_normalTextureTransform).rgb;
123
+ #else
124
+ normalSample = constantLodTextureLookup(u_normalTexture, u_normalTextureConstantLodParams).rgb;
125
+ #endif
126
+ #else
127
+ normalSample = texture(u_normalTexture, normalTexCoords).rgb;
128
+ #endif
129
+
113
130
  normalSample = 2.0 * normalSample - 1.0;
114
131
  #ifdef HAS_NORMAL_TEXTURE_SCALE
115
132
  normalSample.xy *= u_normalTextureScale;
@@ -171,10 +188,19 @@ vec4 getBaseColorFromTexture()
171
188
  {
172
189
  vec2 baseColorTexCoords = TEXCOORD_BASE_COLOR;
173
190
  #ifdef HAS_BASE_COLOR_TEXTURE_TRANSFORM
174
- baseColorTexCoords = computeTextureTransform(baseColorTexCoords, u_baseColorTextureTransform);
191
+ baseColorTexCoords = czm_computeTextureTransform(baseColorTexCoords, u_baseColorTextureTransform);
175
192
  #endif
176
193
 
177
- vec4 baseColorWithAlpha = czm_srgbToLinear(texture(u_baseColorTexture, baseColorTexCoords));
194
+ vec4 baseColorWithAlpha;
195
+ #if defined(HAS_BASE_COLOR_CONSTANT_LOD) && defined(HAS_CONSTANT_LOD)
196
+ #ifdef HAS_BASE_COLOR_TEXTURE_TRANSFORM
197
+ baseColorWithAlpha = czm_srgbToLinear(constantLodTextureLookup(u_baseColorTexture, u_baseColorTextureConstantLodParams, u_baseColorTextureTransform));
198
+ #else
199
+ baseColorWithAlpha = czm_srgbToLinear(constantLodTextureLookup(u_baseColorTexture, u_baseColorTextureConstantLodParams));
200
+ #endif
201
+ #else
202
+ baseColorWithAlpha = czm_srgbToLinear(texture(u_baseColorTexture, baseColorTexCoords));
203
+ #endif
178
204
 
179
205
  #ifdef HAS_BASE_COLOR_FACTOR
180
206
  baseColorWithAlpha *= u_baseColorFactor;
@@ -189,7 +215,7 @@ vec3 getEmissiveFromTexture()
189
215
  {
190
216
  vec2 emissiveTexCoords = TEXCOORD_EMISSIVE;
191
217
  #ifdef HAS_EMISSIVE_TEXTURE_TRANSFORM
192
- emissiveTexCoords = computeTextureTransform(emissiveTexCoords, u_emissiveTextureTransform);
218
+ emissiveTexCoords = czm_computeTextureTransform(emissiveTexCoords, u_emissiveTextureTransform);
193
219
  #endif
194
220
 
195
221
  vec3 emissive = czm_srgbToLinear(texture(u_emissiveTexture, emissiveTexCoords).rgb);
@@ -207,7 +233,7 @@ void setSpecularGlossiness(inout czm_modelMaterial material)
207
233
  #ifdef HAS_SPECULAR_GLOSSINESS_TEXTURE
208
234
  vec2 specularGlossinessTexCoords = TEXCOORD_SPECULAR_GLOSSINESS;
209
235
  #ifdef HAS_SPECULAR_GLOSSINESS_TEXTURE_TRANSFORM
210
- specularGlossinessTexCoords = computeTextureTransform(specularGlossinessTexCoords, u_specularGlossinessTextureTransform);
236
+ specularGlossinessTexCoords = czm_computeTextureTransform(specularGlossinessTexCoords, u_specularGlossinessTextureTransform);
211
237
  #endif
212
238
 
213
239
  vec4 specularGlossiness = czm_srgbToLinear(texture(u_specularGlossinessTexture, specularGlossinessTexCoords));
@@ -237,7 +263,7 @@ void setSpecularGlossiness(inout czm_modelMaterial material)
237
263
  #ifdef HAS_DIFFUSE_TEXTURE
238
264
  vec2 diffuseTexCoords = TEXCOORD_DIFFUSE;
239
265
  #ifdef HAS_DIFFUSE_TEXTURE_TRANSFORM
240
- diffuseTexCoords = computeTextureTransform(diffuseTexCoords, u_diffuseTextureTransform);
266
+ diffuseTexCoords = czm_computeTextureTransform(diffuseTexCoords, u_diffuseTextureTransform);
241
267
  #endif
242
268
 
243
269
  vec4 diffuse = czm_srgbToLinear(texture(u_diffuseTexture, diffuseTexCoords));
@@ -266,7 +292,7 @@ float setMetallicRoughness(inout czm_modelMaterial material)
266
292
  #ifdef HAS_METALLIC_ROUGHNESS_TEXTURE
267
293
  vec2 metallicRoughnessTexCoords = TEXCOORD_METALLIC_ROUGHNESS;
268
294
  #ifdef HAS_METALLIC_ROUGHNESS_TEXTURE_TRANSFORM
269
- metallicRoughnessTexCoords = computeTextureTransform(metallicRoughnessTexCoords, u_metallicRoughnessTextureTransform);
295
+ metallicRoughnessTexCoords = czm_computeTextureTransform(metallicRoughnessTexCoords, u_metallicRoughnessTextureTransform);
270
296
  #endif
271
297
 
272
298
  vec3 metallicRoughness = texture(u_metallicRoughnessTexture, metallicRoughnessTexCoords).rgb;
@@ -313,7 +339,7 @@ void setSpecular(inout czm_modelMaterial material, in float metalness)
313
339
  #ifdef HAS_SPECULAR_TEXTURE
314
340
  vec2 specularTexCoords = TEXCOORD_SPECULAR;
315
341
  #ifdef HAS_SPECULAR_TEXTURE_TRANSFORM
316
- specularTexCoords = computeTextureTransform(specularTexCoords, u_specularTextureTransform);
342
+ specularTexCoords = czm_computeTextureTransform(specularTexCoords, u_specularTextureTransform);
317
343
  #endif
318
344
  float specularWeight = texture(u_specularTexture, specularTexCoords).a;
319
345
  #ifdef HAS_SPECULAR_FACTOR
@@ -330,7 +356,7 @@ void setSpecular(inout czm_modelMaterial material, in float metalness)
330
356
  #ifdef HAS_SPECULAR_COLOR_TEXTURE
331
357
  vec2 specularColorTexCoords = TEXCOORD_SPECULAR_COLOR;
332
358
  #ifdef HAS_SPECULAR_COLOR_TEXTURE_TRANSFORM
333
- specularColorTexCoords = computeTextureTransform(specularColorTexCoords, u_specularColorTextureTransform);
359
+ specularColorTexCoords = czm_computeTextureTransform(specularColorTexCoords, u_specularColorTextureTransform);
334
360
  #endif
335
361
  vec3 specularColorSample = texture(u_specularColorTexture, specularColorTexCoords).rgb;
336
362
  vec3 specularColorFactor = czm_srgbToLinear(specularColorSample);
@@ -360,7 +386,7 @@ void setAnisotropy(inout czm_modelMaterial material, in NormalInfo normalInfo)
360
386
  #ifdef HAS_ANISOTROPY_TEXTURE
361
387
  vec2 anisotropyTexCoords = TEXCOORD_ANISOTROPY;
362
388
  #ifdef HAS_ANISOTROPY_TEXTURE_TRANSFORM
363
- anisotropyTexCoords = computeTextureTransform(anisotropyTexCoords, u_anisotropyTextureTransform);
389
+ anisotropyTexCoords = czm_computeTextureTransform(anisotropyTexCoords, u_anisotropyTextureTransform);
364
390
  #endif
365
391
  vec3 anisotropySample = texture(u_anisotropyTexture, anisotropyTexCoords).rgb;
366
392
  direction = anisotropySample.rg * 2.0 - vec2(1.0);
@@ -383,7 +409,7 @@ void setClearcoat(inout czm_modelMaterial material, in ProcessedAttributes attri
383
409
  #ifdef HAS_CLEARCOAT_TEXTURE
384
410
  vec2 clearcoatTexCoords = TEXCOORD_CLEARCOAT;
385
411
  #ifdef HAS_CLEARCOAT_TEXTURE_TRANSFORM
386
- clearcoatTexCoords = computeTextureTransform(clearcoatTexCoords, u_clearcoatTextureTransform);
412
+ clearcoatTexCoords = czm_computeTextureTransform(clearcoatTexCoords, u_clearcoatTextureTransform);
387
413
  #endif
388
414
  float clearcoatFactor = texture(u_clearcoatTexture, clearcoatTexCoords).r;
389
415
  #ifdef HAS_CLEARCOAT_FACTOR
@@ -401,7 +427,7 @@ void setClearcoat(inout czm_modelMaterial material, in ProcessedAttributes attri
401
427
  #ifdef HAS_CLEARCOAT_ROUGHNESS_TEXTURE
402
428
  vec2 clearcoatRoughnessTexCoords = TEXCOORD_CLEARCOAT_ROUGHNESS;
403
429
  #ifdef HAS_CLEARCOAT_ROUGHNESS_TEXTURE_TRANSFORM
404
- clearcoatRoughnessTexCoords = computeTextureTransform(clearcoatRoughnessTexCoords, u_clearcoatRoughnessTextureTransform);
430
+ clearcoatRoughnessTexCoords = czm_computeTextureTransform(clearcoatRoughnessTexCoords, u_clearcoatRoughnessTextureTransform);
405
431
  #endif
406
432
  float clearcoatRoughness = texture(u_clearcoatRoughnessTexture, clearcoatRoughnessTexCoords).g;
407
433
  #ifdef HAS_CLEARCOAT_ROUGHNESS_FACTOR
@@ -469,7 +495,7 @@ void materialStage(inout czm_modelMaterial material, ProcessedAttributes attribu
469
495
  #ifdef HAS_OCCLUSION_TEXTURE
470
496
  vec2 occlusionTexCoords = TEXCOORD_OCCLUSION;
471
497
  #ifdef HAS_OCCLUSION_TEXTURE_TRANSFORM
472
- occlusionTexCoords = computeTextureTransform(occlusionTexCoords, u_occlusionTextureTransform);
498
+ occlusionTexCoords = czm_computeTextureTransform(occlusionTexCoords, u_occlusionTextureTransform);
473
499
  #endif
474
500
  material.occlusion = texture(u_occlusionTexture, occlusionTexCoords).r;
475
501
  #endif