@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.
- package/Build/Workers/{chunk-NKT5K3K3.js → chunk-35H3UBIO.js} +13 -12
- package/Build/Workers/{chunk-5A2SW66E.js → chunk-3LSD7OOA.js} +16 -16
- package/Build/Workers/{chunk-HXJMS2ZI.js → chunk-3RFFPH4M.js} +1 -1
- package/Build/Workers/{chunk-EDXL4W76.js → chunk-3TKLDHV3.js} +2 -2
- package/Build/Workers/{chunk-GQUNK2XC.js → chunk-3VDDRF2E.js} +14 -14
- package/Build/Workers/{chunk-Q3C6VQH6.js → chunk-3XY3MVPG.js} +4 -4
- package/Build/Workers/{chunk-A47HVBC5.js → chunk-4GF4MVPY.js} +7 -7
- package/Build/Workers/{chunk-YQFTYQMZ.js → chunk-4MTRQFJP.js} +3 -2
- package/Build/Workers/{chunk-N65BAKSH.js → chunk-4QQXGTCE.js} +8 -8
- package/Build/Workers/{chunk-EV3VGO6Y.js → chunk-4XXHJI6Y.js} +17 -17
- package/Build/Workers/{chunk-DHKPFLSJ.js → chunk-5T6QQAJW.js} +3 -2
- package/Build/Workers/{chunk-UIGVOKKI.js → chunk-6SDGQI27.js} +3 -2
- package/Build/Workers/{chunk-ILMFADZA.js → chunk-77RL3MBD.js} +6 -5
- package/Build/Workers/{chunk-2N4KDHS3.js → chunk-7LSFAEWF.js} +12 -11
- package/Build/Workers/{chunk-44EMEGKW.js → chunk-A7A433MD.js} +5 -5
- package/Build/Workers/{chunk-J6AW5YHS.js → chunk-A7ZBMVFS.js} +14 -14
- package/Build/Workers/{chunk-XJRBB253.js → chunk-ACFFCHHZ.js} +11 -11
- package/Build/Workers/{chunk-MKM27KGV.js → chunk-AEAVLYPS.js} +2 -2
- package/Build/Workers/{chunk-7MDYBRYJ.js → chunk-AWFZHD2B.js} +4 -4
- package/Build/Workers/{chunk-UQU4RXLT.js → chunk-BTX2NL3P.js} +50 -45
- package/Build/Workers/{chunk-4TIG36AW.js → chunk-BVAIWR7O.js} +12 -12
- package/Build/Workers/chunk-CKQP3DSS.js +973 -0
- package/Build/Workers/{chunk-VLDEUTOP.js → chunk-CZ23Y3RM.js} +2 -2
- package/Build/Workers/{chunk-NPF7SSHZ.js → chunk-DFEI5MAV.js} +7 -7
- package/Build/Workers/{chunk-AJLTU6PF.js → chunk-DH26SNAB.js} +4 -1
- package/Build/Workers/{chunk-5GXYJQ2K.js → chunk-DYT5NR6P.js} +3 -3
- package/Build/Workers/{chunk-63SIWPLS.js → chunk-EZARA5FJ.js} +13 -13
- package/Build/Workers/{chunk-AMIHNSST.js → chunk-FIBS5S7R.js} +2 -2
- package/Build/Workers/{chunk-Y7HNNPNK.js → chunk-FVLVVOBQ.js} +10 -10
- package/Build/Workers/{chunk-XY6HMDGI.js → chunk-GL7DNVUS.js} +5 -5
- package/Build/Workers/{chunk-6WLHJFD3.js → chunk-GPIGURCG.js} +59 -32
- package/Build/Workers/{chunk-B6SCUUFP.js → chunk-H2A4USJR.js} +10 -10
- package/Build/Workers/chunk-HSVQATK2.js +147 -0
- package/Build/Workers/{chunk-72VYSVEW.js → chunk-HVMG6AG4.js} +11 -10
- package/Build/Workers/{chunk-LXMCPFFS.js → chunk-I3A6DXYZ.js} +4 -4
- package/Build/Workers/{chunk-7QRFIKWQ.js → chunk-ITD2IN7N.js} +2 -2
- package/Build/Workers/{chunk-RQNJD3O4.js → chunk-J3OFS2RD.js} +12 -12
- package/Build/Workers/{chunk-C6P4IG5P.js → chunk-J647NNZW.js} +6 -6
- package/Build/Workers/{chunk-7X322WP2.js → chunk-J7KQEKPK.js} +13 -13
- package/Build/Workers/{chunk-7O5XJTVE.js → chunk-K6NFIRFB.js} +5 -5
- package/Build/Workers/{chunk-AF3MU2RL.js → chunk-LH5SF3XV.js} +7 -6
- package/Build/Workers/{chunk-GOQBUCXH.js → chunk-ND3NTTOF.js} +708 -430
- package/Build/Workers/chunk-QO2CGXMP.js +2342 -0
- package/Build/Workers/chunk-QSDY4NS7.js +1287 -0
- package/Build/Workers/chunk-QXNQQYPV.js +3201 -0
- package/Build/Workers/{chunk-YAOZMOFL.js → chunk-ST2UWDUU.js} +5 -5
- package/Build/Workers/{chunk-PVV64VFW.js → chunk-TA777BGS.js} +3 -2
- package/Build/Workers/{chunk-ISY4EZCA.js → chunk-TAI4HLII.js} +4 -4
- package/Build/Workers/{chunk-JCI63T3K.js → chunk-URUCCIPS.js} +6 -6
- package/Build/Workers/{chunk-VMVOUQ5J.js → chunk-VQKLRBIK.js} +7 -7
- package/Build/Workers/{chunk-6MPGQEHA.js → chunk-WC57YYBN.js} +2 -2
- package/Build/Workers/{chunk-BJD6QGXZ.js → chunk-WN6P5UDH.js} +12 -12
- package/Build/Workers/{chunk-LIB2H534.js → chunk-WNN5D4W3.js} +12 -11
- package/Build/Workers/{chunk-D4EJ2NXG.js → chunk-WTQGE7Q6.js} +17 -17
- package/Build/Workers/{chunk-YJZGW74L.js → chunk-WUBKZFF6.js} +2213 -1349
- package/Build/Workers/{chunk-7TYLCBGK.js → chunk-ZAPOS52G.js} +12 -10
- package/Build/Workers/{chunk-6RMS4S72.js → chunk-ZCCIIBZT.js} +6 -6
- package/Build/Workers/combineGeometry.js +24 -24
- package/Build/Workers/createBoxGeometry.js +18 -18
- package/Build/Workers/createBoxOutlineGeometry.js +16 -16
- package/Build/Workers/createCircleGeometry.js +26 -26
- package/Build/Workers/createCircleOutlineGeometry.js +19 -19
- package/Build/Workers/createCoplanarPolygonGeometry.js +33 -33
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +31 -31
- package/Build/Workers/createCorridorGeometry.js +29 -29
- package/Build/Workers/createCorridorOutlineGeometry.js +28 -28
- package/Build/Workers/createCylinderGeometry.js +20 -20
- package/Build/Workers/createCylinderOutlineGeometry.js +18 -18
- package/Build/Workers/createEllipseGeometry.js +26 -26
- package/Build/Workers/createEllipseOutlineGeometry.js +19 -19
- package/Build/Workers/createEllipsoidGeometry.js +19 -19
- package/Build/Workers/createEllipsoidOutlineGeometry.js +18 -18
- package/Build/Workers/createFrustumGeometry.js +18 -18
- package/Build/Workers/createFrustumOutlineGeometry.js +18 -18
- package/Build/Workers/createGeometry.js +24 -24
- package/Build/Workers/createGroundPolylineGeometry.js +175 -118
- package/Build/Workers/createPlaneGeometry.js +16 -16
- package/Build/Workers/createPlaneOutlineGeometry.js +15 -15
- package/Build/Workers/createPolygonGeometry.js +32 -32
- package/Build/Workers/createPolygonOutlineGeometry.js +30 -30
- package/Build/Workers/createPolylineGeometry.js +25 -25
- package/Build/Workers/createPolylineVolumeGeometry.js +31 -31
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +27 -27
- package/Build/Workers/createRectangleGeometry.js +27 -27
- package/Build/Workers/createRectangleOutlineGeometry.js +20 -20
- package/Build/Workers/createSimplePolylineGeometry.js +23 -23
- package/Build/Workers/createSphereGeometry.js +19 -19
- package/Build/Workers/createSphereOutlineGeometry.js +18 -18
- package/Build/Workers/createTaskProcessorWorker.js +3 -3
- package/Build/Workers/createVectorTileClampedPolylines.js +14 -14
- package/Build/Workers/createVectorTileGeometries.js +24 -24
- package/Build/Workers/createVectorTilePoints.js +13 -13
- package/Build/Workers/createVectorTilePolygons.js +22 -22
- package/Build/Workers/createVectorTilePolylines.js +14 -14
- package/Build/Workers/createVerticesFromCesium3DTilesTerrain.js +25 -25
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +22 -22
- package/Build/Workers/createVerticesFromHeightmap.js +24 -23
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +20 -20
- package/Build/Workers/createWallGeometry.js +24 -24
- package/Build/Workers/createWallOutlineGeometry.js +23 -23
- package/Build/Workers/decodeDraco.js +10 -10
- package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
- package/Build/Workers/decodeI3S.js +10 -10
- package/Build/Workers/gaussianSplatSorter.js +4 -4
- package/Build/Workers/gaussianSplatTextureGenerator.js +4 -4
- package/Build/Workers/incrementallyBuildTerrainPicker.js +10 -10
- package/Build/Workers/transcodeKTX2.js +12 -9
- package/Build/Workers/transferTypedArrayTest.js +1 -1
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +22 -22
- package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +25 -25
- package/Source/Core/ArcType.js +6 -1
- package/Source/Core/ArticulationStageType.js +5 -1
- package/Source/Core/AssociativeArray.js +100 -94
- package/Source/Core/BoundingSphere.js +1296 -1300
- package/Source/Core/Cartesian3.js +1 -2
- package/Source/Core/Cartographic.js +257 -249
- package/Source/Core/ClockRange.js +6 -1
- package/Source/Core/ClockStep.js +6 -1
- package/Source/Core/Color.js +844 -835
- package/Source/Core/ComponentDatatype.js +4 -1
- package/Source/Core/CornerType.js +6 -1
- package/Source/Core/Credit.js +121 -124
- package/Source/Core/Ellipsoid.js +637 -660
- package/Source/Core/ExtrapolationType.js +6 -1
- package/Source/Core/GeocodeType.js +6 -1
- package/Source/Core/GeographicProjection.js +74 -74
- package/Source/Core/GeographicTilingScheme.js +179 -198
- package/Source/Core/GeometryOffsetAttribute.js +7 -1
- package/Source/Core/GeometryType.js +7 -1
- package/Source/Core/HeightmapEncoding.js +6 -1
- package/Source/Core/Iau2006XysData.js +24 -13
- package/Source/Core/IndexDatatype.js +3 -1
- package/Source/Core/InterpolationType.js +5 -1
- package/Source/Core/Intersect.js +6 -1
- package/Source/Core/Ion.js +1 -1
- package/Source/Core/IonGeocodeProviderType.js +5 -1
- package/Source/Core/JulianDate.js +850 -848
- package/Source/Core/KeyboardEventModifier.js +6 -1
- package/Source/Core/MapProjection.js +39 -44
- package/Source/Core/Matrix2.js +906 -893
- package/Source/Core/Matrix3.js +1643 -1575
- package/Source/Core/Matrix4.js +2903 -2872
- package/Source/Core/PixelFormat.js +3 -1
- package/Source/Core/PrimitiveType.js +11 -1
- package/Source/Core/Ray.js +62 -60
- package/Source/Core/Rectangle.js +913 -904
- package/Source/Core/ReferenceFrame.js +6 -1
- package/Source/Core/RequestScheduler.js +8 -3
- package/Source/Core/RequestState.js +6 -1
- package/Source/Core/RequestType.js +6 -1
- package/Source/Core/ScreenSpaceEventType.js +6 -1
- package/Source/Core/TerrainQuantization.js +6 -1
- package/Source/Core/TilingScheme.js +100 -98
- package/Source/Core/TimeConstants.js +6 -1
- package/Source/Core/TimeStandard.js +6 -1
- package/Source/Core/TrackingReferenceFrame.js +6 -1
- package/Source/Core/Visibility.js +6 -1
- package/Source/Core/VulkanConstants.js +6 -1
- package/Source/Core/WebGLConstants.js +6 -1
- package/Source/Core/WebMercatorProjection.js +108 -109
- package/Source/Core/WebMercatorTilingScheme.js +246 -242
- package/Source/Core/WindingOrder.js +3 -1
- package/Source/DataSources/StaticGroundGeometryPerMaterialBatch.js +1 -0
- package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +1 -0
- package/Source/DataSources/StripeOrientation.js +6 -1
- package/Source/Renderer/BufferUsage.js +20 -9
- package/Source/Renderer/Context.js +2 -29
- package/Source/Renderer/DrawCommand.js +435 -403
- package/Source/Renderer/MipmapHint.js +5 -1
- package/Source/Renderer/Pass.js +7 -1
- package/Source/Renderer/PickId.js +44 -0
- package/Source/Renderer/PixelDatatype.js +3 -1
- package/Source/Renderer/RenderbufferFormat.js +5 -1
- package/Source/Renderer/ShaderDestination.js +4 -1
- package/Source/Renderer/TextureMagnificationFilter.js +3 -1
- package/Source/Renderer/TextureMinificationFilter.js +3 -1
- package/Source/Renderer/TextureWrap.js +5 -1
- package/Source/Scene/AlphaMode.js +5 -1
- package/Source/Scene/ArcGisBaseMapType.js +6 -1
- package/Source/Scene/ArcGisMapService.js +1 -1
- package/Source/Scene/AttributeType.js +3 -1
- package/Source/Scene/Axis.js +3 -1
- package/Source/Scene/BingMapsStyle.js +6 -1
- package/Source/Scene/BlendEquation.js +6 -1
- package/Source/Scene/BlendFunction.js +6 -1
- package/Source/Scene/BlendOption.js +6 -1
- package/Source/Scene/BlendingState.js +6 -1
- package/Source/Scene/BufferLoader.js +0 -2
- package/Source/Scene/BufferPointCollection.js +4 -1
- package/Source/Scene/BufferPolygonCollection.js +3 -1
- package/Source/Scene/BufferPolylineCollection.js +3 -1
- package/Source/Scene/BufferPrimitiveCollection.js +140 -24
- package/Source/Scene/CameraEventType.js +6 -1
- package/Source/Scene/Cesium3DTileColorBlendMode.js +6 -1
- package/Source/Scene/Cesium3DTileContentState.js +6 -1
- package/Source/Scene/Cesium3DTileContentType.js +3 -1
- package/Source/Scene/Cesium3DTileFeature.js +289 -306
- package/Source/Scene/Cesium3DTileOptimizationHint.js +6 -1
- package/Source/Scene/Cesium3DTilePass.js +5 -1
- package/Source/Scene/Cesium3DTilePointFeature.js +433 -511
- package/Source/Scene/Cesium3DTileRefine.js +6 -1
- package/Source/Scene/Cesium3DTileVectorFeature.js +586 -0
- package/Source/Scene/Cesium3DTileset.js +1 -1
- package/Source/Scene/ClassificationType.js +3 -1
- package/Source/Scene/CloudType.js +3 -1
- package/Source/Scene/ColorBlendMode.js +4 -1
- package/Source/Scene/CullFace.js +6 -1
- package/Source/Scene/DepthFunction.js +6 -1
- package/Source/Scene/DynamicAtmosphereLightingType.js +3 -1
- package/Source/Scene/EquirectangularPanorama.js +1 -0
- package/Source/Scene/ExpressionNodeType.js +6 -1
- package/Source/Scene/GltfBufferViewLoader.js +0 -2
- package/Source/Scene/GltfDracoLoader.js +0 -2
- package/Source/Scene/GltfImageLoader.js +0 -3
- package/Source/Scene/GltfIndexBufferLoader.js +0 -4
- package/Source/Scene/GltfJsonLoader.js +0 -2
- package/Source/Scene/GltfLoader.js +0 -5
- package/Source/Scene/GltfLoaderUtil.js +14 -0
- package/Source/Scene/GltfSpzLoader.js +0 -2
- package/Source/Scene/GltfStructuralMetadataLoader.js +0 -2
- package/Source/Scene/GltfTextureLoader.js +0 -2
- package/Source/Scene/GltfVertexBufferLoader.js +0 -4
- package/Source/Scene/HeightReference.js +5 -1
- package/Source/Scene/HorizontalOrigin.js +6 -1
- package/Source/Scene/ImageryProvider.js +1 -1
- package/Source/Scene/ImageryState.js +6 -1
- package/Source/Scene/ImplicitSubdivisionScheme.js +3 -1
- package/Source/Scene/InstanceAttributeSemantic.js +3 -1
- package/Source/Scene/IonWorldImageryStyle.js +6 -1
- package/Source/Scene/JobType.js +6 -1
- package/Source/Scene/LabelStyle.js +6 -1
- package/Source/Scene/MapMode2D.js +6 -1
- package/Source/Scene/MetadataComponentType.js +3 -1
- package/Source/Scene/MetadataSchemaLoader.js +0 -2
- package/Source/Scene/MetadataSemantic.js +6 -2
- package/Source/Scene/MetadataType.js +3 -1
- package/Source/Scene/Model/B3dmLoader.js +0 -3
- package/Source/Scene/Model/CustomShaderMode.js +3 -1
- package/Source/Scene/Model/CustomShaderTranslucencyMode.js +5 -1
- package/Source/Scene/Model/EdgeVisibilityPipelineStage.js +44 -71
- package/Source/Scene/Model/Extensions/Gpm/PpeSource.js +5 -1
- package/Source/Scene/Model/Extensions/Gpm/StorageType.js +5 -1
- package/Source/Scene/Model/GeoJsonLoader.js +0 -2
- package/Source/Scene/Model/I3dmLoader.js +0 -3
- package/Source/Scene/Model/InstancingPipelineStage.js +1 -1
- package/Source/Scene/Model/LightingModel.js +5 -1
- package/Source/Scene/Model/MaterialPipelineStage.js +184 -3
- package/Source/Scene/Model/ModelReader.js +474 -3
- package/Source/Scene/Model/ModelRuntimePrimitive.js +2 -1
- package/Source/Scene/Model/ModelType.js +3 -1
- package/Source/Scene/Model/PntsLoader.js +4 -3
- package/Source/Scene/Model/StyleCommandsNeeded.js +3 -1
- package/Source/Scene/Model/UniformType.js +5 -1
- package/Source/Scene/Model/VaryingType.js +5 -1
- package/Source/Scene/Model/createVectorTileBuffersFromModelComponents.js +73 -28
- package/Source/Scene/Model/pickModel.js +94 -299
- package/Source/Scene/ModelAnimationLoop.js +6 -1
- package/Source/Scene/ModelAnimationState.js +6 -1
- package/Source/Scene/ModelComponents.js +8 -1
- package/Source/Scene/PrimitiveState.js +7 -1
- package/Source/Scene/QuadtreeOccluders.js +20 -15
- package/Source/Scene/QuadtreeTile.js +547 -541
- package/Source/Scene/QuadtreeTileLoadState.js +6 -1
- package/Source/Scene/QuadtreeTileProvider.js +159 -175
- package/Source/Scene/ResourceLoader.js +0 -1
- package/Source/Scene/ResourceLoaderState.js +7 -1
- package/Source/Scene/SceneMode.js +4 -1
- package/Source/Scene/ShadowMode.js +3 -1
- package/Source/Scene/SkyBox.js +1 -1
- package/Source/Scene/SplitDirection.js +6 -1
- package/Source/Scene/StencilFunction.js +6 -1
- package/Source/Scene/StencilOperation.js +6 -1
- package/Source/Scene/TerrainState.js +7 -1
- package/Source/Scene/TileState.js +7 -1
- package/Source/Scene/Tonemapper.js +5 -1
- package/Source/Scene/VectorGltf3DTileContent.js +72 -51
- package/Source/Scene/VertexAttributeSemantic.js +3 -1
- package/Source/Scene/VerticalOrigin.js +6 -1
- package/Source/Scene/VoxelBoxShape.js +12 -6
- package/Source/Scene/VoxelContent.js +2 -0
- package/Source/Scene/VoxelCylinderShape.js +39 -38
- package/Source/Scene/VoxelEllipsoidShape.js +46 -96
- package/Source/Scene/VoxelMetadataOrder.js +6 -1
- package/Source/Scene/VoxelProvider.js +1 -0
- package/Source/Scene/VoxelShapeType.js +3 -1
- package/Source/Scene/renderBufferPointCollection.js +17 -66
- package/Source/Scene/renderBufferPolygonCollection.js +21 -68
- package/Source/Scene/renderBufferPolylineCollection.js +22 -73
- package/Source/Shaders/Builtin/CzmBuiltins.js +2 -0
- package/Source/Shaders/Builtin/Functions/computeTextureTransform.glsl +24 -0
- package/Source/Shaders/Builtin/Functions/computeTextureTransform.js +25 -0
- package/Source/Shaders/Model/ConstantLodStageFS.glsl +60 -0
- package/Source/Shaders/Model/ConstantLodStageFS.js +62 -0
- package/Source/Shaders/Model/ConstantLodStageVS.glsl +12 -0
- package/Source/Shaders/Model/ConstantLodStageVS.js +13 -0
- package/Source/Shaders/Model/MaterialStageFS.glsl +46 -20
- package/Source/Shaders/Model/MaterialStageFS.js +46 -20
- package/Source/Shaders/Voxels/convertLocalToBoxUv.glsl +0 -1
- package/Source/Shaders/Voxels/convertLocalToBoxUv.js +0 -1
- package/Source/Shaders/Voxels/convertLocalToCylinderUv.glsl +7 -9
- package/Source/Shaders/Voxels/convertLocalToCylinderUv.js +7 -9
- package/Source/Shaders/Voxels/convertLocalToEllipsoidUv.glsl +7 -17
- package/Source/Shaders/Voxels/convertLocalToEllipsoidUv.js +7 -17
- package/Source/Widget/CesiumWidget.js +11 -4
- package/index.d.ts +343 -309
- package/index.js +443 -438
- package/package.json +2 -2
- package/Build/Workers/chunk-DVB56LG7.js +0 -114
- package/Build/Workers/chunk-HKUES6UG.js +0 -2357
- package/Build/Workers/chunk-HRHRYFHS.js +0 -940
- package/Build/Workers/chunk-KLPGTXS3.js +0 -642
- 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 {
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
420
|
-
|
|
421
|
-
|
|
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:
|
|
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
|
-
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
191
|
+
baseColorTexCoords = czm_computeTextureTransform(baseColorTexCoords, u_baseColorTextureTransform);
|
|
175
192
|
#endif
|
|
176
193
|
|
|
177
|
-
vec4 baseColorWithAlpha
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
498
|
+
occlusionTexCoords = czm_computeTextureTransform(occlusionTexCoords, u_occlusionTextureTransform);
|
|
473
499
|
#endif
|
|
474
500
|
material.occlusion = texture(u_occlusionTexture, occlusionTexCoords).r;
|
|
475
501
|
#endif
|