@cesium/engine 23.0.1 → 24.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-G6MJ3ZW3.js → chunk-2N4KDHS3.js} +10 -10
- package/Build/Workers/{chunk-C6HHBKT5.js → chunk-44EMEGKW.js} +5 -5
- package/Build/Workers/{chunk-TNXOPEIG.js → chunk-4TIG36AW.js} +12 -12
- package/Build/Workers/{chunk-PQTSXJBJ.js → chunk-5A2SW66E.js} +16 -16
- package/Build/Workers/{chunk-TXYQNXNW.js → chunk-5GXYJQ2K.js} +3 -3
- package/Build/Workers/{chunk-O67UP5YO.js → chunk-63SIWPLS.js} +13 -13
- package/Build/Workers/{chunk-CVAAIRNP.js → chunk-6MPGQEHA.js} +2 -2
- package/Build/Workers/{chunk-LHFC4R7Z.js → chunk-6RMS4S72.js} +6 -6
- package/Build/Workers/{chunk-77DJBHMI.js → chunk-6WLHJFD3.js} +7 -7
- package/Build/Workers/{chunk-HXEPZWJN.js → chunk-72VYSVEW.js} +9 -9
- package/Build/Workers/{chunk-VPWYHFQA.js → chunk-7MDYBRYJ.js} +4 -4
- package/Build/Workers/{chunk-XPMXRJDD.js → chunk-7O5XJTVE.js} +5 -5
- package/Build/Workers/{chunk-UEWYSOFD.js → chunk-7QRFIKWQ.js} +2 -2
- package/Build/Workers/{chunk-3UQ2YMPP.js → chunk-7TYLCBGK.js} +8 -8
- package/Build/Workers/{chunk-GLCPE2BJ.js → chunk-7X322WP2.js} +13 -13
- package/Build/Workers/{chunk-2OBWHTIC.js → chunk-A47HVBC5.js} +7 -7
- package/Build/Workers/{chunk-CID5SY7L.js → chunk-AF3MU2RL.js} +5 -5
- package/Build/Workers/{chunk-BTP3634E.js → chunk-AJLTU6PF.js} +1 -1
- package/Build/Workers/{chunk-YSJRB2UZ.js → chunk-AMIHNSST.js} +2 -2
- package/Build/Workers/{chunk-QPXGGVHC.js → chunk-B6SCUUFP.js} +10 -10
- package/Build/Workers/{chunk-QNABVTTP.js → chunk-BJD6QGXZ.js} +12 -12
- package/Build/Workers/{chunk-RZX6LOG6.js → chunk-C6P4IG5P.js} +6 -6
- package/Build/Workers/{chunk-4JJQRZYL.js → chunk-D4EJ2NXG.js} +17 -17
- package/Build/Workers/{chunk-K7UTK4OM.js → chunk-DHKPFLSJ.js} +1 -1
- package/Build/Workers/{chunk-S53HSRT6.js → chunk-DVB56LG7.js} +6 -6
- package/Build/Workers/{chunk-PBECJOWF.js → chunk-EDXL4W76.js} +2 -2
- package/Build/Workers/{chunk-ALTCIHRH.js → chunk-EV3VGO6Y.js} +17 -17
- package/Build/Workers/{chunk-UOQB7XQI.js → chunk-GOQBUCXH.js} +10 -10
- package/Build/Workers/{chunk-TMCTZ5E3.js → chunk-GQUNK2XC.js} +14 -14
- package/Build/Workers/{chunk-PAFMAR7A.js → chunk-HKUES6UG.js} +12 -12
- package/Build/Workers/{chunk-6U5QMZU3.js → chunk-HRHRYFHS.js} +9 -9
- package/Build/Workers/{chunk-PUO7BYDY.js → chunk-HXJMS2ZI.js} +1 -1
- package/Build/Workers/{chunk-FXSRA5UG.js → chunk-ILMFADZA.js} +4 -4
- package/Build/Workers/{chunk-U4SWB6TI.js → chunk-ISY4EZCA.js} +4 -4
- package/Build/Workers/{chunk-PGZ3B6CB.js → chunk-J6AW5YHS.js} +14 -14
- package/Build/Workers/{chunk-VX774SWE.js → chunk-JCI63T3K.js} +6 -6
- package/Build/Workers/{chunk-54O3AGOA.js → chunk-KLPGTXS3.js} +6 -6
- package/Build/Workers/{chunk-CNLXMOPM.js → chunk-LIB2H534.js} +10 -10
- package/Build/Workers/{chunk-H3TVRJLY.js → chunk-LXMCPFFS.js} +4 -4
- package/Build/Workers/{chunk-DNMASBMH.js → chunk-MKM27KGV.js} +2 -2
- package/Build/Workers/{chunk-66OWUDO7.js → chunk-N65BAKSH.js} +8 -8
- package/Build/Workers/{chunk-ZEMJQKHD.js → chunk-NKT5K3K3.js} +11 -11
- package/Build/Workers/{chunk-EIC3VAOZ.js → chunk-NPF7SSHZ.js} +7 -7
- package/Build/Workers/{chunk-YDR5LX5Z.js → chunk-PVV64VFW.js} +1 -1
- package/Build/Workers/{chunk-FKU77FNM.js → chunk-Q3C6VQH6.js} +4 -4
- package/Build/Workers/{chunk-CYOPNGPX.js → chunk-RQNJD3O4.js} +12 -12
- package/Build/Workers/{chunk-IJ3SUMK3.js → chunk-UIGVOKKI.js} +1 -1
- package/Build/Workers/{chunk-TFPG3ZKW.js → chunk-UQU4RXLT.js} +27 -19
- package/Build/Workers/{chunk-N6HRZLS6.js → chunk-VLDEUTOP.js} +2 -2
- package/Build/Workers/{chunk-MNSNOONX.js → chunk-VMVOUQ5J.js} +7 -7
- package/Build/Workers/{chunk-OZYB3AOR.js → chunk-XJRBB253.js} +11 -11
- package/Build/Workers/{chunk-B2VA6IEL.js → chunk-XY6HMDGI.js} +5 -5
- package/Build/Workers/{chunk-2M7DKGLW.js → chunk-Y7HNNPNK.js} +10 -10
- package/Build/Workers/{chunk-CJ7ZDY77.js → chunk-YAOZMOFL.js} +5 -5
- package/Build/Workers/{chunk-FCJQO4NC.js → chunk-YJZGW74L.js} +8 -8
- package/Build/Workers/{chunk-JUKGMJX7.js → chunk-YQFTYQMZ.js} +1 -1
- package/Build/Workers/{chunk-HNDE73JK.js → chunk-ZBZRTRJB.js} +10 -10
- 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 +25 -25
- package/Build/Workers/createWallOutlineGeometry.js +24 -24
- package/Build/Workers/decodeDraco.js +10 -10
- package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
- package/Build/Workers/decodeI3S.js +12 -12
- 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/BoundingSphere.js +1 -1
- package/Source/Core/Cartesian2.js +7 -5
- package/Source/Core/Cartesian3.js +8 -6
- package/Source/Core/Cartesian4.js +8 -6
- package/Source/Core/Color.js +5 -3
- package/Source/Core/DeveloperError.js +2 -1
- package/Source/Core/ITwinPlatform.js +1 -0
- package/Source/Core/Ion.js +1 -1
- package/Source/Core/S2Cell.js +2 -2
- package/Source/Core/TerrainMesh.js +10 -1
- package/Source/Core/TerrainPicker.js +1 -0
- package/Source/Core/WallGeometry.js +1 -1
- package/Source/Core/WallOutlineGeometry.js +1 -1
- package/Source/Core/assert.js +27 -0
- package/Source/Core/globalTypes.js +4 -0
- package/Source/DataSources/CzmlDataSource.js +9 -0
- package/Source/DataSources/PathGraphics.js +13 -0
- package/Source/DataSources/PathVisualizer.js +330 -18
- package/Source/DataSources/StaticGeometryColorBatch.js +7 -2
- package/Source/DataSources/StaticGeometryPerMaterialBatch.js +7 -2
- package/Source/DataSources/StaticGroundGeometryPerMaterialBatch.js +3 -1
- package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +3 -1
- package/Source/Renderer/Context.js +1 -1
- package/Source/Renderer/RenderState.js +2 -2
- package/Source/Renderer/VertexArray.js +80 -0
- package/Source/Scene/ArcGisMapService.js +1 -1
- package/Source/Scene/BillboardCollection.js +65 -364
- package/Source/Scene/BufferPoint.js +148 -0
- package/Source/Scene/BufferPointCollection.js +135 -0
- package/Source/Scene/BufferPointMaterial.js +95 -0
- package/Source/Scene/BufferPolygon.js +516 -0
- package/Source/Scene/BufferPolygonCollection.js +368 -0
- package/Source/Scene/BufferPolygonMaterial.js +41 -0
- package/Source/Scene/BufferPolyline.js +185 -0
- package/Source/Scene/BufferPolylineCollection.js +136 -0
- package/Source/Scene/BufferPolylineMaterial.js +93 -0
- package/Source/Scene/BufferPrimitive.js +347 -0
- package/Source/Scene/BufferPrimitiveCollection.js +702 -0
- package/Source/Scene/BufferPrimitiveMaterial.js +140 -0
- package/Source/Scene/Cesium3DTileContent.js +5 -1
- package/Source/Scene/Cesium3DTileContentFactory.js +9 -0
- package/Source/Scene/Cesium3DTileStyle.js +22 -0
- package/Source/Scene/Cesium3DTileset.js +1 -0
- package/Source/Scene/ClippingPolygonCollection.js +270 -101
- package/Source/Scene/CubeMapPanorama.js +4 -4
- package/Source/Scene/GaussianSplat3DTileContent.js +40 -46
- package/Source/Scene/GaussianSplatPrimitive.js +413 -70
- package/Source/Scene/GetFeatureInfoFormat.js +3 -3
- package/Source/Scene/GltfLoader.js +215 -34
- package/Source/Scene/GltfSpzLoader.js +109 -0
- package/Source/Scene/ITwinData.js +1 -0
- package/Source/Scene/Label.js +32 -0
- package/Source/Scene/LabelCollection.js +14 -13
- package/Source/Scene/Material.js +2 -0
- package/Source/Scene/Megatexture.js +1 -0
- package/Source/Scene/MetadataClassProperty.js +24 -10
- package/Source/Scene/MetadataComponentType.js +115 -23
- package/Source/Scene/Model/CustomShaderPipelineStage.js +3 -1
- package/Source/Scene/Model/EdgeVisibilityPipelineStage.js +761 -263
- package/Source/Scene/Model/MaterialPipelineStage.js +147 -0
- package/Source/Scene/Model/MetadataPipelineStage.js +3 -3
- package/Source/Scene/Model/ModelDrawCommand.js +6 -0
- package/Source/Scene/Model/ModelReader.js +1 -1
- package/Source/Scene/Model/ModelUtility.js +3 -1
- package/Source/Scene/Model/createVectorTileBuffersFromModelComponents.js +330 -0
- package/Source/Scene/ModelComponents.js +1632 -1542
- package/Source/Scene/PickedMetadataInfo.js +1 -0
- package/Source/Scene/ScreenSpaceCameraController.js +13 -0
- package/Source/Scene/SkyBox.js +17 -8
- package/Source/Scene/TileBoundingRegion.js +1 -1
- package/Source/Scene/TileBoundingS2Cell.js +1 -1
- package/Source/Scene/TileBoundingSphere.js +1 -1
- package/Source/Scene/TweenCollection.js +7 -0
- package/Source/Scene/VectorGltf3DTileContent.js +382 -0
- package/Source/Scene/VertexAttributeSemantic.js +14 -0
- package/Source/Scene/WebMapServiceImageryProvider.js +2 -2
- package/Source/Scene/WebMapTileServiceImageryProvider.js +366 -131
- package/Source/Scene/parseStructuralMetadata.js +97 -37
- package/Source/Scene/renderBufferPointCollection.js +334 -0
- package/Source/Scene/renderBufferPolygonCollection.js +386 -0
- package/Source/Scene/renderBufferPolylineCollection.js +529 -0
- package/Source/Shaders/BillboardCollectionFS.glsl +2 -77
- package/Source/Shaders/BillboardCollectionFS.js +2 -77
- package/Source/Shaders/BillboardCollectionVS.glsl +2 -60
- package/Source/Shaders/BillboardCollectionVS.js +2 -60
- package/Source/Shaders/BufferPointMaterialFS.glsl +27 -0
- package/Source/Shaders/BufferPointMaterialFS.js +29 -0
- package/Source/Shaders/BufferPointMaterialVS.glsl +48 -0
- package/Source/Shaders/BufferPointMaterialVS.js +50 -0
- package/Source/Shaders/BufferPolygonMaterialFS.glsl +13 -0
- package/Source/Shaders/BufferPolygonMaterialFS.js +15 -0
- package/Source/Shaders/BufferPolygonMaterialVS.glsl +30 -0
- package/Source/Shaders/BufferPolygonMaterialVS.js +32 -0
- package/Source/Shaders/BufferPolylineMaterialFS.glsl +13 -0
- package/Source/Shaders/BufferPolylineMaterialFS.js +15 -0
- package/Source/Shaders/BufferPolylineMaterialVS.glsl +49 -0
- package/Source/Shaders/BufferPolylineMaterialVS.js +51 -0
- package/Source/Shaders/Model/EdgeVisibilityStageFS.glsl +34 -48
- package/Source/Shaders/Model/EdgeVisibilityStageFS.js +34 -49
- package/Source/Shaders/Model/EdgeVisibilityStageVS.glsl +98 -0
- package/Source/Shaders/Model/EdgeVisibilityStageVS.js +100 -0
- package/Source/Shaders/Model/ModelFS.glsl +15 -0
- package/Source/Shaders/Model/ModelFS.js +15 -0
- package/Source/Shaders/Model/ModelVS.glsl +8 -0
- package/Source/Shaders/Model/ModelVS.js +8 -0
- package/Source/Shaders/PolygonSignedDistanceFS.glsl +64 -33
- package/Source/Shaders/PolygonSignedDistanceFS.js +64 -33
- package/Source/Shaders/PrimitiveGaussianSplatVS.glsl +9 -2
- package/Source/Shaders/PrimitiveGaussianSplatVS.js +9 -2
- package/Source/Shaders/Voxels/VoxelFS.glsl +1 -1
- package/Source/Shaders/Voxels/VoxelFS.js +1 -1
- package/Source/Workers/decodeDraco.js +3 -0
- package/Source/Workers/decodeI3S.js +5 -2
- package/index.d.ts +1007 -111
- package/index.js +394 -369
- package/package.json +2 -2
|
@@ -21,16 +21,6 @@ in vec4 v_compressed; // x: eyeDepth, y: applyTran
|
|
|
21
21
|
const float SHIFT_LEFT1 = 2.0;\n\
|
|
22
22
|
const float SHIFT_RIGHT1 = 1.0 / 2.0;\n\
|
|
23
23
|
\n\
|
|
24
|
-
#ifdef FS_THREE_POINT_DEPTH_CHECK\n\
|
|
25
|
-
in vec4 v_textureCoordinateBounds; // the min and max x and y values for the texture coordinates\n\
|
|
26
|
-
in vec4 v_originTextureCoordinateAndTranslate; // texture coordinate at the origin, billboard translate (used for label glyphs)\n\
|
|
27
|
-
in mat2 v_rotationMatrix;\n\
|
|
28
|
-
\n\
|
|
29
|
-
const float SHIFT_LEFT12 = 4096.0;\n\
|
|
30
|
-
\n\
|
|
31
|
-
const float SHIFT_RIGHT12 = 1.0 / 4096.0;\n\
|
|
32
|
-
#endif\n\
|
|
33
|
-
\n\
|
|
34
24
|
float getGlobeDepthAtCoords(vec2 st)\n\
|
|
35
25
|
{\n\
|
|
36
26
|
float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, st));\n\
|
|
@@ -43,27 +33,6 @@ float getGlobeDepthAtCoords(vec2 st)\n\
|
|
|
43
33
|
return eyeCoordinate.z / eyeCoordinate.w;\n\
|
|
44
34
|
}\n\
|
|
45
35
|
\n\
|
|
46
|
-
#ifdef FS_THREE_POINT_DEPTH_CHECK\n\
|
|
47
|
-
float getGlobeDepth(vec2 adjustedST, vec2 depthLookupST, bool applyTranslate, vec2 dimensions, vec2 imageSize)\n\
|
|
48
|
-
{\n\
|
|
49
|
-
vec2 lookupVector = imageSize * (depthLookupST - adjustedST);\n\
|
|
50
|
-
lookupVector = v_rotationMatrix * lookupVector;\n\
|
|
51
|
-
vec2 labelOffset = (dimensions - imageSize) * (depthLookupST - vec2(0.0, v_originTextureCoordinateAndTranslate.y)); // aligns label glyph with bounding rectangle. Will be zero for billboards because dimensions and imageSize will be equal\n\
|
|
52
|
-
\n\
|
|
53
|
-
vec2 translation = v_originTextureCoordinateAndTranslate.zw;\n\
|
|
54
|
-
\n\
|
|
55
|
-
if (applyTranslate)\n\
|
|
56
|
-
{\n\
|
|
57
|
-
// this is only needed for labels where the horizontal origin is not LEFT\n\
|
|
58
|
-
// it moves the label back to where the \"origin\" should be since all label glyphs are set to HorizontalOrigin.LEFT\n\
|
|
59
|
-
translation += (dimensions * v_originTextureCoordinateAndTranslate.xy * vec2(1.0, 0.0));\n\
|
|
60
|
-
}\n\
|
|
61
|
-
\n\
|
|
62
|
-
vec2 st = ((lookupVector - translation + labelOffset) + gl_FragCoord.xy) / czm_viewport.zw;\n\
|
|
63
|
-
return getGlobeDepthAtCoords(st);\n\
|
|
64
|
-
}\n\
|
|
65
|
-
#endif\n\
|
|
66
|
-
\n\
|
|
67
36
|
#ifdef SDF\n\
|
|
68
37
|
\n\
|
|
69
38
|
// Get the distance from the edge of a glyph at a given position sampling an SDF texture.\n\
|
|
@@ -94,44 +63,6 @@ vec4 getSDFColor(vec2 position, float outlineWidth, vec4 outlineColor, float smo
|
|
|
94
63
|
}\n\
|
|
95
64
|
#endif\n\
|
|
96
65
|
\n\
|
|
97
|
-
#ifdef FS_THREE_POINT_DEPTH_CHECK\n\
|
|
98
|
-
void doThreePointDepthTest(float eyeDepth, bool applyTranslate) {\n\
|
|
99
|
-
\n\
|
|
100
|
-
if (eyeDepth < -u_threePointDepthTestDistance) return;\n\
|
|
101
|
-
float temp = v_compressed.z;\n\
|
|
102
|
-
temp = temp * SHIFT_RIGHT12;\n\
|
|
103
|
-
\n\
|
|
104
|
-
vec2 dimensions;\n\
|
|
105
|
-
dimensions.y = (temp - floor(temp)) * SHIFT_LEFT12;\n\
|
|
106
|
-
dimensions.x = floor(temp);\n\
|
|
107
|
-
\n\
|
|
108
|
-
temp = v_compressed.w;\n\
|
|
109
|
-
temp = temp * SHIFT_RIGHT12;\n\
|
|
110
|
-
\n\
|
|
111
|
-
vec2 imageSize;\n\
|
|
112
|
-
imageSize.y = (temp - floor(temp)) * SHIFT_LEFT12;\n\
|
|
113
|
-
imageSize.x = floor(temp);\n\
|
|
114
|
-
\n\
|
|
115
|
-
vec2 adjustedST = v_textureCoordinates - v_textureCoordinateBounds.xy;\n\
|
|
116
|
-
adjustedST = adjustedST / vec2(v_textureCoordinateBounds.z - v_textureCoordinateBounds.x, v_textureCoordinateBounds.w - v_textureCoordinateBounds.y);\n\
|
|
117
|
-
\n\
|
|
118
|
-
float epsilonEyeDepth = v_compressed.x + czm_epsilon1;\n\
|
|
119
|
-
float globeDepth1 = getGlobeDepth(adjustedST, v_originTextureCoordinateAndTranslate.xy, applyTranslate, dimensions, imageSize);\n\
|
|
120
|
-
\n\
|
|
121
|
-
// negative values go into the screen\n\
|
|
122
|
-
if (globeDepth1 == 0.0 || globeDepth1 < epsilonEyeDepth) return;\n\
|
|
123
|
-
\n\
|
|
124
|
-
float globeDepth2 = getGlobeDepth(adjustedST, vec2(0.0, 1.0), applyTranslate, dimensions, imageSize); // top left corner\n\
|
|
125
|
-
if (globeDepth2 == 0.0 || globeDepth2 < epsilonEyeDepth) return;\n\
|
|
126
|
-
\n\
|
|
127
|
-
float globeDepth3 = getGlobeDepth(adjustedST, vec2(1.0, 1.0), applyTranslate, dimensions, imageSize); // top right corner\n\
|
|
128
|
-
if (globeDepth3 == 0.0 || globeDepth3 < epsilonEyeDepth) return;\n\
|
|
129
|
-
\n\
|
|
130
|
-
// All three key points are occluded, discard the fragment (and by extension the entire billboard)\n\
|
|
131
|
-
discard;\n\
|
|
132
|
-
}\n\
|
|
133
|
-
#endif\n\
|
|
134
|
-
\n\
|
|
135
66
|
bool getDepthTestEnabled() {\n\
|
|
136
67
|
float temp = v_compressed.y;\n\
|
|
137
68
|
temp = temp * SHIFT_RIGHT1;\n\
|
|
@@ -154,13 +85,7 @@ float getRelativeEyeDepth(float eyeDepth, float distanceToEllipsoid, float epsil
|
|
|
154
85
|
// by the globe when near and far from the camera.\n\
|
|
155
86
|
void doDepthTest(float eyeDepth, float globeDepth) {\n\
|
|
156
87
|
\n\
|
|
157
|
-
#ifdef
|
|
158
|
-
// If the billboard is clamped to the ground and within a given distance, we do a 3-point depth test. This test is performed in the vertex shader, unless\n\
|
|
159
|
-
// vertex texture sampling is not supported, in which case we do it here.\n\
|
|
160
|
-
bool applyTranslate = floor(temp) != 0.0;\n\
|
|
161
|
-
doThreePointDepthTest(eyeDepth, applyTranslate);\n\
|
|
162
|
-
\n\
|
|
163
|
-
#elif defined(VS_THREE_POINT_DEPTH_CHECK)\n\
|
|
88
|
+
#ifdef VS_THREE_POINT_DEPTH_CHECK\n\
|
|
164
89
|
// Since discarding vertices is not possible, the vertex shader sets eyeDepth to 0 to indicate the depth test failed. Apply the discard here.\n\
|
|
165
90
|
if (eyeDepth > -u_threePointDepthTestDistance) {\n\
|
|
166
91
|
if (eyeDepth == 0.0) {\n\
|
|
@@ -189,7 +114,7 @@ void writeDepth(float eyeDepth, float globeDepth, float distanceToEllipsoid) {\n
|
|
|
189
114
|
\n\
|
|
190
115
|
float depthArg = v_depthFromNearPlusOne;\n\
|
|
191
116
|
\n\
|
|
192
|
-
if (globeDepth != 0.0 && getRelativeEyeDepth(eyeDepth, distanceToEllipsoid, czm_epsilon3) > 0.0) {
|
|
117
|
+
if (globeDepth != 0.0 && getRelativeEyeDepth(eyeDepth, distanceToEllipsoid, czm_epsilon3) > 0.0) {\n\
|
|
193
118
|
float globeDepthFromNearPlusOne = (-globeDepth - czm_currentFrustum.x) + 1.0;\n\
|
|
194
119
|
float nudge = max(globeDepthFromNearPlusOne * 5e-6, czm_epsilon7);\n\
|
|
195
120
|
float globeOnTop = max(1.0, globeDepthFromNearPlusOne - nudge);\n\
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
uniform float u_threePointDepthTestDistance;
|
|
2
|
-
#ifdef INSTANCED
|
|
3
2
|
in vec2 direction;
|
|
4
|
-
#endif
|
|
5
3
|
in vec4 positionHighAndScale;
|
|
6
4
|
in vec4 positionLowAndRotation;
|
|
7
5
|
in vec4 compressedAttribute0; // pixel offset, translate, horizontal origin, vertical origin, show, direction, texture coordinates (texture offset)
|
|
@@ -13,7 +11,7 @@ in vec4 pixelOffsetScaleByDistance; // near, nearScale, far, far
|
|
|
13
11
|
in vec4 compressedAttribute3; // distance display condition near, far, disableDepthTestDistanceSq, dimensions
|
|
14
12
|
in vec2 sdf; // sdf outline color (rgb) and width (w)
|
|
15
13
|
in float splitDirection; // splitDirection
|
|
16
|
-
#
|
|
14
|
+
#ifdef VS_THREE_POINT_DEPTH_CHECK
|
|
17
15
|
in vec4 textureCoordinateBoundsOrLabelTranslate; // the min and max x and y values for the texture coordinates
|
|
18
16
|
#endif
|
|
19
17
|
#ifdef VECTOR_TILE
|
|
@@ -21,11 +19,6 @@ in float a_batchId;
|
|
|
21
19
|
#endif
|
|
22
20
|
|
|
23
21
|
out vec2 v_textureCoordinates;
|
|
24
|
-
#ifdef FS_THREE_POINT_DEPTH_CHECK
|
|
25
|
-
out vec4 v_textureCoordinateBounds;
|
|
26
|
-
out vec4 v_originTextureCoordinateAndTranslate;
|
|
27
|
-
out mat2 v_rotationMatrix;
|
|
28
|
-
#endif
|
|
29
22
|
out vec4 v_compressed; // x: eyeDepth, y: applyTranslate & enableDepthCheck, z: dimensions, w: imageSize
|
|
30
23
|
|
|
31
24
|
out vec4 v_pickColor;
|
|
@@ -138,25 +131,14 @@ void main()
|
|
|
138
131
|
origin.y = floor(compressed * SHIFT_RIGHT3);
|
|
139
132
|
compressed -= origin.y * SHIFT_LEFT3;
|
|
140
133
|
|
|
141
|
-
#ifdef FS_THREE_POINT_DEPTH_CHECK
|
|
142
|
-
vec2 depthOrigin = origin.xy;
|
|
143
|
-
#endif
|
|
144
134
|
origin -= vec2(1.0);
|
|
145
135
|
|
|
146
136
|
float show = floor(compressed * SHIFT_RIGHT2);
|
|
147
137
|
compressed -= show * SHIFT_LEFT2;
|
|
148
138
|
|
|
149
|
-
#ifdef INSTANCED
|
|
150
139
|
vec2 textureCoordinatesBottomLeft = czm_decompressTextureCoordinates(compressedAttribute0.w);
|
|
151
140
|
vec2 textureCoordinatesRange = czm_decompressTextureCoordinates(eyeOffset.w);
|
|
152
141
|
vec2 textureCoordinates = textureCoordinatesBottomLeft + direction * textureCoordinatesRange;
|
|
153
|
-
#else
|
|
154
|
-
vec2 direction;
|
|
155
|
-
direction.x = floor(compressed * SHIFT_RIGHT1);
|
|
156
|
-
direction.y = compressed - direction.x * SHIFT_LEFT1;
|
|
157
|
-
|
|
158
|
-
vec2 textureCoordinates = czm_decompressTextureCoordinates(compressedAttribute0.w);
|
|
159
|
-
#endif
|
|
160
142
|
|
|
161
143
|
float temp = compressedAttribute0.y * SHIFT_RIGHT8;
|
|
162
144
|
pixelOffset.y = -(floor(temp) - UPPER_BOUND);
|
|
@@ -177,19 +159,6 @@ void main()
|
|
|
177
159
|
|
|
178
160
|
vec2 imageSize = vec2(floor(temp), temp2);
|
|
179
161
|
|
|
180
|
-
#ifdef FS_THREE_POINT_DEPTH_CHECK
|
|
181
|
-
float labelHorizontalOrigin = floor(compressedAttribute2.w - (temp2 * SHIFT_LEFT2));
|
|
182
|
-
float applyTranslate = 0.0;
|
|
183
|
-
if (labelHorizontalOrigin != 0.0) // is a label, so set apply translate to true
|
|
184
|
-
{
|
|
185
|
-
applyTranslate = 1.0;
|
|
186
|
-
labelHorizontalOrigin -= 2.0;
|
|
187
|
-
depthOrigin.x = labelHorizontalOrigin + 1.0;
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
depthOrigin = vec2(1.0) - (depthOrigin * 0.5);
|
|
191
|
-
#endif
|
|
192
|
-
|
|
193
162
|
#ifdef EYE_DISTANCE_TRANSLUCENCY
|
|
194
163
|
vec4 translucencyByDistance;
|
|
195
164
|
translucencyByDistance.x = compressedAttribute1.z;
|
|
@@ -201,7 +170,7 @@ void main()
|
|
|
201
170
|
translucencyByDistance.w = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0;
|
|
202
171
|
#endif
|
|
203
172
|
|
|
204
|
-
#
|
|
173
|
+
#ifdef VS_THREE_POINT_DEPTH_CHECK
|
|
205
174
|
temp = compressedAttribute3.w;
|
|
206
175
|
temp = temp * SHIFT_RIGHT12;
|
|
207
176
|
|
|
@@ -384,33 +353,6 @@ if (lengthSq < (u_threePointDepthTestDistance * u_threePointDepthTestDistance) &
|
|
|
384
353
|
}
|
|
385
354
|
#endif
|
|
386
355
|
|
|
387
|
-
#ifdef FS_THREE_POINT_DEPTH_CHECK
|
|
388
|
-
if (sizeInMeters) {
|
|
389
|
-
translate /= mpp;
|
|
390
|
-
dimensions /= mpp;
|
|
391
|
-
imageSize /= mpp;
|
|
392
|
-
}
|
|
393
|
-
|
|
394
|
-
#if defined(ROTATION) || defined(ALIGNED_AXIS)
|
|
395
|
-
v_rotationMatrix = rotationMatrix;
|
|
396
|
-
#else
|
|
397
|
-
v_rotationMatrix = mat2(1.0, 0.0, 0.0, 1.0);
|
|
398
|
-
#endif
|
|
399
|
-
float dw = floor(clamp(dimensions.x, 0.0, SHIFT_LEFT12));
|
|
400
|
-
float dh = floor(clamp(dimensions.y, 0.0, SHIFT_LEFT12));
|
|
401
|
-
|
|
402
|
-
float iw = floor(clamp(imageSize.x, 0.0, SHIFT_LEFT12));
|
|
403
|
-
float ih = floor(clamp(imageSize.y, 0.0, SHIFT_LEFT12));
|
|
404
|
-
|
|
405
|
-
v_compressed.y += applyTranslate * SHIFT_LEFT1;
|
|
406
|
-
v_compressed.z = dw * SHIFT_LEFT12 + dh;
|
|
407
|
-
v_compressed.w = iw * SHIFT_LEFT12 + ih;
|
|
408
|
-
v_originTextureCoordinateAndTranslate.xy = depthOrigin;
|
|
409
|
-
v_originTextureCoordinateAndTranslate.zw = translate;
|
|
410
|
-
v_textureCoordinateBounds = textureCoordinateBoundsOrLabelTranslate;
|
|
411
|
-
|
|
412
|
-
#endif
|
|
413
|
-
|
|
414
356
|
#ifdef SDF
|
|
415
357
|
vec4 outlineColor = czm_decodeRGB8(sdf.x);
|
|
416
358
|
float outlineWidth;
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
//This file is automatically rebuilt by the Cesium build process.
|
|
2
2
|
export default "uniform float u_threePointDepthTestDistance;\n\
|
|
3
|
-
#ifdef INSTANCED\n\
|
|
4
3
|
in vec2 direction;\n\
|
|
5
|
-
#endif\n\
|
|
6
4
|
in vec4 positionHighAndScale;\n\
|
|
7
5
|
in vec4 positionLowAndRotation;\n\
|
|
8
6
|
in vec4 compressedAttribute0; // pixel offset, translate, horizontal origin, vertical origin, show, direction, texture coordinates (texture offset)\n\
|
|
@@ -14,7 +12,7 @@ in vec4 pixelOffsetScaleByDistance; // near, nearScale, far, far
|
|
|
14
12
|
in vec4 compressedAttribute3; // distance display condition near, far, disableDepthTestDistanceSq, dimensions\n\
|
|
15
13
|
in vec2 sdf; // sdf outline color (rgb) and width (w)\n\
|
|
16
14
|
in float splitDirection; // splitDirection\n\
|
|
17
|
-
#
|
|
15
|
+
#ifdef VS_THREE_POINT_DEPTH_CHECK\n\
|
|
18
16
|
in vec4 textureCoordinateBoundsOrLabelTranslate; // the min and max x and y values for the texture coordinates\n\
|
|
19
17
|
#endif\n\
|
|
20
18
|
#ifdef VECTOR_TILE\n\
|
|
@@ -22,11 +20,6 @@ in float a_batchId;\n\
|
|
|
22
20
|
#endif\n\
|
|
23
21
|
\n\
|
|
24
22
|
out vec2 v_textureCoordinates;\n\
|
|
25
|
-
#ifdef FS_THREE_POINT_DEPTH_CHECK\n\
|
|
26
|
-
out vec4 v_textureCoordinateBounds;\n\
|
|
27
|
-
out vec4 v_originTextureCoordinateAndTranslate;\n\
|
|
28
|
-
out mat2 v_rotationMatrix;\n\
|
|
29
|
-
#endif\n\
|
|
30
23
|
out vec4 v_compressed; // x: eyeDepth, y: applyTranslate & enableDepthCheck, z: dimensions, w: imageSize\n\
|
|
31
24
|
\n\
|
|
32
25
|
out vec4 v_pickColor;\n\
|
|
@@ -139,25 +132,14 @@ void main()\n\
|
|
|
139
132
|
origin.y = floor(compressed * SHIFT_RIGHT3);\n\
|
|
140
133
|
compressed -= origin.y * SHIFT_LEFT3;\n\
|
|
141
134
|
\n\
|
|
142
|
-
#ifdef FS_THREE_POINT_DEPTH_CHECK\n\
|
|
143
|
-
vec2 depthOrigin = origin.xy;\n\
|
|
144
|
-
#endif\n\
|
|
145
135
|
origin -= vec2(1.0);\n\
|
|
146
136
|
\n\
|
|
147
137
|
float show = floor(compressed * SHIFT_RIGHT2);\n\
|
|
148
138
|
compressed -= show * SHIFT_LEFT2;\n\
|
|
149
139
|
\n\
|
|
150
|
-
#ifdef INSTANCED\n\
|
|
151
140
|
vec2 textureCoordinatesBottomLeft = czm_decompressTextureCoordinates(compressedAttribute0.w);\n\
|
|
152
141
|
vec2 textureCoordinatesRange = czm_decompressTextureCoordinates(eyeOffset.w);\n\
|
|
153
142
|
vec2 textureCoordinates = textureCoordinatesBottomLeft + direction * textureCoordinatesRange;\n\
|
|
154
|
-
#else\n\
|
|
155
|
-
vec2 direction;\n\
|
|
156
|
-
direction.x = floor(compressed * SHIFT_RIGHT1);\n\
|
|
157
|
-
direction.y = compressed - direction.x * SHIFT_LEFT1;\n\
|
|
158
|
-
\n\
|
|
159
|
-
vec2 textureCoordinates = czm_decompressTextureCoordinates(compressedAttribute0.w);\n\
|
|
160
|
-
#endif\n\
|
|
161
143
|
\n\
|
|
162
144
|
float temp = compressedAttribute0.y * SHIFT_RIGHT8;\n\
|
|
163
145
|
pixelOffset.y = -(floor(temp) - UPPER_BOUND);\n\
|
|
@@ -178,19 +160,6 @@ void main()\n\
|
|
|
178
160
|
\n\
|
|
179
161
|
vec2 imageSize = vec2(floor(temp), temp2);\n\
|
|
180
162
|
\n\
|
|
181
|
-
#ifdef FS_THREE_POINT_DEPTH_CHECK\n\
|
|
182
|
-
float labelHorizontalOrigin = floor(compressedAttribute2.w - (temp2 * SHIFT_LEFT2));\n\
|
|
183
|
-
float applyTranslate = 0.0;\n\
|
|
184
|
-
if (labelHorizontalOrigin != 0.0) // is a label, so set apply translate to true\n\
|
|
185
|
-
{\n\
|
|
186
|
-
applyTranslate = 1.0;\n\
|
|
187
|
-
labelHorizontalOrigin -= 2.0;\n\
|
|
188
|
-
depthOrigin.x = labelHorizontalOrigin + 1.0;\n\
|
|
189
|
-
}\n\
|
|
190
|
-
\n\
|
|
191
|
-
depthOrigin = vec2(1.0) - (depthOrigin * 0.5);\n\
|
|
192
|
-
#endif\n\
|
|
193
|
-
\n\
|
|
194
163
|
#ifdef EYE_DISTANCE_TRANSLUCENCY\n\
|
|
195
164
|
vec4 translucencyByDistance;\n\
|
|
196
165
|
translucencyByDistance.x = compressedAttribute1.z;\n\
|
|
@@ -202,7 +171,7 @@ void main()\n\
|
|
|
202
171
|
translucencyByDistance.w = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0;\n\
|
|
203
172
|
#endif\n\
|
|
204
173
|
\n\
|
|
205
|
-
#
|
|
174
|
+
#ifdef VS_THREE_POINT_DEPTH_CHECK\n\
|
|
206
175
|
temp = compressedAttribute3.w;\n\
|
|
207
176
|
temp = temp * SHIFT_RIGHT12;\n\
|
|
208
177
|
\n\
|
|
@@ -385,33 +354,6 @@ if (lengthSq < (u_threePointDepthTestDistance * u_threePointDepthTestDistance) &
|
|
|
385
354
|
}\n\
|
|
386
355
|
#endif\n\
|
|
387
356
|
\n\
|
|
388
|
-
#ifdef FS_THREE_POINT_DEPTH_CHECK\n\
|
|
389
|
-
if (sizeInMeters) {\n\
|
|
390
|
-
translate /= mpp;\n\
|
|
391
|
-
dimensions /= mpp;\n\
|
|
392
|
-
imageSize /= mpp;\n\
|
|
393
|
-
}\n\
|
|
394
|
-
\n\
|
|
395
|
-
#if defined(ROTATION) || defined(ALIGNED_AXIS)\n\
|
|
396
|
-
v_rotationMatrix = rotationMatrix;\n\
|
|
397
|
-
#else\n\
|
|
398
|
-
v_rotationMatrix = mat2(1.0, 0.0, 0.0, 1.0);\n\
|
|
399
|
-
#endif\n\
|
|
400
|
-
float dw = floor(clamp(dimensions.x, 0.0, SHIFT_LEFT12));\n\
|
|
401
|
-
float dh = floor(clamp(dimensions.y, 0.0, SHIFT_LEFT12));\n\
|
|
402
|
-
\n\
|
|
403
|
-
float iw = floor(clamp(imageSize.x, 0.0, SHIFT_LEFT12));\n\
|
|
404
|
-
float ih = floor(clamp(imageSize.y, 0.0, SHIFT_LEFT12));\n\
|
|
405
|
-
\n\
|
|
406
|
-
v_compressed.y += applyTranslate * SHIFT_LEFT1;\n\
|
|
407
|
-
v_compressed.z = dw * SHIFT_LEFT12 + dh;\n\
|
|
408
|
-
v_compressed.w = iw * SHIFT_LEFT12 + ih;\n\
|
|
409
|
-
v_originTextureCoordinateAndTranslate.xy = depthOrigin;\n\
|
|
410
|
-
v_originTextureCoordinateAndTranslate.zw = translate;\n\
|
|
411
|
-
v_textureCoordinateBounds = textureCoordinateBoundsOrLabelTranslate;\n\
|
|
412
|
-
\n\
|
|
413
|
-
#endif\n\
|
|
414
|
-
\n\
|
|
415
357
|
#ifdef SDF\n\
|
|
416
358
|
vec4 outlineColor = czm_decodeRGB8(sdf.x);\n\
|
|
417
359
|
float outlineWidth;\n\
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
in vec4 v_pickColor;
|
|
2
|
+
in vec4 v_color;
|
|
3
|
+
in vec4 v_outlineColor;
|
|
4
|
+
in float v_innerRadiusFrac;
|
|
5
|
+
|
|
6
|
+
void main()
|
|
7
|
+
{
|
|
8
|
+
// Distance between fragment and point center, 0 to 0.5.
|
|
9
|
+
float distanceToCenter = length(gl_PointCoord - vec2(0.5));
|
|
10
|
+
float delta = fwidth(distanceToCenter);
|
|
11
|
+
|
|
12
|
+
float outerLimit = 0.5;
|
|
13
|
+
float innerLimit = 0.5 * v_innerRadiusFrac;
|
|
14
|
+
|
|
15
|
+
float outerAlpha = 1.0 - smoothstep(max(0.0, outerLimit - delta), outerLimit, distanceToCenter);
|
|
16
|
+
float innerAlpha = 1.0 - smoothstep(innerLimit - delta, innerLimit, distanceToCenter);
|
|
17
|
+
|
|
18
|
+
vec4 color = vec4(mix(v_outlineColor.rgb, v_color.rgb, innerAlpha), outerAlpha);
|
|
19
|
+
|
|
20
|
+
if (color.a < 0.005) // matches 0/255 and 1/255
|
|
21
|
+
{
|
|
22
|
+
discard;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
out_FragColor = czm_gammaCorrect(color);
|
|
26
|
+
czm_writeLogDepth();
|
|
27
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
//This file is automatically rebuilt by the Cesium build process.
|
|
2
|
+
export default "in vec4 v_pickColor;\n\
|
|
3
|
+
in vec4 v_color;\n\
|
|
4
|
+
in vec4 v_outlineColor;\n\
|
|
5
|
+
in float v_innerRadiusFrac;\n\
|
|
6
|
+
\n\
|
|
7
|
+
void main()\n\
|
|
8
|
+
{\n\
|
|
9
|
+
// Distance between fragment and point center, 0 to 0.5.\n\
|
|
10
|
+
float distanceToCenter = length(gl_PointCoord - vec2(0.5));\n\
|
|
11
|
+
float delta = fwidth(distanceToCenter);\n\
|
|
12
|
+
\n\
|
|
13
|
+
float outerLimit = 0.5;\n\
|
|
14
|
+
float innerLimit = 0.5 * v_innerRadiusFrac;\n\
|
|
15
|
+
\n\
|
|
16
|
+
float outerAlpha = 1.0 - smoothstep(max(0.0, outerLimit - delta), outerLimit, distanceToCenter);\n\
|
|
17
|
+
float innerAlpha = 1.0 - smoothstep(innerLimit - delta, innerLimit, distanceToCenter);\n\
|
|
18
|
+
\n\
|
|
19
|
+
vec4 color = vec4(mix(v_outlineColor.rgb, v_color.rgb, innerAlpha), outerAlpha);\n\
|
|
20
|
+
\n\
|
|
21
|
+
if (color.a < 0.005) // matches 0/255 and 1/255\n\
|
|
22
|
+
{\n\
|
|
23
|
+
discard;\n\
|
|
24
|
+
}\n\
|
|
25
|
+
\n\
|
|
26
|
+
out_FragColor = czm_gammaCorrect(color);\n\
|
|
27
|
+
czm_writeLogDepth();\n\
|
|
28
|
+
}\n\
|
|
29
|
+
";
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
in vec3 positionHigh;
|
|
2
|
+
in vec3 positionLow;
|
|
3
|
+
in vec4 pickColor;
|
|
4
|
+
in vec3 showPixelSizeAndColor;
|
|
5
|
+
in vec2 outlineWidthAndOutlineColor;
|
|
6
|
+
|
|
7
|
+
out vec4 v_pickColor;
|
|
8
|
+
out vec4 v_color;
|
|
9
|
+
out vec4 v_outlineColor;
|
|
10
|
+
out float v_innerRadiusFrac;
|
|
11
|
+
|
|
12
|
+
void main()
|
|
13
|
+
{
|
|
14
|
+
// Unpack attributes.
|
|
15
|
+
float show = showPixelSizeAndColor.x;
|
|
16
|
+
float pixelSize = showPixelSizeAndColor.y;
|
|
17
|
+
vec4 color = czm_decodeRGB8(showPixelSizeAndColor.z);
|
|
18
|
+
float outlineWidth = outlineWidthAndOutlineColor.x;
|
|
19
|
+
vec4 outlineColor = czm_decodeRGB8(outlineWidthAndOutlineColor.y);
|
|
20
|
+
|
|
21
|
+
///////////////////////////////////////////////////////////////////////////
|
|
22
|
+
|
|
23
|
+
float innerRadius = 0.5 * pixelSize * czm_pixelRatio;
|
|
24
|
+
float outerRadius = (0.5 * pixelSize + outlineWidth) * czm_pixelRatio;
|
|
25
|
+
|
|
26
|
+
///////////////////////////////////////////////////////////////////////////
|
|
27
|
+
|
|
28
|
+
vec4 p = czm_translateRelativeToEye(positionHigh, positionLow);
|
|
29
|
+
vec4 positionEC = czm_modelViewRelativeToEye * p;
|
|
30
|
+
|
|
31
|
+
///////////////////////////////////////////////////////////////////////////
|
|
32
|
+
|
|
33
|
+
gl_Position = czm_projection * positionEC;
|
|
34
|
+
czm_vertexLogDepth();
|
|
35
|
+
|
|
36
|
+
v_pickColor = pickColor / 255.0;
|
|
37
|
+
|
|
38
|
+
v_color = color;
|
|
39
|
+
v_color.a *= show;
|
|
40
|
+
|
|
41
|
+
v_outlineColor = outlineColor;
|
|
42
|
+
v_outlineColor.a *= show;
|
|
43
|
+
|
|
44
|
+
v_innerRadiusFrac = innerRadius / outerRadius;
|
|
45
|
+
|
|
46
|
+
gl_PointSize = 2.0 * outerRadius * show;
|
|
47
|
+
gl_Position *= show;
|
|
48
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
//This file is automatically rebuilt by the Cesium build process.
|
|
2
|
+
export default "in vec3 positionHigh;\n\
|
|
3
|
+
in vec3 positionLow;\n\
|
|
4
|
+
in vec4 pickColor;\n\
|
|
5
|
+
in vec3 showPixelSizeAndColor;\n\
|
|
6
|
+
in vec2 outlineWidthAndOutlineColor;\n\
|
|
7
|
+
\n\
|
|
8
|
+
out vec4 v_pickColor;\n\
|
|
9
|
+
out vec4 v_color;\n\
|
|
10
|
+
out vec4 v_outlineColor;\n\
|
|
11
|
+
out float v_innerRadiusFrac;\n\
|
|
12
|
+
\n\
|
|
13
|
+
void main()\n\
|
|
14
|
+
{\n\
|
|
15
|
+
// Unpack attributes.\n\
|
|
16
|
+
float show = showPixelSizeAndColor.x;\n\
|
|
17
|
+
float pixelSize = showPixelSizeAndColor.y;\n\
|
|
18
|
+
vec4 color = czm_decodeRGB8(showPixelSizeAndColor.z);\n\
|
|
19
|
+
float outlineWidth = outlineWidthAndOutlineColor.x;\n\
|
|
20
|
+
vec4 outlineColor = czm_decodeRGB8(outlineWidthAndOutlineColor.y);\n\
|
|
21
|
+
\n\
|
|
22
|
+
///////////////////////////////////////////////////////////////////////////\n\
|
|
23
|
+
\n\
|
|
24
|
+
float innerRadius = 0.5 * pixelSize * czm_pixelRatio;\n\
|
|
25
|
+
float outerRadius = (0.5 * pixelSize + outlineWidth) * czm_pixelRatio;\n\
|
|
26
|
+
\n\
|
|
27
|
+
///////////////////////////////////////////////////////////////////////////\n\
|
|
28
|
+
\n\
|
|
29
|
+
vec4 p = czm_translateRelativeToEye(positionHigh, positionLow);\n\
|
|
30
|
+
vec4 positionEC = czm_modelViewRelativeToEye * p;\n\
|
|
31
|
+
\n\
|
|
32
|
+
///////////////////////////////////////////////////////////////////////////\n\
|
|
33
|
+
\n\
|
|
34
|
+
gl_Position = czm_projection * positionEC;\n\
|
|
35
|
+
czm_vertexLogDepth();\n\
|
|
36
|
+
\n\
|
|
37
|
+
v_pickColor = pickColor / 255.0;\n\
|
|
38
|
+
\n\
|
|
39
|
+
v_color = color;\n\
|
|
40
|
+
v_color.a *= show;\n\
|
|
41
|
+
\n\
|
|
42
|
+
v_outlineColor = outlineColor;\n\
|
|
43
|
+
v_outlineColor.a *= show;\n\
|
|
44
|
+
\n\
|
|
45
|
+
v_innerRadiusFrac = innerRadius / outerRadius;\n\
|
|
46
|
+
\n\
|
|
47
|
+
gl_PointSize = 2.0 * outerRadius * show;\n\
|
|
48
|
+
gl_Position *= show;\n\
|
|
49
|
+
}\n\
|
|
50
|
+
";
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//This file is automatically rebuilt by the Cesium build process.
|
|
2
|
+
export default "in vec4 v_pickColor;\n\
|
|
3
|
+
in vec4 v_color;\n\
|
|
4
|
+
\n\
|
|
5
|
+
void main()\n\
|
|
6
|
+
{\n\
|
|
7
|
+
if (v_color.a < 0.005) // matches 0/255 and 1/255\n\
|
|
8
|
+
{\n\
|
|
9
|
+
discard;\n\
|
|
10
|
+
}\n\
|
|
11
|
+
\n\
|
|
12
|
+
out_FragColor = czm_gammaCorrect(v_color);\n\
|
|
13
|
+
czm_writeLogDepth();\n\
|
|
14
|
+
}\n\
|
|
15
|
+
";
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
in vec3 positionHigh;
|
|
2
|
+
in vec3 positionLow;
|
|
3
|
+
in vec4 pickColor;
|
|
4
|
+
in vec2 showAndColor;
|
|
5
|
+
|
|
6
|
+
out vec4 v_pickColor;
|
|
7
|
+
out vec4 v_color;
|
|
8
|
+
|
|
9
|
+
void main()
|
|
10
|
+
{
|
|
11
|
+
float show = showAndColor.x;
|
|
12
|
+
vec4 color = czm_decodeRGB8(showAndColor.y);
|
|
13
|
+
|
|
14
|
+
///////////////////////////////////////////////////////////////////////////
|
|
15
|
+
|
|
16
|
+
vec4 p = czm_translateRelativeToEye(positionHigh, positionLow);
|
|
17
|
+
vec4 positionEC = czm_modelViewRelativeToEye * p;
|
|
18
|
+
|
|
19
|
+
///////////////////////////////////////////////////////////////////////////
|
|
20
|
+
|
|
21
|
+
gl_Position = czm_projection * positionEC;
|
|
22
|
+
czm_vertexLogDepth();
|
|
23
|
+
|
|
24
|
+
v_pickColor = pickColor / 255.0;
|
|
25
|
+
|
|
26
|
+
v_color = color;
|
|
27
|
+
v_color.a *= show;
|
|
28
|
+
|
|
29
|
+
gl_Position *= show;
|
|
30
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
//This file is automatically rebuilt by the Cesium build process.
|
|
2
|
+
export default "in vec3 positionHigh;\n\
|
|
3
|
+
in vec3 positionLow;\n\
|
|
4
|
+
in vec4 pickColor;\n\
|
|
5
|
+
in vec2 showAndColor;\n\
|
|
6
|
+
\n\
|
|
7
|
+
out vec4 v_pickColor;\n\
|
|
8
|
+
out vec4 v_color;\n\
|
|
9
|
+
\n\
|
|
10
|
+
void main()\n\
|
|
11
|
+
{\n\
|
|
12
|
+
float show = showAndColor.x;\n\
|
|
13
|
+
vec4 color = czm_decodeRGB8(showAndColor.y);\n\
|
|
14
|
+
\n\
|
|
15
|
+
///////////////////////////////////////////////////////////////////////////\n\
|
|
16
|
+
\n\
|
|
17
|
+
vec4 p = czm_translateRelativeToEye(positionHigh, positionLow);\n\
|
|
18
|
+
vec4 positionEC = czm_modelViewRelativeToEye * p;\n\
|
|
19
|
+
\n\
|
|
20
|
+
///////////////////////////////////////////////////////////////////////////\n\
|
|
21
|
+
\n\
|
|
22
|
+
gl_Position = czm_projection * positionEC;\n\
|
|
23
|
+
czm_vertexLogDepth();\n\
|
|
24
|
+
\n\
|
|
25
|
+
v_pickColor = pickColor / 255.0;\n\
|
|
26
|
+
\n\
|
|
27
|
+
v_color = color;\n\
|
|
28
|
+
v_color.a *= show;\n\
|
|
29
|
+
\n\
|
|
30
|
+
gl_Position *= show;\n\
|
|
31
|
+
}\n\
|
|
32
|
+
";
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//This file is automatically rebuilt by the Cesium build process.
|
|
2
|
+
export default "in vec4 v_pickColor;\n\
|
|
3
|
+
in vec4 v_color;\n\
|
|
4
|
+
\n\
|
|
5
|
+
void main()\n\
|
|
6
|
+
{\n\
|
|
7
|
+
if (v_color.a < 0.005) // matches 0/255 and 1/255\n\
|
|
8
|
+
{\n\
|
|
9
|
+
discard;\n\
|
|
10
|
+
}\n\
|
|
11
|
+
\n\
|
|
12
|
+
out_FragColor = czm_gammaCorrect(v_color);\n\
|
|
13
|
+
czm_writeLogDepth();\n\
|
|
14
|
+
}\n\
|
|
15
|
+
";
|