@cesium/engine 22.3.0 → 23.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-EAAH543Q.js → chunk-2GL2EUEE.js} +11 -11
- package/Build/Workers/{chunk-EUDHHS7K.js → chunk-2WI4HGJU.js} +6 -6
- package/Build/Workers/{chunk-LWZHJWYK.js → chunk-36LBFITA.js} +665 -366
- package/Build/Workers/{chunk-7U5YNLF3.js → chunk-3B65YFXC.js} +1 -1
- package/Build/Workers/{chunk-D63Z7KKL.js → chunk-4LGFX2P5.js} +11 -11
- package/Build/Workers/{chunk-D6OKR3BQ.js → chunk-4UNQX2MP.js} +2 -2
- package/Build/Workers/{chunk-BO22JHBX.js → chunk-52K3GJKG.js} +3 -3
- package/Build/Workers/{chunk-XLIJV3YZ.js → chunk-56OHFSLH.js} +10 -10
- package/Build/Workers/{chunk-AWELU5C6.js → chunk-5A7YSAXT.js} +14 -14
- package/Build/Workers/{chunk-T5MJDW43.js → chunk-5JP5FG7U.js} +7 -7
- package/Build/Workers/{chunk-NVL7JXAQ.js → chunk-5R7SBUTW.js} +10 -10
- package/Build/Workers/chunk-5VKZVPO5.js +1829 -0
- package/Build/Workers/{chunk-YHPBT4I5.js → chunk-6FVFM2KB.js} +5 -5
- package/Build/Workers/{chunk-WHLGBMBC.js → chunk-6SLGTBB2.js} +5 -5
- package/Build/Workers/{chunk-VIQIKMTZ.js → chunk-7KRN6JPQ.js} +14 -14
- package/Build/Workers/{chunk-TCOUGKXF.js → chunk-AA33B6PU.js} +4 -4
- package/Build/Workers/{chunk-S2KVL7OJ.js → chunk-AP6XWET5.js} +8 -8
- package/Build/Workers/{chunk-5PJB7ASO.js → chunk-APDKMX7W.js} +6 -6
- package/Build/Workers/{chunk-IXL46IYV.js → chunk-ARCFIOKA.js} +12 -12
- package/Build/Workers/{chunk-KIJR26N3.js → chunk-BNBD2YZK.js} +16 -16
- package/Build/Workers/{chunk-4R6FGUFP.js → chunk-DT5SJBKA.js} +29 -15
- package/Build/Workers/{chunk-FUDC3KOT.js → chunk-ESD4IEOU.js} +5 -5
- package/Build/Workers/{chunk-K2PLKJJG.js → chunk-FSDVXW7M.js} +5 -5
- package/Build/Workers/{chunk-4BBANFU6.js → chunk-G3YT7M7A.js} +1 -1
- package/Build/Workers/{chunk-K4PGSAR5.js → chunk-GN5NEUDT.js} +8 -8
- package/Build/Workers/{chunk-OOYICVOK.js → chunk-HYLEKKO5.js} +1 -1
- package/Build/Workers/{chunk-FDOLXORR.js → chunk-HYTFXWMY.js} +7 -7
- package/Build/Workers/{chunk-7SLNBIZS.js → chunk-IFA7VHHP.js} +560 -277
- package/Build/Workers/{chunk-N66PIK46.js → chunk-IYVDOB5V.js} +4 -4
- package/Build/Workers/{chunk-ZWWN2CQH.js → chunk-JUGY5AZN.js} +4 -4
- package/Build/Workers/{chunk-4O2ARYS7.js → chunk-KPYU6YZG.js} +1 -1
- package/Build/Workers/{chunk-TY5JXMVO.js → chunk-L7RDJ4V7.js} +1 -1
- package/Build/Workers/{chunk-L4OFWHNI.js → chunk-LDQWNMEC.js} +1 -1
- package/Build/Workers/{chunk-N6XBJBI7.js → chunk-MQJG522T.js} +6 -6
- package/Build/Workers/{chunk-FS42VX2H.js → chunk-MT5M7RLZ.js} +2 -2
- package/Build/Workers/{chunk-7ATKQRBM.js → chunk-N4AWE7TZ.js} +10 -10
- package/Build/Workers/{chunk-EOSX23OS.js → chunk-NAYRNPEP.js} +4 -4
- package/Build/Workers/{chunk-NO3LMU7T.js → chunk-NNHU33JK.js} +7 -7
- package/Build/Workers/{chunk-HWGP4GVC.js → chunk-NQCAZU7S.js} +13 -13
- package/Build/Workers/{chunk-6GBGEUWR.js → chunk-NUYLNQKV.js} +2 -2
- package/Build/Workers/{chunk-E4YDCSQK.js → chunk-OC6X22PG.js} +9 -9
- package/Build/Workers/{chunk-ZGGVEGTA.js → chunk-OHBM4YG4.js} +12 -12
- package/Build/Workers/{chunk-6WDMPXQ7.js → chunk-OMXN7YF4.js} +12 -12
- package/Build/Workers/{chunk-LK7GEFGB.js → chunk-OQ3EAJNW.js} +2 -2
- package/Build/Workers/{chunk-M5DVYXJJ.js → chunk-OQBPOKPZ.js} +6 -6
- package/Build/Workers/{chunk-WUWPKBOZ.js → chunk-PQVNT5CJ.js} +6 -6
- package/Build/Workers/{chunk-W5NV72VR.js → chunk-QA24Q62E.js} +17 -17
- package/Build/Workers/{chunk-PJLRXIMS.js → chunk-QQX7S5QT.js} +17 -17
- package/Build/Workers/{chunk-D2PEV362.js → chunk-QTOHIXGF.js} +10 -10
- package/Build/Workers/{chunk-MASEF4OV.js → chunk-R7M4XNPP.js} +8 -8
- package/Build/Workers/{chunk-2MLJ46ZZ.js → chunk-SGKTBHFQ.js} +13 -13
- package/Build/Workers/{chunk-EY5HOJFQ.js → chunk-SQTRWKO2.js} +5 -5
- package/Build/Workers/{chunk-AFGP5BXS.js → chunk-T43FXHNC.js} +7 -7
- package/Build/Workers/{chunk-IHFAFGR2.js → chunk-UEEGWJJP.js} +2 -2
- package/Build/Workers/{chunk-TMGLPEZW.js → chunk-WKXDCVBO.js} +4 -4
- package/Build/Workers/{chunk-VRAAQ3FS.js → chunk-Y5AJSEEN.js} +2 -2
- package/Build/Workers/{chunk-Y5MRBKQN.js → chunk-ZIW5FCIW.js} +18 -18
- 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 +22 -22
- 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 +22 -22
- 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 +6 -6
- package/Build/Workers/transferTypedArrayTest.js +1 -1
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +22 -22
- package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +25 -25
- package/Source/Core/AttributeCompression.js +53 -6
- package/Source/Core/Cartesian2.js +689 -684
- package/Source/Core/Cartesian3.js +1044 -1043
- package/Source/Core/Cartesian4.js +816 -813
- package/Source/Core/GoogleMaps.js +23 -2
- package/Source/Core/Ion.js +1 -1
- package/Source/Core/OpenCageGeocoderService.js +2 -3
- package/Source/Core/globalTypes.js +16 -0
- package/Source/Renderer/ShaderDestination.js +54 -13
- package/Source/Scene/ArcGisMapService.js +1 -1
- package/Source/Scene/Billboard.js +7 -4
- package/Source/Scene/BillboardCollection.js +64 -25
- package/Source/Scene/BufferLoader.js +65 -74
- package/Source/Scene/CubeMapPanorama.js +351 -0
- package/Source/Scene/DerivedCommand.js +8 -31
- package/Source/Scene/DracoLoader.js +79 -78
- package/Source/Scene/EquirectangularPanorama.js +264 -0
- package/Source/Scene/FrameState.js +7 -0
- package/Source/Scene/GaussianSplatPrimitive.js +906 -167
- package/Source/Scene/GlobeSurfaceShaderSet.js +36 -32
- package/Source/Scene/GltfBufferViewLoader.js +109 -118
- package/Source/Scene/GltfDracoLoader.js +167 -176
- package/Source/Scene/GltfImageLoader.js +91 -101
- package/Source/Scene/GltfIndexBufferLoader.js +228 -241
- package/Source/Scene/GltfJsonLoader.js +90 -99
- package/Source/Scene/GltfLoader.js +313 -324
- package/Source/Scene/GltfSpzLoader.js +127 -134
- package/Source/Scene/GltfStructuralMetadataLoader.js +181 -186
- package/Source/Scene/GltfTextureLoader.js +217 -231
- package/Source/Scene/GltfVertexBufferLoader.js +267 -276
- package/Source/Scene/GoogleStreetViewCubeMapPanoramaProvider.js +341 -0
- package/Source/Scene/Label.js +6 -4
- package/Source/Scene/LabelCollection.js +59 -1
- package/Source/Scene/MetadataClassProperty.js +212 -7
- package/Source/Scene/MetadataComponentType.js +162 -127
- package/Source/Scene/MetadataSchemaLoader.js +60 -67
- package/Source/Scene/MetadataTable.js +14 -0
- package/Source/Scene/MetadataTableProperty.js +14 -0
- package/Source/Scene/Model/B3dmLoader.js +216 -224
- package/Source/Scene/Model/CustomShader.js +6 -1
- package/Source/Scene/Model/CustomShaderPipelineStage.js +122 -7
- package/Source/Scene/Model/GeoJsonLoader.js +53 -61
- package/Source/Scene/Model/GeometryPipelineStage.js +17 -3
- package/Source/Scene/Model/I3dmLoader.js +232 -240
- package/Source/Scene/Model/MaterialPipelineStage.js +1 -1
- package/Source/Scene/Model/MetadataPipelineStage.js +438 -22
- package/Source/Scene/Model/PntsLoader.js +78 -89
- package/Source/Scene/Panorama.js +53 -0
- package/Source/Scene/PanoramaProvider.js +43 -0
- package/Source/Scene/PointPrimitiveCollection.js +14 -22
- package/Source/Scene/PropertyTable.js +43 -0
- package/Source/Scene/PropertyTexture.js +1 -1
- package/Source/Scene/PropertyTextureProperty.js +0 -97
- package/Source/Scene/ResourceLoader.js +84 -92
- package/Source/Scene/Scene.js +12 -0
- package/Source/Scene/SkyBox.js +29 -164
- package/Source/Scene/StructuralMetadata.js +18 -3
- package/Source/Scene/parseStructuralMetadata.js +244 -0
- package/Source/Shaders/BillboardCollectionFS.glsl +66 -40
- package/Source/Shaders/BillboardCollectionFS.js +67 -40
- package/Source/Shaders/BillboardCollectionVS.glsl +22 -31
- package/Source/Shaders/BillboardCollectionVS.js +22 -31
- package/Source/Shaders/Builtin/CzmBuiltins.js +4 -0
- package/Source/Shaders/Builtin/Functions/decodeRGB8.glsl +22 -0
- package/Source/Shaders/Builtin/Functions/decodeRGB8.js +24 -0
- package/Source/Shaders/Builtin/Functions/unpackTexture.glsl +35 -0
- package/Source/Shaders/Builtin/Functions/unpackTexture.js +37 -0
- package/Source/Shaders/CubeMapPanoramaVS.glsl +11 -0
- package/Source/Shaders/CubeMapPanoramaVS.js +13 -0
- package/Source/Shaders/Model/MetadataStageFS.glsl +2 -1
- package/Source/Shaders/Model/MetadataStageFS.js +2 -1
- package/Source/Shaders/Model/MetadataStageVS.glsl +2 -1
- package/Source/Shaders/Model/MetadataStageVS.js +2 -1
- package/Source/Shaders/Model/ModelFS.glsl +2 -2
- package/Source/Shaders/Model/ModelFS.js +2 -2
- package/Source/Shaders/Model/ModelVS.glsl +2 -2
- package/Source/Shaders/Model/ModelVS.js +2 -2
- package/Source/Shaders/PointPrimitiveCollectionVS.glsl +8 -39
- package/Source/Shaders/PointPrimitiveCollectionVS.js +8 -39
- package/index.d.ts +564 -189
- package/index.js +127 -119
- package/package.json +1 -1
- package/Build/Workers/chunk-LYBNPUEI.js +0 -1443
|
@@ -26,11 +26,11 @@ out vec4 v_textureCoordinateBounds;
|
|
|
26
26
|
out vec4 v_originTextureCoordinateAndTranslate;
|
|
27
27
|
out mat2 v_rotationMatrix;
|
|
28
28
|
#endif
|
|
29
|
-
out vec4 v_compressed;
|
|
29
|
+
out vec4 v_compressed; // x: eyeDepth, y: applyTranslate & enableDepthCheck, z: dimensions, w: imageSize
|
|
30
30
|
|
|
31
31
|
out vec4 v_pickColor;
|
|
32
32
|
out vec4 v_color;
|
|
33
|
-
out
|
|
33
|
+
flat out vec2 v_splitDirectionAndEllipsoidDepthEC; // x: splitDirection, y: ellipsoid depth in eye coordinates
|
|
34
34
|
#ifdef SDF
|
|
35
35
|
out vec4 v_outlineColor;
|
|
36
36
|
out float v_outlineWidth;
|
|
@@ -219,32 +219,18 @@ void main()
|
|
|
219
219
|
bool validAlignedAxis = false;
|
|
220
220
|
#endif
|
|
221
221
|
|
|
222
|
-
vec4
|
|
223
|
-
vec4
|
|
224
|
-
|
|
225
|
-
temp = compressedAttribute2.y;
|
|
226
|
-
temp = temp * SHIFT_RIGHT8;
|
|
227
|
-
pickColor.b = (temp - floor(temp)) * SHIFT_LEFT8;
|
|
228
|
-
temp = floor(temp) * SHIFT_RIGHT8;
|
|
229
|
-
pickColor.g = (temp - floor(temp)) * SHIFT_LEFT8;
|
|
230
|
-
pickColor.r = floor(temp);
|
|
231
|
-
|
|
232
|
-
temp = compressedAttribute2.x;
|
|
233
|
-
temp = temp * SHIFT_RIGHT8;
|
|
234
|
-
color.b = (temp - floor(temp)) * SHIFT_LEFT8;
|
|
235
|
-
temp = floor(temp) * SHIFT_RIGHT8;
|
|
236
|
-
color.g = (temp - floor(temp)) * SHIFT_LEFT8;
|
|
237
|
-
color.r = floor(temp);
|
|
222
|
+
vec4 color = czm_decodeRGB8(compressedAttribute2.x);
|
|
223
|
+
vec4 pickColor = czm_decodeRGB8(compressedAttribute2.y);
|
|
238
224
|
|
|
239
225
|
temp = compressedAttribute2.z * SHIFT_RIGHT8;
|
|
240
226
|
bool sizeInMeters = floor((temp - floor(temp)) * SHIFT_LEFT7) > 0.0;
|
|
241
227
|
temp = floor(temp) * SHIFT_RIGHT8;
|
|
242
228
|
|
|
243
229
|
pickColor.a = (temp - floor(temp)) * SHIFT_LEFT8;
|
|
244
|
-
pickColor /= 255.0;
|
|
230
|
+
pickColor.a /= 255.0;
|
|
245
231
|
|
|
246
232
|
color.a = floor(temp);
|
|
247
|
-
color /= 255.0;
|
|
233
|
+
color.a /= 255.0;
|
|
248
234
|
|
|
249
235
|
///////////////////////////////////////////////////////////////////////////
|
|
250
236
|
|
|
@@ -322,13 +308,25 @@ void main()
|
|
|
322
308
|
}
|
|
323
309
|
#endif
|
|
324
310
|
|
|
311
|
+
v_splitDirectionAndEllipsoidDepthEC.y = czm_infinity;
|
|
312
|
+
vec3 ellipsoidCenter = czm_view[3].xyz;
|
|
313
|
+
vec3 rayDirection = normalize(positionEC.xyz);
|
|
314
|
+
czm_ray ray = czm_ray(vec3(0.0), rayDirection);
|
|
315
|
+
vec3 ellipsoid_inverseRadii = czm_ellipsoidInverseRadii;
|
|
316
|
+
czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoidCenter, ellipsoid_inverseRadii);
|
|
317
|
+
|
|
318
|
+
if (!czm_isEmpty(intersection))
|
|
319
|
+
{
|
|
320
|
+
v_splitDirectionAndEllipsoidDepthEC.y = intersection.start;
|
|
321
|
+
}
|
|
322
|
+
|
|
325
323
|
v_compressed.y = enableDepthCheck;
|
|
326
324
|
|
|
327
325
|
#ifdef VS_THREE_POINT_DEPTH_CHECK
|
|
328
326
|
if (lengthSq < (u_threePointDepthTestDistance * u_threePointDepthTestDistance) && (enableDepthCheck == 1.0)) {
|
|
329
327
|
float depthsilon = 10.0;
|
|
330
328
|
vec2 depthOrigin;
|
|
331
|
-
// Horizontal origin for labels comes from a special attribute. If that value is 0, this is a billboard - use the regular origin.
|
|
329
|
+
// Horizontal origin for labels comes from a special attribute. If that value is 0, this is a billboard - use the regular origin.
|
|
332
330
|
// Otherwise, transform the label origin to -1, 0, 1 (right, center, left).
|
|
333
331
|
depthOrigin.x = floor(compressedAttribute2.w - (temp2 * SHIFT_LEFT2));
|
|
334
332
|
depthOrigin.x = czm_branchFreeTernary(depthOrigin.x == 0.0, origin.x, depthOrigin.x - 2.0);
|
|
@@ -414,23 +412,16 @@ if (lengthSq < (u_threePointDepthTestDistance * u_threePointDepthTestDistance) &
|
|
|
414
412
|
#endif
|
|
415
413
|
|
|
416
414
|
#ifdef SDF
|
|
417
|
-
vec4 outlineColor;
|
|
415
|
+
vec4 outlineColor = czm_decodeRGB8(sdf.x);
|
|
418
416
|
float outlineWidth;
|
|
419
417
|
|
|
420
|
-
temp = sdf.x;
|
|
421
|
-
temp = temp * SHIFT_RIGHT8;
|
|
422
|
-
outlineColor.b = (temp - floor(temp)) * SHIFT_LEFT8;
|
|
423
|
-
temp = floor(temp) * SHIFT_RIGHT8;
|
|
424
|
-
outlineColor.g = (temp - floor(temp)) * SHIFT_LEFT8;
|
|
425
|
-
outlineColor.r = floor(temp);
|
|
426
|
-
|
|
427
418
|
temp = sdf.y;
|
|
428
419
|
temp = temp * SHIFT_RIGHT8;
|
|
429
420
|
float temp3 = (temp - floor(temp)) * SHIFT_LEFT8;
|
|
430
421
|
temp = floor(temp) * SHIFT_RIGHT8;
|
|
431
422
|
outlineWidth = (temp - floor(temp)) * SHIFT_LEFT8;
|
|
432
423
|
outlineColor.a = floor(temp);
|
|
433
|
-
outlineColor /= 255.0;
|
|
424
|
+
outlineColor.a /= 255.0;
|
|
434
425
|
|
|
435
426
|
v_outlineWidth = outlineWidth / 255.0;
|
|
436
427
|
v_outlineColor = outlineColor;
|
|
@@ -441,5 +432,5 @@ if (lengthSq < (u_threePointDepthTestDistance * u_threePointDepthTestDistance) &
|
|
|
441
432
|
|
|
442
433
|
v_color = color;
|
|
443
434
|
v_color.a *= translucency;
|
|
444
|
-
|
|
435
|
+
v_splitDirectionAndEllipsoidDepthEC.x = splitDirection;
|
|
445
436
|
}
|
|
@@ -27,11 +27,11 @@ out vec4 v_textureCoordinateBounds;\n\
|
|
|
27
27
|
out vec4 v_originTextureCoordinateAndTranslate;\n\
|
|
28
28
|
out mat2 v_rotationMatrix;\n\
|
|
29
29
|
#endif\n\
|
|
30
|
-
out vec4 v_compressed;
|
|
30
|
+
out vec4 v_compressed; // x: eyeDepth, y: applyTranslate & enableDepthCheck, z: dimensions, w: imageSize\n\
|
|
31
31
|
\n\
|
|
32
32
|
out vec4 v_pickColor;\n\
|
|
33
33
|
out vec4 v_color;\n\
|
|
34
|
-
out
|
|
34
|
+
flat out vec2 v_splitDirectionAndEllipsoidDepthEC; // x: splitDirection, y: ellipsoid depth in eye coordinates\n\
|
|
35
35
|
#ifdef SDF\n\
|
|
36
36
|
out vec4 v_outlineColor;\n\
|
|
37
37
|
out float v_outlineWidth;\n\
|
|
@@ -220,32 +220,18 @@ void main()\n\
|
|
|
220
220
|
bool validAlignedAxis = false;\n\
|
|
221
221
|
#endif\n\
|
|
222
222
|
\n\
|
|
223
|
-
vec4
|
|
224
|
-
vec4
|
|
225
|
-
\n\
|
|
226
|
-
temp = compressedAttribute2.y;\n\
|
|
227
|
-
temp = temp * SHIFT_RIGHT8;\n\
|
|
228
|
-
pickColor.b = (temp - floor(temp)) * SHIFT_LEFT8;\n\
|
|
229
|
-
temp = floor(temp) * SHIFT_RIGHT8;\n\
|
|
230
|
-
pickColor.g = (temp - floor(temp)) * SHIFT_LEFT8;\n\
|
|
231
|
-
pickColor.r = floor(temp);\n\
|
|
232
|
-
\n\
|
|
233
|
-
temp = compressedAttribute2.x;\n\
|
|
234
|
-
temp = temp * SHIFT_RIGHT8;\n\
|
|
235
|
-
color.b = (temp - floor(temp)) * SHIFT_LEFT8;\n\
|
|
236
|
-
temp = floor(temp) * SHIFT_RIGHT8;\n\
|
|
237
|
-
color.g = (temp - floor(temp)) * SHIFT_LEFT8;\n\
|
|
238
|
-
color.r = floor(temp);\n\
|
|
223
|
+
vec4 color = czm_decodeRGB8(compressedAttribute2.x);\n\
|
|
224
|
+
vec4 pickColor = czm_decodeRGB8(compressedAttribute2.y);\n\
|
|
239
225
|
\n\
|
|
240
226
|
temp = compressedAttribute2.z * SHIFT_RIGHT8;\n\
|
|
241
227
|
bool sizeInMeters = floor((temp - floor(temp)) * SHIFT_LEFT7) > 0.0;\n\
|
|
242
228
|
temp = floor(temp) * SHIFT_RIGHT8;\n\
|
|
243
229
|
\n\
|
|
244
230
|
pickColor.a = (temp - floor(temp)) * SHIFT_LEFT8;\n\
|
|
245
|
-
pickColor /= 255.0;\n\
|
|
231
|
+
pickColor.a /= 255.0;\n\
|
|
246
232
|
\n\
|
|
247
233
|
color.a = floor(temp);\n\
|
|
248
|
-
color /= 255.0;\n\
|
|
234
|
+
color.a /= 255.0;\n\
|
|
249
235
|
\n\
|
|
250
236
|
///////////////////////////////////////////////////////////////////////////\n\
|
|
251
237
|
\n\
|
|
@@ -322,6 +308,18 @@ void main()\n\
|
|
|
322
308
|
enableDepthCheck = 0.0;\n\
|
|
323
309
|
}\n\
|
|
324
310
|
#endif\n\
|
|
311
|
+
\n\
|
|
312
|
+
v_splitDirectionAndEllipsoidDepthEC.y = czm_infinity;\n\
|
|
313
|
+
vec3 ellipsoidCenter = czm_view[3].xyz;\n\
|
|
314
|
+
vec3 rayDirection = normalize(positionEC.xyz);\n\
|
|
315
|
+
czm_ray ray = czm_ray(vec3(0.0), rayDirection);\n\
|
|
316
|
+
vec3 ellipsoid_inverseRadii = czm_ellipsoidInverseRadii;\n\
|
|
317
|
+
czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoidCenter, ellipsoid_inverseRadii);\n\
|
|
318
|
+
\n\
|
|
319
|
+
if (!czm_isEmpty(intersection))\n\
|
|
320
|
+
{\n\
|
|
321
|
+
v_splitDirectionAndEllipsoidDepthEC.y = intersection.start;\n\
|
|
322
|
+
}\n\
|
|
325
323
|
\n\
|
|
326
324
|
v_compressed.y = enableDepthCheck;\n\
|
|
327
325
|
\n\
|
|
@@ -329,7 +327,7 @@ void main()\n\
|
|
|
329
327
|
if (lengthSq < (u_threePointDepthTestDistance * u_threePointDepthTestDistance) && (enableDepthCheck == 1.0)) {\n\
|
|
330
328
|
float depthsilon = 10.0;\n\
|
|
331
329
|
vec2 depthOrigin;\n\
|
|
332
|
-
// Horizontal origin for labels comes from a special attribute. If that value is 0, this is a billboard - use the regular origin
|
|
330
|
+
// Horizontal origin for labels comes from a special attribute. If that value is 0, this is a billboard - use the regular origin.\n\
|
|
333
331
|
// Otherwise, transform the label origin to -1, 0, 1 (right, center, left).\n\
|
|
334
332
|
depthOrigin.x = floor(compressedAttribute2.w - (temp2 * SHIFT_LEFT2));\n\
|
|
335
333
|
depthOrigin.x = czm_branchFreeTernary(depthOrigin.x == 0.0, origin.x, depthOrigin.x - 2.0);\n\
|
|
@@ -415,15 +413,8 @@ if (lengthSq < (u_threePointDepthTestDistance * u_threePointDepthTestDistance) &
|
|
|
415
413
|
#endif\n\
|
|
416
414
|
\n\
|
|
417
415
|
#ifdef SDF\n\
|
|
418
|
-
vec4 outlineColor;\n\
|
|
416
|
+
vec4 outlineColor = czm_decodeRGB8(sdf.x);\n\
|
|
419
417
|
float outlineWidth;\n\
|
|
420
|
-
\n\
|
|
421
|
-
temp = sdf.x;\n\
|
|
422
|
-
temp = temp * SHIFT_RIGHT8;\n\
|
|
423
|
-
outlineColor.b = (temp - floor(temp)) * SHIFT_LEFT8;\n\
|
|
424
|
-
temp = floor(temp) * SHIFT_RIGHT8;\n\
|
|
425
|
-
outlineColor.g = (temp - floor(temp)) * SHIFT_LEFT8;\n\
|
|
426
|
-
outlineColor.r = floor(temp);\n\
|
|
427
418
|
\n\
|
|
428
419
|
temp = sdf.y;\n\
|
|
429
420
|
temp = temp * SHIFT_RIGHT8;\n\
|
|
@@ -431,7 +422,7 @@ if (lengthSq < (u_threePointDepthTestDistance * u_threePointDepthTestDistance) &
|
|
|
431
422
|
temp = floor(temp) * SHIFT_RIGHT8;\n\
|
|
432
423
|
outlineWidth = (temp - floor(temp)) * SHIFT_LEFT8;\n\
|
|
433
424
|
outlineColor.a = floor(temp);\n\
|
|
434
|
-
outlineColor /= 255.0;\n\
|
|
425
|
+
outlineColor.a /= 255.0;\n\
|
|
435
426
|
\n\
|
|
436
427
|
v_outlineWidth = outlineWidth / 255.0;\n\
|
|
437
428
|
v_outlineColor = outlineColor;\n\
|
|
@@ -442,6 +433,6 @@ if (lengthSq < (u_threePointDepthTestDistance * u_threePointDepthTestDistance) &
|
|
|
442
433
|
\n\
|
|
443
434
|
v_color = color;\n\
|
|
444
435
|
v_color.a *= translucency;\n\
|
|
445
|
-
|
|
436
|
+
v_splitDirectionAndEllipsoidDepthEC.x = splitDirection;\n\
|
|
446
437
|
}\n\
|
|
447
438
|
";
|
|
@@ -72,6 +72,7 @@ import czm_computeGroundAtmosphereScattering from './Functions/computeGroundAtmo
|
|
|
72
72
|
import czm_computePosition from './Functions/computePosition.js'
|
|
73
73
|
import czm_computeScattering from './Functions/computeScattering.js'
|
|
74
74
|
import czm_cosineAndSine from './Functions/cosineAndSine.js'
|
|
75
|
+
import czm_decodeRGB8 from './Functions/decodeRGB8.js'
|
|
75
76
|
import czm_decompressTextureCoordinates from './Functions/decompressTextureCoordinates.js'
|
|
76
77
|
import czm_depthClamp from './Functions/depthClamp.js'
|
|
77
78
|
import czm_eastNorthUpToEyeCoordinates from './Functions/eastNorthUpToEyeCoordinates.js'
|
|
@@ -130,6 +131,7 @@ import czm_transpose from './Functions/transpose.js'
|
|
|
130
131
|
import czm_unpackClippingExtents from './Functions/unpackClippingExtents.js'
|
|
131
132
|
import czm_unpackDepth from './Functions/unpackDepth.js'
|
|
132
133
|
import czm_unpackFloat from './Functions/unpackFloat.js'
|
|
134
|
+
import czm_unpackTexture from './Functions/unpackTexture.js'
|
|
133
135
|
import czm_unpackUint from './Functions/unpackUint.js'
|
|
134
136
|
import czm_valueTransform from './Functions/valueTransform.js'
|
|
135
137
|
import czm_vertexLogDepth from './Functions/vertexLogDepth.js'
|
|
@@ -212,6 +214,7 @@ export default {
|
|
|
212
214
|
czm_computePosition : czm_computePosition,
|
|
213
215
|
czm_computeScattering : czm_computeScattering,
|
|
214
216
|
czm_cosineAndSine : czm_cosineAndSine,
|
|
217
|
+
czm_decodeRGB8 : czm_decodeRGB8,
|
|
215
218
|
czm_decompressTextureCoordinates : czm_decompressTextureCoordinates,
|
|
216
219
|
czm_depthClamp : czm_depthClamp,
|
|
217
220
|
czm_eastNorthUpToEyeCoordinates : czm_eastNorthUpToEyeCoordinates,
|
|
@@ -270,6 +273,7 @@ export default {
|
|
|
270
273
|
czm_unpackClippingExtents : czm_unpackClippingExtents,
|
|
271
274
|
czm_unpackDepth : czm_unpackDepth,
|
|
272
275
|
czm_unpackFloat : czm_unpackFloat,
|
|
276
|
+
czm_unpackTexture : czm_unpackTexture,
|
|
273
277
|
czm_unpackUint : czm_unpackUint,
|
|
274
278
|
czm_valueTransform : czm_valueTransform,
|
|
275
279
|
czm_vertexLogDepth : czm_vertexLogDepth,
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Decodes RGB values packed into a single float at 8-bit precision. Encoded
|
|
3
|
+
* representation is equivalent to 0xFFFFFF in JavaScript.
|
|
4
|
+
*
|
|
5
|
+
* @name czm_decodeRGB8
|
|
6
|
+
* @glslFunction
|
|
7
|
+
*
|
|
8
|
+
* @param {float} encoded Float-encoded RGB values.
|
|
9
|
+
* @returns {vec4} Decoded RGB values.
|
|
10
|
+
*/
|
|
11
|
+
vec4 czm_decodeRGB8(float encoded) {
|
|
12
|
+
const float SHIFT_RIGHT16 = 1.0 / 65536.0;
|
|
13
|
+
const float SHIFT_RIGHT8 = 1.0 / 256.0;
|
|
14
|
+
const float SHIFT_LEFT16 = 65536.0;
|
|
15
|
+
const float SHIFT_LEFT8 = 256.0;
|
|
16
|
+
|
|
17
|
+
vec4 color = vec4(255.0);
|
|
18
|
+
color.r = floor(encoded * SHIFT_RIGHT16);
|
|
19
|
+
color.g = floor((encoded - color.r * SHIFT_LEFT16) * SHIFT_RIGHT8);
|
|
20
|
+
color.b = floor(encoded - color.r * SHIFT_LEFT16 - color.g * SHIFT_LEFT8);
|
|
21
|
+
return color / 255.0;
|
|
22
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
//This file is automatically rebuilt by the Cesium build process.
|
|
2
|
+
export default "/**\n\
|
|
3
|
+
* Decodes RGB values packed into a single float at 8-bit precision. Encoded\n\
|
|
4
|
+
* representation is equivalent to 0xFFFFFF in JavaScript.\n\
|
|
5
|
+
*\n\
|
|
6
|
+
* @name czm_decodeRGB8\n\
|
|
7
|
+
* @glslFunction\n\
|
|
8
|
+
*\n\
|
|
9
|
+
* @param {float} encoded Float-encoded RGB values.\n\
|
|
10
|
+
* @returns {vec4} Decoded RGB values.\n\
|
|
11
|
+
*/\n\
|
|
12
|
+
vec4 czm_decodeRGB8(float encoded) {\n\
|
|
13
|
+
const float SHIFT_RIGHT16 = 1.0 / 65536.0;\n\
|
|
14
|
+
const float SHIFT_RIGHT8 = 1.0 / 256.0;\n\
|
|
15
|
+
const float SHIFT_LEFT16 = 65536.0;\n\
|
|
16
|
+
const float SHIFT_LEFT8 = 256.0;\n\
|
|
17
|
+
\n\
|
|
18
|
+
vec4 color = vec4(255.0);\n\
|
|
19
|
+
color.r = floor(encoded * SHIFT_RIGHT16);\n\
|
|
20
|
+
color.g = floor((encoded - color.r * SHIFT_LEFT16) * SHIFT_RIGHT8);\n\
|
|
21
|
+
color.b = floor(encoded - color.r * SHIFT_LEFT16 - color.g * SHIFT_LEFT8);\n\
|
|
22
|
+
return color / 255.0;\n\
|
|
23
|
+
}\n\
|
|
24
|
+
";
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Useful for reinterpreting texture data as higher-precision values.
|
|
3
|
+
* Only works correctly in WebGL 2, which supports the uint type and bitwise operations.
|
|
4
|
+
*
|
|
5
|
+
* @param {float|vec2|vec3|vec4} 1-4 values from a texture lookup (RGBA channels), normalized to [0.0, 1.0].
|
|
6
|
+
* @return {uint} Raw bits as an unsigned integer.
|
|
7
|
+
*/
|
|
8
|
+
uint czm_unpackTexture(float packedValue) {
|
|
9
|
+
float rounded = czm_round(packedValue * 255.0);
|
|
10
|
+
return uint(rounded);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
uint czm_unpackTexture(vec2 packedValue) {
|
|
14
|
+
vec2 rounded = czm_round(packedValue * 255.0);
|
|
15
|
+
uint byte0 = uint(rounded.x);
|
|
16
|
+
uint byte1 = uint(rounded.y);
|
|
17
|
+
return byte0 | (byte1 << 8);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
uint czm_unpackTexture(vec3 packedValue) {
|
|
21
|
+
vec3 rounded = czm_round(packedValue * 255.0);
|
|
22
|
+
uint byte0 = uint(rounded.x);
|
|
23
|
+
uint byte1 = uint(rounded.y);
|
|
24
|
+
uint byte2 = uint(rounded.z);
|
|
25
|
+
return byte0 | (byte1 << 8) | (byte2 << 16);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
uint czm_unpackTexture(vec4 packedValue) {
|
|
29
|
+
vec4 rounded = czm_round(packedValue * 255.0);
|
|
30
|
+
uint byte0 = uint(rounded.x);
|
|
31
|
+
uint byte1 = uint(rounded.y);
|
|
32
|
+
uint byte2 = uint(rounded.z);
|
|
33
|
+
uint byte3 = uint(rounded.w);
|
|
34
|
+
return byte0 | (byte1 << 8) | (byte2 << 16) | (byte3 << 24);
|
|
35
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
//This file is automatically rebuilt by the Cesium build process.
|
|
2
|
+
export default "/**\n\
|
|
3
|
+
* Useful for reinterpreting texture data as higher-precision values.\n\
|
|
4
|
+
* Only works correctly in WebGL 2, which supports the uint type and bitwise operations.\n\
|
|
5
|
+
*\n\
|
|
6
|
+
* @param {float|vec2|vec3|vec4} 1-4 values from a texture lookup (RGBA channels), normalized to [0.0, 1.0].\n\
|
|
7
|
+
* @return {uint} Raw bits as an unsigned integer.\n\
|
|
8
|
+
*/\n\
|
|
9
|
+
uint czm_unpackTexture(float packedValue) {\n\
|
|
10
|
+
float rounded = czm_round(packedValue * 255.0);\n\
|
|
11
|
+
return uint(rounded);\n\
|
|
12
|
+
}\n\
|
|
13
|
+
\n\
|
|
14
|
+
uint czm_unpackTexture(vec2 packedValue) {\n\
|
|
15
|
+
vec2 rounded = czm_round(packedValue * 255.0);\n\
|
|
16
|
+
uint byte0 = uint(rounded.x);\n\
|
|
17
|
+
uint byte1 = uint(rounded.y);\n\
|
|
18
|
+
return byte0 | (byte1 << 8);\n\
|
|
19
|
+
}\n\
|
|
20
|
+
\n\
|
|
21
|
+
uint czm_unpackTexture(vec3 packedValue) {\n\
|
|
22
|
+
vec3 rounded = czm_round(packedValue * 255.0);\n\
|
|
23
|
+
uint byte0 = uint(rounded.x);\n\
|
|
24
|
+
uint byte1 = uint(rounded.y);\n\
|
|
25
|
+
uint byte2 = uint(rounded.z);\n\
|
|
26
|
+
return byte0 | (byte1 << 8) | (byte2 << 16);\n\
|
|
27
|
+
}\n\
|
|
28
|
+
\n\
|
|
29
|
+
uint czm_unpackTexture(vec4 packedValue) {\n\
|
|
30
|
+
vec4 rounded = czm_round(packedValue * 255.0);\n\
|
|
31
|
+
uint byte0 = uint(rounded.x);\n\
|
|
32
|
+
uint byte1 = uint(rounded.y);\n\
|
|
33
|
+
uint byte2 = uint(rounded.z);\n\
|
|
34
|
+
uint byte3 = uint(rounded.w);\n\
|
|
35
|
+
return byte0 | (byte1 << 8) | (byte2 << 16) | (byte3 << 24);\n\
|
|
36
|
+
}\n\
|
|
37
|
+
";
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
uniform mat3 u_cubeMapPanoramaTransform;
|
|
2
|
+
|
|
3
|
+
in vec3 position;
|
|
4
|
+
out vec3 v_texCoord;
|
|
5
|
+
|
|
6
|
+
void main()
|
|
7
|
+
{
|
|
8
|
+
vec3 p = czm_viewRotation * (u_cubeMapPanoramaTransform * (czm_entireFrustum.y * position));
|
|
9
|
+
gl_Position = czm_projection * vec4(p, 1.0);
|
|
10
|
+
v_texCoord = position.xyz;
|
|
11
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//This file is automatically rebuilt by the Cesium build process.
|
|
2
|
+
export default "uniform mat3 u_cubeMapPanoramaTransform;\n\
|
|
3
|
+
\n\
|
|
4
|
+
in vec3 position;\n\
|
|
5
|
+
out vec3 v_texCoord;\n\
|
|
6
|
+
\n\
|
|
7
|
+
void main()\n\
|
|
8
|
+
{\n\
|
|
9
|
+
vec3 p = czm_viewRotation * (u_cubeMapPanoramaTransform * (czm_entireFrustum.y * position));\n\
|
|
10
|
+
gl_Position = czm_projection * vec4(p, 1.0);\n\
|
|
11
|
+
v_texCoord = position.xyz;\n\
|
|
12
|
+
}\n\
|
|
13
|
+
";
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
void metadataStage(
|
|
2
|
+
FeatureIds featureIds,
|
|
2
3
|
out Metadata metadata,
|
|
3
4
|
out MetadataClass metadataClass,
|
|
4
5
|
out MetadataStatistics metadataStatistics,
|
|
5
6
|
ProcessedAttributes attributes
|
|
6
7
|
)
|
|
7
8
|
{
|
|
8
|
-
initializeMetadata(metadata, metadataClass, metadataStatistics, attributes);
|
|
9
|
+
initializeMetadata(featureIds, metadata, metadataClass, metadataStatistics, attributes);
|
|
9
10
|
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
//This file is automatically rebuilt by the Cesium build process.
|
|
2
2
|
export default "void metadataStage(\n\
|
|
3
|
+
FeatureIds featureIds,\n\
|
|
3
4
|
out Metadata metadata,\n\
|
|
4
5
|
out MetadataClass metadataClass,\n\
|
|
5
6
|
out MetadataStatistics metadataStatistics,\n\
|
|
6
7
|
ProcessedAttributes attributes\n\
|
|
7
8
|
)\n\
|
|
8
9
|
{\n\
|
|
9
|
-
initializeMetadata(metadata, metadataClass, metadataStatistics, attributes);\n\
|
|
10
|
+
initializeMetadata(featureIds, metadata, metadataClass, metadataStatistics, attributes);\n\
|
|
10
11
|
}\n\
|
|
11
12
|
";
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
void metadataStage(
|
|
2
|
+
FeatureIds featureIds,
|
|
2
3
|
out Metadata metadata,
|
|
3
4
|
out MetadataClass metadataClass,
|
|
4
5
|
out MetadataStatistics metadataStatistics,
|
|
5
6
|
ProcessedAttributes attributes
|
|
6
7
|
)
|
|
7
8
|
{
|
|
8
|
-
initializeMetadata(metadata, metadataClass, metadataStatistics, attributes);
|
|
9
|
+
initializeMetadata(featureIds, metadata, metadataClass, metadataStatistics, attributes);
|
|
9
10
|
setMetadataVaryings();
|
|
10
11
|
}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
//This file is automatically rebuilt by the Cesium build process.
|
|
2
2
|
export default "void metadataStage(\n\
|
|
3
|
+
FeatureIds featureIds,\n\
|
|
3
4
|
out Metadata metadata,\n\
|
|
4
5
|
out MetadataClass metadataClass,\n\
|
|
5
6
|
out MetadataStatistics metadataStatistics,\n\
|
|
6
7
|
ProcessedAttributes attributes\n\
|
|
7
8
|
)\n\
|
|
8
9
|
{\n\
|
|
9
|
-
initializeMetadata(metadata, metadataClass, metadataStatistics, attributes);\n\
|
|
10
|
+
initializeMetadata(featureIds, metadata, metadataClass, metadataStatistics, attributes);\n\
|
|
10
11
|
setMetadataVaryings();\n\
|
|
11
12
|
}\n\
|
|
12
13
|
";
|
|
@@ -29,7 +29,7 @@ SelectedFeature selectedFeature;
|
|
|
29
29
|
|
|
30
30
|
void main()
|
|
31
31
|
{
|
|
32
|
-
#
|
|
32
|
+
#if defined(PRIMITIVE_TYPE_POINTS) && defined(HAS_POINT_DIAMETER)
|
|
33
33
|
// Render points as circles
|
|
34
34
|
float distanceToCenter = length(gl_PointCoord - vec2(0.5));
|
|
35
35
|
if (distanceToCenter > 0.5) {
|
|
@@ -59,7 +59,7 @@ void main()
|
|
|
59
59
|
Metadata metadata;
|
|
60
60
|
MetadataClass metadataClass;
|
|
61
61
|
MetadataStatistics metadataStatistics;
|
|
62
|
-
metadataStage(metadata, metadataClass, metadataStatistics, attributes);
|
|
62
|
+
metadataStage(featureIds, metadata, metadataClass, metadataStatistics, attributes);
|
|
63
63
|
|
|
64
64
|
//========================================================================
|
|
65
65
|
// When not picking metadata START
|
|
@@ -30,7 +30,7 @@ SelectedFeature selectedFeature;\n\
|
|
|
30
30
|
\n\
|
|
31
31
|
void main()\n\
|
|
32
32
|
{\n\
|
|
33
|
-
#
|
|
33
|
+
#if defined(PRIMITIVE_TYPE_POINTS) && defined(HAS_POINT_DIAMETER)\n\
|
|
34
34
|
// Render points as circles\n\
|
|
35
35
|
float distanceToCenter = length(gl_PointCoord - vec2(0.5));\n\
|
|
36
36
|
if (distanceToCenter > 0.5) {\n\
|
|
@@ -60,7 +60,7 @@ void main()\n\
|
|
|
60
60
|
Metadata metadata;\n\
|
|
61
61
|
MetadataClass metadataClass;\n\
|
|
62
62
|
MetadataStatistics metadataStatistics;\n\
|
|
63
|
-
metadataStage(metadata, metadataClass, metadataStatistics, attributes);\n\
|
|
63
|
+
metadataStage(featureIds, metadata, metadataClass, metadataStatistics, attributes);\n\
|
|
64
64
|
\n\
|
|
65
65
|
//========================================================================\n\
|
|
66
66
|
// When not picking metadata START\n\
|
|
@@ -95,7 +95,7 @@ void main()
|
|
|
95
95
|
Metadata metadata;
|
|
96
96
|
MetadataClass metadataClass;
|
|
97
97
|
MetadataStatistics metadataStatistics;
|
|
98
|
-
metadataStage(metadata, metadataClass, metadataStatistics, attributes);
|
|
98
|
+
metadataStage(featureIds, metadata, metadataClass, metadataStatistics, attributes);
|
|
99
99
|
|
|
100
100
|
#ifdef HAS_VERTICAL_EXAGGERATION
|
|
101
101
|
verticalExaggerationStage(attributes);
|
|
@@ -147,7 +147,7 @@ void main()
|
|
|
147
147
|
#else
|
|
148
148
|
gl_PointSize = 1.0;
|
|
149
149
|
#endif
|
|
150
|
-
|
|
150
|
+
|
|
151
151
|
gl_PointSize *= show;
|
|
152
152
|
#endif
|
|
153
153
|
|
|
@@ -96,7 +96,7 @@ void main()\n\
|
|
|
96
96
|
Metadata metadata;\n\
|
|
97
97
|
MetadataClass metadataClass;\n\
|
|
98
98
|
MetadataStatistics metadataStatistics;\n\
|
|
99
|
-
metadataStage(metadata, metadataClass, metadataStatistics, attributes);\n\
|
|
99
|
+
metadataStage(featureIds, metadata, metadataClass, metadataStatistics, attributes);\n\
|
|
100
100
|
\n\
|
|
101
101
|
#ifdef HAS_VERTICAL_EXAGGERATION\n\
|
|
102
102
|
verticalExaggerationStage(attributes);\n\
|
|
@@ -148,7 +148,7 @@ void main()\n\
|
|
|
148
148
|
#else\n\
|
|
149
149
|
gl_PointSize = 1.0;\n\
|
|
150
150
|
#endif\n\
|
|
151
|
-
|
|
151
|
+
\n\
|
|
152
152
|
gl_PointSize *= show;\n\
|
|
153
153
|
#endif\n\
|
|
154
154
|
\n\
|
|
@@ -46,45 +46,14 @@ void main()
|
|
|
46
46
|
|
|
47
47
|
///////////////////////////////////////////////////////////////////////////
|
|
48
48
|
|
|
49
|
-
vec4 color;
|
|
50
|
-
vec4 outlineColor;
|
|
51
|
-
vec4 pickColor;
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
pickColor.
|
|
57
|
-
temp = floor(temp) * SHIFT_RIGHT8;
|
|
58
|
-
pickColor.g = (temp - floor(temp)) * SHIFT_LEFT8;
|
|
59
|
-
pickColor.r = floor(temp);
|
|
60
|
-
|
|
61
|
-
// compressedAttribute0.x => color.rgb
|
|
62
|
-
|
|
63
|
-
temp = compressedAttribute0.x * SHIFT_RIGHT8;
|
|
64
|
-
color.b = (temp - floor(temp)) * SHIFT_LEFT8;
|
|
65
|
-
temp = floor(temp) * SHIFT_RIGHT8;
|
|
66
|
-
color.g = (temp - floor(temp)) * SHIFT_LEFT8;
|
|
67
|
-
color.r = floor(temp);
|
|
68
|
-
|
|
69
|
-
// compressedAttribute0.y => outlineColor.rgb
|
|
70
|
-
|
|
71
|
-
temp = compressedAttribute0.y * SHIFT_RIGHT8;
|
|
72
|
-
outlineColor.b = (temp - floor(temp)) * SHIFT_LEFT8;
|
|
73
|
-
temp = floor(temp) * SHIFT_RIGHT8;
|
|
74
|
-
outlineColor.g = (temp - floor(temp)) * SHIFT_LEFT8;
|
|
75
|
-
outlineColor.r = floor(temp);
|
|
76
|
-
|
|
77
|
-
// compressedAttribute0.w => color.a, outlineColor.a, pickColor.a
|
|
78
|
-
|
|
79
|
-
temp = compressedAttribute0.w * SHIFT_RIGHT8;
|
|
80
|
-
pickColor.a = (temp - floor(temp)) * SHIFT_LEFT8;
|
|
81
|
-
pickColor = pickColor / 255.0;
|
|
82
|
-
|
|
83
|
-
temp = floor(temp) * SHIFT_RIGHT8;
|
|
84
|
-
outlineColor.a = (temp - floor(temp)) * SHIFT_LEFT8;
|
|
85
|
-
outlineColor /= 255.0;
|
|
86
|
-
color.a = floor(temp);
|
|
87
|
-
color /= 255.0;
|
|
49
|
+
vec4 color = czm_decodeRGB8(compressedAttribute0.x);
|
|
50
|
+
vec4 outlineColor = czm_decodeRGB8(compressedAttribute0.y);
|
|
51
|
+
vec4 pickColor = czm_decodeRGB8(compressedAttribute0.z);
|
|
52
|
+
vec4 alphaPacked = czm_decodeRGB8(compressedAttribute0.w);
|
|
53
|
+
|
|
54
|
+
color.a = alphaPacked.x;
|
|
55
|
+
outlineColor.a = alphaPacked.y;
|
|
56
|
+
pickColor.a = alphaPacked.z;
|
|
88
57
|
|
|
89
58
|
///////////////////////////////////////////////////////////////////////////
|
|
90
59
|
|
|
@@ -47,45 +47,14 @@ void main()\n\
|
|
|
47
47
|
\n\
|
|
48
48
|
///////////////////////////////////////////////////////////////////////////\n\
|
|
49
49
|
\n\
|
|
50
|
-
vec4 color;\n\
|
|
51
|
-
vec4 outlineColor;\n\
|
|
52
|
-
vec4 pickColor;\n\
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
pickColor.
|
|
58
|
-
temp = floor(temp) * SHIFT_RIGHT8;\n\
|
|
59
|
-
pickColor.g = (temp - floor(temp)) * SHIFT_LEFT8;\n\
|
|
60
|
-
pickColor.r = floor(temp);\n\
|
|
61
|
-
\n\
|
|
62
|
-
// compressedAttribute0.x => color.rgb\n\
|
|
63
|
-
\n\
|
|
64
|
-
temp = compressedAttribute0.x * SHIFT_RIGHT8;\n\
|
|
65
|
-
color.b = (temp - floor(temp)) * SHIFT_LEFT8;\n\
|
|
66
|
-
temp = floor(temp) * SHIFT_RIGHT8;\n\
|
|
67
|
-
color.g = (temp - floor(temp)) * SHIFT_LEFT8;\n\
|
|
68
|
-
color.r = floor(temp);\n\
|
|
69
|
-
\n\
|
|
70
|
-
// compressedAttribute0.y => outlineColor.rgb\n\
|
|
71
|
-
\n\
|
|
72
|
-
temp = compressedAttribute0.y * SHIFT_RIGHT8;\n\
|
|
73
|
-
outlineColor.b = (temp - floor(temp)) * SHIFT_LEFT8;\n\
|
|
74
|
-
temp = floor(temp) * SHIFT_RIGHT8;\n\
|
|
75
|
-
outlineColor.g = (temp - floor(temp)) * SHIFT_LEFT8;\n\
|
|
76
|
-
outlineColor.r = floor(temp);\n\
|
|
77
|
-
\n\
|
|
78
|
-
// compressedAttribute0.w => color.a, outlineColor.a, pickColor.a\n\
|
|
79
|
-
\n\
|
|
80
|
-
temp = compressedAttribute0.w * SHIFT_RIGHT8;\n\
|
|
81
|
-
pickColor.a = (temp - floor(temp)) * SHIFT_LEFT8;\n\
|
|
82
|
-
pickColor = pickColor / 255.0;\n\
|
|
83
|
-
\n\
|
|
84
|
-
temp = floor(temp) * SHIFT_RIGHT8;\n\
|
|
85
|
-
outlineColor.a = (temp - floor(temp)) * SHIFT_LEFT8;\n\
|
|
86
|
-
outlineColor /= 255.0;\n\
|
|
87
|
-
color.a = floor(temp);\n\
|
|
88
|
-
color /= 255.0;\n\
|
|
50
|
+
vec4 color = czm_decodeRGB8(compressedAttribute0.x);\n\
|
|
51
|
+
vec4 outlineColor = czm_decodeRGB8(compressedAttribute0.y);\n\
|
|
52
|
+
vec4 pickColor = czm_decodeRGB8(compressedAttribute0.z);\n\
|
|
53
|
+
vec4 alphaPacked = czm_decodeRGB8(compressedAttribute0.w);\n\
|
|
54
|
+
\n\
|
|
55
|
+
color.a = alphaPacked.x;\n\
|
|
56
|
+
outlineColor.a = alphaPacked.y;\n\
|
|
57
|
+
pickColor.a = alphaPacked.z;\n\
|
|
89
58
|
\n\
|
|
90
59
|
///////////////////////////////////////////////////////////////////////////\n\
|
|
91
60
|
\n\
|