@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
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* An enum of storage types for covariance information.
|
|
3
5
|
*
|
|
@@ -27,4 +29,6 @@ const StorageType = {
|
|
|
27
29
|
Indirect: "Indirect",
|
|
28
30
|
};
|
|
29
31
|
|
|
30
|
-
|
|
32
|
+
Object.freeze(StorageType);
|
|
33
|
+
|
|
34
|
+
export default StorageType;
|
|
@@ -56,7 +56,6 @@ class GeoJsonLoader extends ResourceLoader {
|
|
|
56
56
|
/**
|
|
57
57
|
* The cache key of the resource.
|
|
58
58
|
*
|
|
59
|
-
* @memberof GeoJsonLoader.prototype
|
|
60
59
|
*
|
|
61
60
|
* @type {string}
|
|
62
61
|
* @readonly
|
|
@@ -69,7 +68,6 @@ class GeoJsonLoader extends ResourceLoader {
|
|
|
69
68
|
/**
|
|
70
69
|
* The loaded components.
|
|
71
70
|
*
|
|
72
|
-
* @memberof GeoJsonLoader.prototype
|
|
73
71
|
*
|
|
74
72
|
* @type {ModelComponents.Components}
|
|
75
73
|
* @readonly
|
|
@@ -129,7 +129,6 @@ class I3dmLoader extends ResourceLoader {
|
|
|
129
129
|
/**
|
|
130
130
|
* true if textures are loaded, useful when incrementallyLoadTextures is true
|
|
131
131
|
*
|
|
132
|
-
* @memberof I3dmLoader.prototype
|
|
133
132
|
*
|
|
134
133
|
* @type {boolean}
|
|
135
134
|
* @readonly
|
|
@@ -142,7 +141,6 @@ class I3dmLoader extends ResourceLoader {
|
|
|
142
141
|
/**
|
|
143
142
|
* The cache key of the resource
|
|
144
143
|
*
|
|
145
|
-
* @memberof I3dmLoader.prototype
|
|
146
144
|
*
|
|
147
145
|
* @type {string}
|
|
148
146
|
* @readonly
|
|
@@ -155,7 +153,6 @@ class I3dmLoader extends ResourceLoader {
|
|
|
155
153
|
/**
|
|
156
154
|
* The loaded components.
|
|
157
155
|
*
|
|
158
|
-
* @memberof I3dmLoader.prototype
|
|
159
156
|
*
|
|
160
157
|
* @type {ModelComponents.Components}
|
|
161
158
|
* @default {@link Matrix4.IDENTITY}
|
|
@@ -706,7 +706,7 @@ function processTransformAttributes(
|
|
|
706
706
|
);
|
|
707
707
|
|
|
708
708
|
// Only use matrices for the transforms if the rotation attribute is defined.
|
|
709
|
-
if (defined(rotationAttribute)) {
|
|
709
|
+
if (defined(rotationAttribute) || keepTypedArray) {
|
|
710
710
|
processTransformMatrixAttributes(
|
|
711
711
|
renderResources,
|
|
712
712
|
instances,
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* The lighting model to use for lighting a {@link Model}.
|
|
3
5
|
*
|
|
@@ -27,4 +29,6 @@ const LightingModel = {
|
|
|
27
29
|
PBR: 1,
|
|
28
30
|
};
|
|
29
31
|
|
|
30
|
-
|
|
32
|
+
Object.freeze(LightingModel);
|
|
33
|
+
|
|
34
|
+
export default LightingModel;
|
|
@@ -2,9 +2,13 @@ import defined from "../../Core/defined.js";
|
|
|
2
2
|
import Cartesian3 from "../../Core/Cartesian3.js";
|
|
3
3
|
import Cartesian4 from "../../Core/Cartesian4.js";
|
|
4
4
|
import Matrix3 from "../../Core/Matrix3.js";
|
|
5
|
+
import Matrix4 from "../../Core/Matrix4.js";
|
|
6
|
+
import Transforms from "../../Core/Transforms.js";
|
|
5
7
|
import ShaderDestination from "../../Renderer/ShaderDestination.js";
|
|
6
8
|
import Pass from "../../Renderer/Pass.js";
|
|
7
9
|
import MaterialStageFS from "../../Shaders/Model/MaterialStageFS.js";
|
|
10
|
+
import ConstantLodStageVS from "../../Shaders/Model/ConstantLodStageVS.js";
|
|
11
|
+
import ConstantLodStageFS from "../../Shaders/Model/ConstantLodStageFS.js";
|
|
8
12
|
import AlphaMode from "../AlphaMode.js";
|
|
9
13
|
import ModelComponents from "../ModelComponents.js";
|
|
10
14
|
import VertexAttributeSemantic from "../VertexAttributeSemantic.js";
|
|
@@ -61,6 +65,25 @@ MaterialPipelineStage.process = function (
|
|
|
61
65
|
const material = primitive.material;
|
|
62
66
|
const { model, uniformMap, shaderBuilder } = renderResources;
|
|
63
67
|
|
|
68
|
+
if (!defined(uniformMap.u_constantLodDistance)) {
|
|
69
|
+
uniformMap.u_constantLodDistance = function () {
|
|
70
|
+
const boundingSphere = model.boundingSphere;
|
|
71
|
+
const camera = frameState.camera;
|
|
72
|
+
|
|
73
|
+
if (defined(boundingSphere) && defined(camera)) {
|
|
74
|
+
const distance = Cartesian3.distance(
|
|
75
|
+
camera.positionWC,
|
|
76
|
+
boundingSphere.center,
|
|
77
|
+
);
|
|
78
|
+
// Clamp to a minimum small distance to avoid calling log2(0) in shader
|
|
79
|
+
return Math.max(distance, 0.1);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// Return a fallback distance before camera/bounding sphere are available
|
|
83
|
+
return 1.0;
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
|
|
64
87
|
// Classification models only use position and feature ID attributes,
|
|
65
88
|
// so textures should be disabled to avoid compile errors.
|
|
66
89
|
const hasClassification = defined(model.classificationType);
|
|
@@ -78,6 +101,7 @@ MaterialPipelineStage.process = function (
|
|
|
78
101
|
defaultNormalTexture,
|
|
79
102
|
defaultEmissiveTexture,
|
|
80
103
|
disableTextures,
|
|
104
|
+
renderResources,
|
|
81
105
|
);
|
|
82
106
|
|
|
83
107
|
if (defined(material.specularGlossiness)) {
|
|
@@ -87,6 +111,7 @@ MaterialPipelineStage.process = function (
|
|
|
87
111
|
shaderBuilder,
|
|
88
112
|
defaultTexture,
|
|
89
113
|
disableTextures,
|
|
114
|
+
renderResources,
|
|
90
115
|
);
|
|
91
116
|
} else {
|
|
92
117
|
if (
|
|
@@ -131,6 +156,7 @@ MaterialPipelineStage.process = function (
|
|
|
131
156
|
shaderBuilder,
|
|
132
157
|
defaultTexture,
|
|
133
158
|
disableTextures,
|
|
159
|
+
renderResources,
|
|
134
160
|
);
|
|
135
161
|
}
|
|
136
162
|
|
|
@@ -206,6 +232,112 @@ MaterialPipelineStage.process = function (
|
|
|
206
232
|
}
|
|
207
233
|
};
|
|
208
234
|
|
|
235
|
+
/**
|
|
236
|
+
* Process constant LOD extension for a texture
|
|
237
|
+
*
|
|
238
|
+
* @param {ShaderBuilder} shaderBuilder The shader builder to modify
|
|
239
|
+
* @param {Object<string, Function>} uniformMap The uniform map to modify.
|
|
240
|
+
* @param {ModelComponents.TextureReader} textureReader The texture to add to the shader
|
|
241
|
+
* @param {string} uniformName The name of the sampler uniform
|
|
242
|
+
* @param {string} defineName The name of the texture for use in the defines
|
|
243
|
+
* @param {PrimitiveRenderResources|undefined} renderResources The render resources
|
|
244
|
+
* @private
|
|
245
|
+
*/
|
|
246
|
+
function processConstantLod(
|
|
247
|
+
shaderBuilder,
|
|
248
|
+
uniformMap,
|
|
249
|
+
textureReader,
|
|
250
|
+
uniformName,
|
|
251
|
+
defineName,
|
|
252
|
+
renderResources,
|
|
253
|
+
) {
|
|
254
|
+
const constantLod = textureReader.constantLod;
|
|
255
|
+
|
|
256
|
+
if (!defined(constantLod)) {
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
// renderResources is required for constant LOD to transform from ECEF/world coordinates to ENU
|
|
261
|
+
if (!defined(renderResources)) {
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
const constantLodDefine = `HAS_${defineName}_CONSTANT_LOD`;
|
|
266
|
+
shaderBuilder.addDefine(constantLodDefine, undefined, ShaderDestination.BOTH);
|
|
267
|
+
|
|
268
|
+
if (!defined(uniformMap.u_constantLodOffset)) {
|
|
269
|
+
shaderBuilder.addDefine(
|
|
270
|
+
"HAS_CONSTANT_LOD",
|
|
271
|
+
undefined,
|
|
272
|
+
ShaderDestination.BOTH,
|
|
273
|
+
);
|
|
274
|
+
|
|
275
|
+
shaderBuilder.addVarying("vec3", "v_constantLodUvCustom");
|
|
276
|
+
|
|
277
|
+
shaderBuilder.addUniform(
|
|
278
|
+
"vec2",
|
|
279
|
+
"u_constantLodOffset",
|
|
280
|
+
ShaderDestination.VERTEX,
|
|
281
|
+
);
|
|
282
|
+
|
|
283
|
+
shaderBuilder.addUniform(
|
|
284
|
+
"float",
|
|
285
|
+
"u_constantLodDistance",
|
|
286
|
+
ShaderDestination.VERTEX,
|
|
287
|
+
);
|
|
288
|
+
|
|
289
|
+
shaderBuilder.addUniform(
|
|
290
|
+
"mat4",
|
|
291
|
+
"u_constantLodWorldToEnu",
|
|
292
|
+
ShaderDestination.VERTEX,
|
|
293
|
+
);
|
|
294
|
+
|
|
295
|
+
shaderBuilder.addFragmentLines(ConstantLodStageFS);
|
|
296
|
+
|
|
297
|
+
const constantLodLines = ConstantLodStageVS.split("\n").filter((line) => {
|
|
298
|
+
return !line.trim().startsWith("//") || line.includes("#");
|
|
299
|
+
});
|
|
300
|
+
shaderBuilder.addFunctionLines("setDynamicVaryingsVS", constantLodLines);
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
const paramsUniformName = `${uniformName}ConstantLodParams`;
|
|
304
|
+
shaderBuilder.addUniform(
|
|
305
|
+
"vec3",
|
|
306
|
+
paramsUniformName,
|
|
307
|
+
ShaderDestination.FRAGMENT,
|
|
308
|
+
);
|
|
309
|
+
|
|
310
|
+
uniformMap[paramsUniformName] = function () {
|
|
311
|
+
return new Cartesian3(
|
|
312
|
+
constantLod.minClampDistance,
|
|
313
|
+
constantLod.maxClampDistance,
|
|
314
|
+
constantLod.repetitions,
|
|
315
|
+
);
|
|
316
|
+
};
|
|
317
|
+
|
|
318
|
+
if (!defined(uniformMap.u_constantLodOffset)) {
|
|
319
|
+
uniformMap.u_constantLodOffset = function () {
|
|
320
|
+
return constantLod.offset;
|
|
321
|
+
};
|
|
322
|
+
|
|
323
|
+
const enuMatrixInverse = Matrix4.clone(Matrix4.IDENTITY);
|
|
324
|
+
let matrixComputed = false;
|
|
325
|
+
|
|
326
|
+
uniformMap.u_constantLodWorldToEnu = function () {
|
|
327
|
+
if (!matrixComputed) {
|
|
328
|
+
const boundingSphere = renderResources.model.boundingSphere;
|
|
329
|
+
if (defined(boundingSphere)) {
|
|
330
|
+
const modelCenter = boundingSphere.center;
|
|
331
|
+
const enuFrame = Transforms.eastNorthUpToFixedFrame(modelCenter);
|
|
332
|
+
Matrix4.inverse(enuFrame, enuMatrixInverse);
|
|
333
|
+
matrixComputed = true;
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
return matrixComputed ? enuMatrixInverse : Matrix4.IDENTITY;
|
|
337
|
+
};
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
|
|
209
341
|
/**
|
|
210
342
|
* Add uniforms and defines for the BENTLEY_materials_line_style extension.
|
|
211
343
|
*
|
|
@@ -426,6 +558,8 @@ function processTextureScale(
|
|
|
426
558
|
* @param {ModelComponents.TextureReader} textureReader The texture to add to the shader
|
|
427
559
|
* @param {string} uniformName The name of the sampler uniform such as <code>u_baseColorTexture</code>
|
|
428
560
|
* @param {string} defineName The name of the texture for use in the defines, minus any prefix or suffix. For example, "BASE_COLOR" or "EMISSIVE"
|
|
561
|
+
* @param {Texture} defaultTexture The default texture to use as a fallback if the texture is not yet loaded
|
|
562
|
+
* @param {PrimitiveRenderResources|undefined} renderResources The render resources
|
|
429
563
|
*
|
|
430
564
|
* @private
|
|
431
565
|
*/
|
|
@@ -436,6 +570,7 @@ function processTexture(
|
|
|
436
570
|
uniformName,
|
|
437
571
|
defineName,
|
|
438
572
|
defaultTexture,
|
|
573
|
+
renderResources,
|
|
439
574
|
) {
|
|
440
575
|
// Add a uniform for the texture itself
|
|
441
576
|
shaderBuilder.addUniform(
|
|
@@ -487,6 +622,16 @@ function processTexture(
|
|
|
487
622
|
defineName,
|
|
488
623
|
);
|
|
489
624
|
}
|
|
625
|
+
|
|
626
|
+
// Process constant LOD extension if present
|
|
627
|
+
processConstantLod(
|
|
628
|
+
shaderBuilder,
|
|
629
|
+
uniformMap,
|
|
630
|
+
textureReader,
|
|
631
|
+
uniformName,
|
|
632
|
+
defineName,
|
|
633
|
+
renderResources,
|
|
634
|
+
);
|
|
490
635
|
}
|
|
491
636
|
|
|
492
637
|
function processMaterialUniforms(
|
|
@@ -497,6 +642,7 @@ function processMaterialUniforms(
|
|
|
497
642
|
defaultNormalTexture,
|
|
498
643
|
defaultEmissiveTexture,
|
|
499
644
|
disableTextures,
|
|
645
|
+
renderResources,
|
|
500
646
|
) {
|
|
501
647
|
const { emissiveFactor, emissiveTexture, normalTexture, occlusionTexture } =
|
|
502
648
|
material;
|
|
@@ -531,14 +677,43 @@ function processMaterialUniforms(
|
|
|
531
677
|
}
|
|
532
678
|
}
|
|
533
679
|
|
|
680
|
+
// Extract base color constant LOD to apply to normal texture
|
|
681
|
+
let baseColorConstantLod;
|
|
682
|
+
if (
|
|
683
|
+
defined(material.metallicRoughness) &&
|
|
684
|
+
defined(material.metallicRoughness.baseColorTexture) &&
|
|
685
|
+
defined(material.metallicRoughness.baseColorTexture.constantLod)
|
|
686
|
+
) {
|
|
687
|
+
baseColorConstantLod =
|
|
688
|
+
material.metallicRoughness.baseColorTexture.constantLod;
|
|
689
|
+
} else if (
|
|
690
|
+
defined(material.specularGlossiness) &&
|
|
691
|
+
defined(material.specularGlossiness.diffuseTexture) &&
|
|
692
|
+
defined(material.specularGlossiness.diffuseTexture.constantLod)
|
|
693
|
+
) {
|
|
694
|
+
baseColorConstantLod =
|
|
695
|
+
material.specularGlossiness.diffuseTexture.constantLod;
|
|
696
|
+
}
|
|
697
|
+
|
|
534
698
|
if (defined(normalTexture) && !disableTextures) {
|
|
699
|
+
// If normal texture AND base color have constant LOD, use base color's constant LOD properties to keep textures in sync
|
|
700
|
+
let normalTextureToProcess = normalTexture;
|
|
701
|
+
if (defined(normalTexture.constantLod) && defined(baseColorConstantLod)) {
|
|
702
|
+
normalTextureToProcess = Object.create(
|
|
703
|
+
Object.getPrototypeOf(normalTexture),
|
|
704
|
+
);
|
|
705
|
+
Object.assign(normalTextureToProcess, normalTexture);
|
|
706
|
+
normalTextureToProcess.constantLod = baseColorConstantLod;
|
|
707
|
+
}
|
|
708
|
+
|
|
535
709
|
processTexture(
|
|
536
710
|
shaderBuilder,
|
|
537
711
|
uniformMap,
|
|
538
|
-
|
|
712
|
+
normalTextureToProcess,
|
|
539
713
|
"u_normalTexture",
|
|
540
714
|
"NORMAL",
|
|
541
715
|
defaultNormalTexture,
|
|
716
|
+
renderResources,
|
|
542
717
|
);
|
|
543
718
|
}
|
|
544
719
|
|
|
@@ -560,8 +735,9 @@ function processMaterialUniforms(
|
|
|
560
735
|
* @param {ModelComponents.SpecularGlossiness} specularGlossiness
|
|
561
736
|
* @param {Object<string, Function>} uniformMap The uniform map to modify.
|
|
562
737
|
* @param {ShaderBuilder} shaderBuilder
|
|
563
|
-
* @param {Texture} defaultTexture
|
|
738
|
+
* @param {Texture} defaultTexture The default texture to use as a fallback if the texture is not yet loaded
|
|
564
739
|
* @param {boolean} disableTextures
|
|
740
|
+
* @param {PrimitiveRenderResources|undefined} renderResources The render resources for the primitive
|
|
565
741
|
* @private
|
|
566
742
|
*/
|
|
567
743
|
function processSpecularGlossinessUniforms(
|
|
@@ -570,6 +746,7 @@ function processSpecularGlossinessUniforms(
|
|
|
570
746
|
shaderBuilder,
|
|
571
747
|
defaultTexture,
|
|
572
748
|
disableTextures,
|
|
749
|
+
renderResources,
|
|
573
750
|
) {
|
|
574
751
|
const {
|
|
575
752
|
diffuseTexture,
|
|
@@ -593,6 +770,7 @@ function processSpecularGlossinessUniforms(
|
|
|
593
770
|
"u_diffuseTexture",
|
|
594
771
|
"DIFFUSE",
|
|
595
772
|
defaultTexture,
|
|
773
|
+
renderResources,
|
|
596
774
|
);
|
|
597
775
|
}
|
|
598
776
|
|
|
@@ -925,8 +1103,9 @@ function processClearcoatUniforms(
|
|
|
925
1103
|
* @param {ModelComponents.MetallicRoughness} metallicRoughness
|
|
926
1104
|
* @param {Object<string, Function>} uniformMap The uniform map to modify.
|
|
927
1105
|
* @param {ShaderBuilder} shaderBuilder
|
|
928
|
-
* @param {Texture} defaultTexture
|
|
1106
|
+
* @param {Texture} defaultTexture The default texture to use as a fallback if the texture is not yet loaded
|
|
929
1107
|
* @param {boolean} disableTextures
|
|
1108
|
+
* @param {PrimitiveRenderResources|undefined} renderResources The render resources for the primitive
|
|
930
1109
|
* @private
|
|
931
1110
|
*/
|
|
932
1111
|
function processMetallicRoughnessUniforms(
|
|
@@ -935,6 +1114,7 @@ function processMetallicRoughnessUniforms(
|
|
|
935
1114
|
shaderBuilder,
|
|
936
1115
|
defaultTexture,
|
|
937
1116
|
disableTextures,
|
|
1117
|
+
renderResources,
|
|
938
1118
|
) {
|
|
939
1119
|
shaderBuilder.addDefine(
|
|
940
1120
|
"USE_METALLIC_ROUGHNESS",
|
|
@@ -951,6 +1131,7 @@ function processMetallicRoughnessUniforms(
|
|
|
951
1131
|
"u_baseColorTexture",
|
|
952
1132
|
"BASE_COLOR",
|
|
953
1133
|
defaultTexture,
|
|
1134
|
+
renderResources,
|
|
954
1135
|
);
|
|
955
1136
|
}
|
|
956
1137
|
|