@cesium/engine 23.0.0 → 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.
Files changed (226) hide show
  1. package/Build/Workers/{chunk-QTOHIXGF.js → chunk-2N4KDHS3.js} +10 -10
  2. package/Build/Workers/{chunk-SQTRWKO2.js → chunk-44EMEGKW.js} +5 -5
  3. package/Build/Workers/{chunk-OHBM4YG4.js → chunk-4TIG36AW.js} +12 -12
  4. package/Build/Workers/{chunk-BNBD2YZK.js → chunk-5A2SW66E.js} +16 -16
  5. package/Build/Workers/{chunk-52K3GJKG.js → chunk-5GXYJQ2K.js} +3 -3
  6. package/Build/Workers/{chunk-NQCAZU7S.js → chunk-63SIWPLS.js} +13 -13
  7. package/Build/Workers/{chunk-UEEGWJJP.js → chunk-6MPGQEHA.js} +2 -2
  8. package/Build/Workers/{chunk-PQVNT5CJ.js → chunk-6RMS4S72.js} +6 -6
  9. package/Build/Workers/{chunk-HYTFXWMY.js → chunk-6WLHJFD3.js} +7 -7
  10. package/Build/Workers/{chunk-DT5SJBKA.js → chunk-72VYSVEW.js} +9 -9
  11. package/Build/Workers/{chunk-JUGY5AZN.js → chunk-7MDYBRYJ.js} +4 -4
  12. package/Build/Workers/{chunk-6SLGTBB2.js → chunk-7O5XJTVE.js} +5 -5
  13. package/Build/Workers/{chunk-4UNQX2MP.js → chunk-7QRFIKWQ.js} +2 -2
  14. package/Build/Workers/{chunk-GN5NEUDT.js → chunk-7TYLCBGK.js} +8 -8
  15. package/Build/Workers/{chunk-SGKTBHFQ.js → chunk-7X322WP2.js} +13 -13
  16. package/Build/Workers/{chunk-T43FXHNC.js → chunk-A47HVBC5.js} +7 -7
  17. package/Build/Workers/{chunk-FSDVXW7M.js → chunk-AF3MU2RL.js} +5 -5
  18. package/Build/Workers/{chunk-3B65YFXC.js → chunk-AJLTU6PF.js} +1 -1
  19. package/Build/Workers/{chunk-OQ3EAJNW.js → chunk-AMIHNSST.js} +2 -2
  20. package/Build/Workers/{chunk-N4AWE7TZ.js → chunk-B6SCUUFP.js} +10 -10
  21. package/Build/Workers/{chunk-OMXN7YF4.js → chunk-BJD6QGXZ.js} +12 -12
  22. package/Build/Workers/{chunk-APDKMX7W.js → chunk-C6P4IG5P.js} +6 -6
  23. package/Build/Workers/{chunk-QA24Q62E.js → chunk-D4EJ2NXG.js} +17 -17
  24. package/Build/Workers/{chunk-HYLEKKO5.js → chunk-DHKPFLSJ.js} +1 -1
  25. package/Build/Workers/{chunk-MQJG522T.js → chunk-DVB56LG7.js} +6 -6
  26. package/Build/Workers/{chunk-Y5AJSEEN.js → chunk-EDXL4W76.js} +2 -2
  27. package/Build/Workers/{chunk-QQX7S5QT.js → chunk-EV3VGO6Y.js} +17 -17
  28. package/Build/Workers/{chunk-IFA7VHHP.js → chunk-GOQBUCXH.js} +10 -10
  29. package/Build/Workers/{chunk-5A7YSAXT.js → chunk-GQUNK2XC.js} +14 -14
  30. package/Build/Workers/{chunk-36LBFITA.js → chunk-HKUES6UG.js} +12 -12
  31. package/Build/Workers/{chunk-OC6X22PG.js → chunk-HRHRYFHS.js} +9 -9
  32. package/Build/Workers/{chunk-L7RDJ4V7.js → chunk-HXJMS2ZI.js} +1 -1
  33. package/Build/Workers/{chunk-NAYRNPEP.js → chunk-ILMFADZA.js} +4 -4
  34. package/Build/Workers/{chunk-AA33B6PU.js → chunk-ISY4EZCA.js} +4 -4
  35. package/Build/Workers/{chunk-7KRN6JPQ.js → chunk-J6AW5YHS.js} +14 -14
  36. package/Build/Workers/{chunk-OQBPOKPZ.js → chunk-JCI63T3K.js} +6 -6
  37. package/Build/Workers/{chunk-2WI4HGJU.js → chunk-KLPGTXS3.js} +6 -6
  38. package/Build/Workers/{chunk-5R7SBUTW.js → chunk-LIB2H534.js} +10 -10
  39. package/Build/Workers/{chunk-IYVDOB5V.js → chunk-LXMCPFFS.js} +4 -4
  40. package/Build/Workers/{chunk-NUYLNQKV.js → chunk-MKM27KGV.js} +2 -2
  41. package/Build/Workers/{chunk-R7M4XNPP.js → chunk-N65BAKSH.js} +8 -8
  42. package/Build/Workers/{chunk-4LGFX2P5.js → chunk-NKT5K3K3.js} +11 -11
  43. package/Build/Workers/{chunk-NNHU33JK.js → chunk-NPF7SSHZ.js} +7 -7
  44. package/Build/Workers/{chunk-LDQWNMEC.js → chunk-PVV64VFW.js} +1 -1
  45. package/Build/Workers/{chunk-WKXDCVBO.js → chunk-Q3C6VQH6.js} +4 -4
  46. package/Build/Workers/{chunk-ARCFIOKA.js → chunk-RQNJD3O4.js} +12 -12
  47. package/Build/Workers/{chunk-G3YT7M7A.js → chunk-UIGVOKKI.js} +1 -1
  48. package/Build/Workers/{chunk-ZIW5FCIW.js → chunk-UQU4RXLT.js} +27 -19
  49. package/Build/Workers/{chunk-MT5M7RLZ.js → chunk-VLDEUTOP.js} +2 -2
  50. package/Build/Workers/{chunk-5JP5FG7U.js → chunk-VMVOUQ5J.js} +7 -7
  51. package/Build/Workers/{chunk-2GL2EUEE.js → chunk-XJRBB253.js} +11 -11
  52. package/Build/Workers/{chunk-ESD4IEOU.js → chunk-XY6HMDGI.js} +5 -5
  53. package/Build/Workers/{chunk-56OHFSLH.js → chunk-Y7HNNPNK.js} +10 -10
  54. package/Build/Workers/{chunk-6FVFM2KB.js → chunk-YAOZMOFL.js} +5 -5
  55. package/Build/Workers/{chunk-AP6XWET5.js → chunk-YJZGW74L.js} +8 -8
  56. package/Build/Workers/{chunk-KPYU6YZG.js → chunk-YQFTYQMZ.js} +1 -1
  57. package/Build/Workers/{chunk-5VKZVPO5.js → chunk-ZBZRTRJB.js} +10 -10
  58. package/Build/Workers/combineGeometry.js +24 -24
  59. package/Build/Workers/createBoxGeometry.js +18 -18
  60. package/Build/Workers/createBoxOutlineGeometry.js +16 -16
  61. package/Build/Workers/createCircleGeometry.js +26 -26
  62. package/Build/Workers/createCircleOutlineGeometry.js +19 -19
  63. package/Build/Workers/createCoplanarPolygonGeometry.js +33 -33
  64. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +31 -31
  65. package/Build/Workers/createCorridorGeometry.js +29 -29
  66. package/Build/Workers/createCorridorOutlineGeometry.js +28 -28
  67. package/Build/Workers/createCylinderGeometry.js +20 -20
  68. package/Build/Workers/createCylinderOutlineGeometry.js +18 -18
  69. package/Build/Workers/createEllipseGeometry.js +26 -26
  70. package/Build/Workers/createEllipseOutlineGeometry.js +19 -19
  71. package/Build/Workers/createEllipsoidGeometry.js +19 -19
  72. package/Build/Workers/createEllipsoidOutlineGeometry.js +18 -18
  73. package/Build/Workers/createFrustumGeometry.js +18 -18
  74. package/Build/Workers/createFrustumOutlineGeometry.js +18 -18
  75. package/Build/Workers/createGeometry.js +24 -24
  76. package/Build/Workers/createGroundPolylineGeometry.js +22 -22
  77. package/Build/Workers/createPlaneGeometry.js +16 -16
  78. package/Build/Workers/createPlaneOutlineGeometry.js +15 -15
  79. package/Build/Workers/createPolygonGeometry.js +32 -32
  80. package/Build/Workers/createPolygonOutlineGeometry.js +30 -30
  81. package/Build/Workers/createPolylineGeometry.js +25 -25
  82. package/Build/Workers/createPolylineVolumeGeometry.js +31 -31
  83. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +27 -27
  84. package/Build/Workers/createRectangleGeometry.js +27 -27
  85. package/Build/Workers/createRectangleOutlineGeometry.js +20 -20
  86. package/Build/Workers/createSimplePolylineGeometry.js +23 -23
  87. package/Build/Workers/createSphereGeometry.js +19 -19
  88. package/Build/Workers/createSphereOutlineGeometry.js +18 -18
  89. package/Build/Workers/createTaskProcessorWorker.js +3 -3
  90. package/Build/Workers/createVectorTileClampedPolylines.js +14 -14
  91. package/Build/Workers/createVectorTileGeometries.js +24 -24
  92. package/Build/Workers/createVectorTilePoints.js +13 -13
  93. package/Build/Workers/createVectorTilePolygons.js +22 -22
  94. package/Build/Workers/createVectorTilePolylines.js +14 -14
  95. package/Build/Workers/createVerticesFromCesium3DTilesTerrain.js +25 -25
  96. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +22 -22
  97. package/Build/Workers/createVerticesFromHeightmap.js +22 -22
  98. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +20 -20
  99. package/Build/Workers/createWallGeometry.js +25 -25
  100. package/Build/Workers/createWallOutlineGeometry.js +24 -24
  101. package/Build/Workers/decodeDraco.js +10 -10
  102. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
  103. package/Build/Workers/decodeI3S.js +12 -12
  104. package/Build/Workers/gaussianSplatSorter.js +4 -4
  105. package/Build/Workers/gaussianSplatTextureGenerator.js +4 -4
  106. package/Build/Workers/incrementallyBuildTerrainPicker.js +10 -10
  107. package/Build/Workers/transcodeKTX2.js +6 -6
  108. package/Build/Workers/transferTypedArrayTest.js +1 -1
  109. package/Build/Workers/upsampleQuantizedTerrainMesh.js +22 -22
  110. package/Build/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +25 -25
  111. package/Source/Core/BoundingSphere.js +1 -1
  112. package/Source/Core/Cartesian2.js +7 -5
  113. package/Source/Core/Cartesian3.js +8 -6
  114. package/Source/Core/Cartesian4.js +8 -6
  115. package/Source/Core/Color.js +5 -3
  116. package/Source/Core/DeveloperError.js +2 -1
  117. package/Source/Core/ITwinPlatform.js +1 -0
  118. package/Source/Core/Ion.js +1 -1
  119. package/Source/Core/S2Cell.js +2 -2
  120. package/Source/Core/TerrainMesh.js +10 -1
  121. package/Source/Core/TerrainPicker.js +1 -0
  122. package/Source/Core/WallGeometry.js +1 -1
  123. package/Source/Core/WallOutlineGeometry.js +1 -1
  124. package/Source/Core/assert.js +27 -0
  125. package/Source/Core/globalTypes.js +4 -0
  126. package/Source/DataSources/CzmlDataSource.js +9 -0
  127. package/Source/DataSources/PathGraphics.js +13 -0
  128. package/Source/DataSources/PathVisualizer.js +330 -18
  129. package/Source/DataSources/StaticGeometryColorBatch.js +7 -2
  130. package/Source/DataSources/StaticGeometryPerMaterialBatch.js +7 -2
  131. package/Source/DataSources/StaticGroundGeometryPerMaterialBatch.js +3 -1
  132. package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +3 -1
  133. package/Source/Renderer/Context.js +1 -1
  134. package/Source/Renderer/RenderState.js +2 -2
  135. package/Source/Renderer/VertexArray.js +80 -0
  136. package/Source/Scene/ArcGisMapService.js +1 -1
  137. package/Source/Scene/BillboardCollection.js +65 -364
  138. package/Source/Scene/BufferPoint.js +148 -0
  139. package/Source/Scene/BufferPointCollection.js +135 -0
  140. package/Source/Scene/BufferPointMaterial.js +95 -0
  141. package/Source/Scene/BufferPolygon.js +516 -0
  142. package/Source/Scene/BufferPolygonCollection.js +368 -0
  143. package/Source/Scene/BufferPolygonMaterial.js +41 -0
  144. package/Source/Scene/BufferPolyline.js +185 -0
  145. package/Source/Scene/BufferPolylineCollection.js +136 -0
  146. package/Source/Scene/BufferPolylineMaterial.js +93 -0
  147. package/Source/Scene/BufferPrimitive.js +347 -0
  148. package/Source/Scene/BufferPrimitiveCollection.js +702 -0
  149. package/Source/Scene/BufferPrimitiveMaterial.js +140 -0
  150. package/Source/Scene/Cesium3DTileContent.js +5 -1
  151. package/Source/Scene/Cesium3DTileContentFactory.js +9 -0
  152. package/Source/Scene/Cesium3DTileStyle.js +22 -0
  153. package/Source/Scene/Cesium3DTileset.js +1 -0
  154. package/Source/Scene/ClippingPolygonCollection.js +270 -101
  155. package/Source/Scene/CubeMapPanorama.js +4 -4
  156. package/Source/Scene/GaussianSplat3DTileContent.js +40 -46
  157. package/Source/Scene/GaussianSplatPrimitive.js +413 -70
  158. package/Source/Scene/GetFeatureInfoFormat.js +3 -3
  159. package/Source/Scene/GltfLoader.js +227 -34
  160. package/Source/Scene/GltfSpzLoader.js +109 -0
  161. package/Source/Scene/ITwinData.js +1 -0
  162. package/Source/Scene/Label.js +32 -0
  163. package/Source/Scene/LabelCollection.js +14 -13
  164. package/Source/Scene/Material.js +2 -0
  165. package/Source/Scene/Megatexture.js +1 -0
  166. package/Source/Scene/MetadataClassProperty.js +24 -10
  167. package/Source/Scene/MetadataComponentType.js +115 -23
  168. package/Source/Scene/Model/CustomShaderPipelineStage.js +3 -1
  169. package/Source/Scene/Model/EdgeVisibilityPipelineStage.js +761 -263
  170. package/Source/Scene/Model/MaterialPipelineStage.js +147 -0
  171. package/Source/Scene/Model/MetadataPipelineStage.js +3 -3
  172. package/Source/Scene/Model/ModelDrawCommand.js +6 -0
  173. package/Source/Scene/Model/ModelReader.js +1 -1
  174. package/Source/Scene/Model/ModelUtility.js +3 -1
  175. package/Source/Scene/Model/createVectorTileBuffersFromModelComponents.js +330 -0
  176. package/Source/Scene/ModelComponents.js +1632 -1542
  177. package/Source/Scene/PickedMetadataInfo.js +1 -0
  178. package/Source/Scene/ScreenSpaceCameraController.js +13 -0
  179. package/Source/Scene/SkyBox.js +17 -8
  180. package/Source/Scene/TileBoundingRegion.js +1 -1
  181. package/Source/Scene/TileBoundingS2Cell.js +1 -1
  182. package/Source/Scene/TileBoundingSphere.js +1 -1
  183. package/Source/Scene/TweenCollection.js +7 -0
  184. package/Source/Scene/VectorGltf3DTileContent.js +382 -0
  185. package/Source/Scene/VertexAttributeSemantic.js +14 -0
  186. package/Source/Scene/WebMapServiceImageryProvider.js +2 -2
  187. package/Source/Scene/WebMapTileServiceImageryProvider.js +366 -131
  188. package/Source/Scene/parseStructuralMetadata.js +97 -37
  189. package/Source/Scene/renderBufferPointCollection.js +334 -0
  190. package/Source/Scene/renderBufferPolygonCollection.js +386 -0
  191. package/Source/Scene/renderBufferPolylineCollection.js +529 -0
  192. package/Source/Shaders/BillboardCollectionFS.glsl +2 -77
  193. package/Source/Shaders/BillboardCollectionFS.js +2 -77
  194. package/Source/Shaders/BillboardCollectionVS.glsl +2 -60
  195. package/Source/Shaders/BillboardCollectionVS.js +2 -60
  196. package/Source/Shaders/BufferPointMaterialFS.glsl +27 -0
  197. package/Source/Shaders/BufferPointMaterialFS.js +29 -0
  198. package/Source/Shaders/BufferPointMaterialVS.glsl +48 -0
  199. package/Source/Shaders/BufferPointMaterialVS.js +50 -0
  200. package/Source/Shaders/BufferPolygonMaterialFS.glsl +13 -0
  201. package/Source/Shaders/BufferPolygonMaterialFS.js +15 -0
  202. package/Source/Shaders/BufferPolygonMaterialVS.glsl +30 -0
  203. package/Source/Shaders/BufferPolygonMaterialVS.js +32 -0
  204. package/Source/Shaders/BufferPolylineMaterialFS.glsl +13 -0
  205. package/Source/Shaders/BufferPolylineMaterialFS.js +15 -0
  206. package/Source/Shaders/BufferPolylineMaterialVS.glsl +49 -0
  207. package/Source/Shaders/BufferPolylineMaterialVS.js +51 -0
  208. package/Source/Shaders/Model/EdgeVisibilityStageFS.glsl +34 -48
  209. package/Source/Shaders/Model/EdgeVisibilityStageFS.js +34 -49
  210. package/Source/Shaders/Model/EdgeVisibilityStageVS.glsl +98 -0
  211. package/Source/Shaders/Model/EdgeVisibilityStageVS.js +100 -0
  212. package/Source/Shaders/Model/ModelFS.glsl +15 -0
  213. package/Source/Shaders/Model/ModelFS.js +15 -0
  214. package/Source/Shaders/Model/ModelVS.glsl +8 -0
  215. package/Source/Shaders/Model/ModelVS.js +8 -0
  216. package/Source/Shaders/PolygonSignedDistanceFS.glsl +64 -33
  217. package/Source/Shaders/PolygonSignedDistanceFS.js +64 -33
  218. package/Source/Shaders/PrimitiveGaussianSplatVS.glsl +9 -2
  219. package/Source/Shaders/PrimitiveGaussianSplatVS.js +9 -2
  220. package/Source/Shaders/Voxels/VoxelFS.glsl +1 -1
  221. package/Source/Shaders/Voxels/VoxelFS.js +1 -1
  222. package/Source/Workers/decodeDraco.js +3 -0
  223. package/Source/Workers/decodeI3S.js +5 -2
  224. package/index.d.ts +1007 -111
  225. package/index.js +368 -343
  226. 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 FS_THREE_POINT_DEPTH_CHECK\n\
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) { \n\
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
- #if defined(VS_THREE_POINT_DEPTH_CHECK) || defined(FS_THREE_POINT_DEPTH_CHECK)
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
- #if defined(VS_THREE_POINT_DEPTH_CHECK) || defined(FS_THREE_POINT_DEPTH_CHECK)
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
- #if defined(VS_THREE_POINT_DEPTH_CHECK) || defined(FS_THREE_POINT_DEPTH_CHECK)\n\
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
- #if defined(VS_THREE_POINT_DEPTH_CHECK) || defined(FS_THREE_POINT_DEPTH_CHECK)\n\
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,13 @@
1
+ in vec4 v_pickColor;
2
+ in vec4 v_color;
3
+
4
+ void main()
5
+ {
6
+ if (v_color.a < 0.005) // matches 0/255 and 1/255
7
+ {
8
+ discard;
9
+ }
10
+
11
+ out_FragColor = czm_gammaCorrect(v_color);
12
+ czm_writeLogDepth();
13
+ }
@@ -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,13 @@
1
+ in vec4 v_pickColor;
2
+ in vec4 v_color;
3
+
4
+ void main()
5
+ {
6
+ if (v_color.a < 0.005) // matches 0/255 and 1/255
7
+ {
8
+ discard;
9
+ }
10
+
11
+ out_FragColor = czm_gammaCorrect(v_color);
12
+ czm_writeLogDepth();
13
+ }
@@ -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
+ ";