@cesium/engine 18.0.0 → 18.0.1-splats.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 (146) hide show
  1. package/Build/Workers/{chunk-WTFZHPUW.js → chunk-2AXKROJA.js} +5 -5
  2. package/Build/Workers/{chunk-UK33ZN4K.js → chunk-2J5ZZ7CY.js} +4 -4
  3. package/Build/Workers/{chunk-2AXPWBJG.js → chunk-2SYY3UBI.js} +1 -1
  4. package/Build/Workers/{chunk-ZIP27IX6.js → chunk-2WKW3BEB.js} +6 -6
  5. package/Build/Workers/{chunk-LIPZUYNR.js → chunk-2ZO6BCHN.js} +11 -11
  6. package/Build/Workers/{chunk-KGXTCGX3.js → chunk-3UKG5X7F.js} +12 -12
  7. package/Build/Workers/{chunk-IWGMVQGG.js → chunk-4GYIDPXP.js} +9 -9
  8. package/Build/Workers/{chunk-NR7KSD56.js → chunk-6EP7ED36.js} +3 -3
  9. package/Build/Workers/{chunk-J4MAVE6J.js → chunk-6QOBORNG.js} +6 -6
  10. package/Build/Workers/{chunk-GM55YFOB.js → chunk-6WWHK2ER.js} +14 -14
  11. package/Build/Workers/{chunk-JF4IYQYC.js → chunk-6Y6TVYHS.js} +7 -7
  12. package/Build/Workers/{chunk-4MIY63FM.js → chunk-744VWE2U.js} +13 -13
  13. package/Build/Workers/{chunk-ZADJ6FRX.js → chunk-7PQ52XCW.js} +4 -4
  14. package/Build/Workers/{chunk-2NKHPWDY.js → chunk-A5UFJW2M.js} +12 -12
  15. package/Build/Workers/{chunk-2CAYUY2B.js → chunk-AQKVFTWV.js} +8 -8
  16. package/Build/Workers/{chunk-F4ZAKN4V.js → chunk-BKTEHJFD.js} +2 -2
  17. package/Build/Workers/{chunk-GAUF4F5A.js → chunk-CQXYKPAW.js} +16 -16
  18. package/Build/Workers/{chunk-QN7JEOQV.js → chunk-DI7PHKC6.js} +5 -5
  19. package/Build/Workers/{chunk-NWSAYFZG.js → chunk-DKKIQS6F.js} +6 -6
  20. package/Build/Workers/{chunk-4DSTDGY3.js → chunk-DTVWE5YL.js} +2 -2
  21. package/Build/Workers/{chunk-EXEZHW3P.js → chunk-ERPS2WZC.js} +4 -4
  22. package/Build/Workers/chunk-EYMZ5FSQ.js +280 -0
  23. package/Build/Workers/{chunk-HQE7KSR4.js → chunk-F43TQW5B.js} +2 -2
  24. package/Build/Workers/{chunk-W6CPO62M.js → chunk-FOMRN6II.js} +6 -6
  25. package/Build/Workers/{chunk-VGJSKEIB.js → chunk-FOTXJYKS.js} +4 -4
  26. package/Build/Workers/{chunk-2QNKQVUT.js → chunk-G2Y7EA4W.js} +5 -5
  27. package/Build/Workers/{chunk-LZFUG3GO.js → chunk-GY4E4ZP6.js} +10 -10
  28. package/Build/Workers/{chunk-WYCR5DWQ.js → chunk-HDG3VHYL.js} +2 -2
  29. package/Build/Workers/{chunk-YV37YFUM.js → chunk-HOEUXPBL.js} +9 -9
  30. package/Build/Workers/{chunk-OATG6PKE.js → chunk-IWDYVJ56.js} +12 -12
  31. package/Build/Workers/{chunk-AEGAQ6FD.js → chunk-JA4KPQJL.js} +12 -12
  32. package/Build/Workers/{chunk-DINSLSJD.js → chunk-JZZQEZMA.js} +6 -6
  33. package/Build/Workers/{chunk-QUSP3NWA.js → chunk-KPLU3WDY.js} +5 -5
  34. package/Build/Workers/{chunk-5WVF4BK7.js → chunk-LHM6V4D6.js} +5 -5
  35. package/Build/Workers/{chunk-FPYBD2P5.js → chunk-LMTGCD6P.js} +1 -1
  36. package/Build/Workers/{chunk-5OL6XFNS.js → chunk-LWZOYSSF.js} +1 -1
  37. package/Build/Workers/{chunk-T6B6H3GR.js → chunk-M6U7SV4T.js} +7 -7
  38. package/Build/Workers/{chunk-NVJ5JRIM.js → chunk-O25M56DO.js} +2 -2
  39. package/Build/Workers/{chunk-OIHAAHBK.js → chunk-OE2WXO2Z.js} +10 -10
  40. package/Build/Workers/{chunk-LWJWWCZ4.js → chunk-PFD462OE.js} +6 -6
  41. package/Build/Workers/{chunk-WGHUCZMX.js → chunk-PPI33PXH.js} +7 -7
  42. package/Build/Workers/{chunk-CES6DHHV.js → chunk-PRQQHLUB.js} +1 -1
  43. package/Build/Workers/{chunk-HS76VTVY.js → chunk-RTUZ7MJB.js} +2 -2
  44. package/Build/Workers/{chunk-EHB2OCQX.js → chunk-S6QBTP5U.js} +4 -4
  45. package/Build/Workers/{chunk-IWZK2AIH.js → chunk-SMFCIGM3.js} +5 -5
  46. package/Build/Workers/{chunk-MFGVMUN3.js → chunk-TC3LEKFJ.js} +5 -5
  47. package/Build/Workers/{chunk-I3BAKR4S.js → chunk-UTLYCPFY.js} +16 -16
  48. package/Build/Workers/{chunk-GS55WTRX.js → chunk-V7LEBY53.js} +6 -6
  49. package/Build/Workers/{chunk-RWFYLWSF.js → chunk-VE3UKRDB.js} +9 -9
  50. package/Build/Workers/{chunk-3RKVDGRF.js → chunk-W3FBD4FE.js} +8 -8
  51. package/Build/Workers/{chunk-KNA65INJ.js → chunk-YRR6CJGG.js} +4 -4
  52. package/Build/Workers/{chunk-SIOVJ4L5.js → chunk-ZVTKMLU6.js} +4 -4
  53. package/Build/Workers/combineGeometry.js +21 -21
  54. package/Build/Workers/createBoxGeometry.js +15 -15
  55. package/Build/Workers/createBoxOutlineGeometry.js +13 -13
  56. package/Build/Workers/createCircleGeometry.js +23 -23
  57. package/Build/Workers/createCircleOutlineGeometry.js +16 -16
  58. package/Build/Workers/createCoplanarPolygonGeometry.js +30 -30
  59. package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +28 -28
  60. package/Build/Workers/createCorridorGeometry.js +26 -26
  61. package/Build/Workers/createCorridorOutlineGeometry.js +25 -25
  62. package/Build/Workers/createCylinderGeometry.js +17 -17
  63. package/Build/Workers/createCylinderOutlineGeometry.js +15 -15
  64. package/Build/Workers/createEllipseGeometry.js +23 -23
  65. package/Build/Workers/createEllipseOutlineGeometry.js +16 -16
  66. package/Build/Workers/createEllipsoidGeometry.js +16 -16
  67. package/Build/Workers/createEllipsoidOutlineGeometry.js +15 -15
  68. package/Build/Workers/createFrustumGeometry.js +15 -15
  69. package/Build/Workers/createFrustumOutlineGeometry.js +15 -15
  70. package/Build/Workers/createGeometry.js +23 -21
  71. package/Build/Workers/createGroundPolylineGeometry.js +19 -19
  72. package/Build/Workers/createPlaneGeometry.js +13 -13
  73. package/Build/Workers/createPlaneOutlineGeometry.js +12 -12
  74. package/Build/Workers/createPolygonGeometry.js +29 -29
  75. package/Build/Workers/createPolygonOutlineGeometry.js +27 -27
  76. package/Build/Workers/createPolylineGeometry.js +22 -22
  77. package/Build/Workers/createPolylineVolumeGeometry.js +28 -28
  78. package/Build/Workers/createPolylineVolumeOutlineGeometry.js +24 -24
  79. package/Build/Workers/createRectangleGeometry.js +24 -24
  80. package/Build/Workers/createRectangleOutlineGeometry.js +17 -17
  81. package/Build/Workers/createSimplePolylineGeometry.js +20 -20
  82. package/Build/Workers/createSphereGeometry.js +16 -16
  83. package/Build/Workers/createSphereOutlineGeometry.js +15 -15
  84. package/Build/Workers/createTaskProcessorWorker.js +3 -3
  85. package/Build/Workers/createVectorTileClampedPolylines.js +12 -12
  86. package/Build/Workers/createVectorTileGeometries.js +21 -21
  87. package/Build/Workers/createVectorTilePoints.js +11 -11
  88. package/Build/Workers/createVectorTilePolygons.js +19 -19
  89. package/Build/Workers/createVectorTilePolylines.js +12 -12
  90. package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +19 -19
  91. package/Build/Workers/createVerticesFromHeightmap.js +19 -19
  92. package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +16 -16
  93. package/Build/Workers/createWallGeometry.js +21 -21
  94. package/Build/Workers/createWallOutlineGeometry.js +20 -20
  95. package/Build/Workers/decodeDraco.js +10 -10
  96. package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
  97. package/Build/Workers/decodeI3S.js +9 -9
  98. package/Build/Workers/gaussianSplatSorter.js +62 -0
  99. package/Build/Workers/gaussianSplatTextureGenerator.js +68 -0
  100. package/Build/Workers/transcodeKTX2.js +59 -7
  101. package/Build/Workers/transferTypedArrayTest.js +1 -1
  102. package/Build/Workers/upsampleQuantizedTerrainMesh.js +19 -19
  103. package/Source/Core/PixelFormat.js +62 -0
  104. package/Source/Renderer/Context.js +2 -0
  105. package/Source/Renderer/Pass.js +3 -2
  106. package/Source/Renderer/Texture.js +1 -0
  107. package/Source/Renderer/VertexArray.js +33 -8
  108. package/Source/Renderer/createUniform.js +2 -0
  109. package/Source/Scene/Cesium3DTileContentFactory.js +23 -0
  110. package/Source/Scene/Cesium3DTileset.js +59 -2
  111. package/Source/Scene/GaussianSplat3DTileContent.js +504 -0
  112. package/Source/Scene/GaussianSplatPrimitive.js +932 -0
  113. package/Source/Scene/GaussianSplatRenderResources.js +81 -0
  114. package/Source/Scene/GaussianSplatSorter.js +73 -0
  115. package/Source/Scene/GaussianSplatTextureGenerator.js +64 -0
  116. package/Source/Scene/GltfLoader.js +82 -4
  117. package/Source/Scene/GltfSpzLoader.js +222 -0
  118. package/Source/Scene/GltfVertexBufferLoader.js +98 -3
  119. package/Source/Scene/Model/ModelRuntimePrimitive.js +1 -0
  120. package/Source/Scene/Model/ModelUtility.js +2 -0
  121. package/Source/Scene/PrimitiveLoadPlan.js +59 -0
  122. package/Source/Scene/ResourceCache.js +60 -3
  123. package/Source/Scene/ResourceCacheKey.js +39 -1
  124. package/Source/Scene/Scene.js +32 -1
  125. package/Source/Scene/VertexAttributeSemantic.js +30 -0
  126. package/Source/Shaders/Builtin/Constants/passGaussianSplats.glsl +9 -0
  127. package/Source/Shaders/Builtin/Constants/passGaussianSplats.js +11 -0
  128. package/Source/Shaders/Builtin/Constants/passOverlay.glsl +1 -1
  129. package/Source/Shaders/Builtin/Constants/passOverlay.js +1 -1
  130. package/Source/Shaders/Builtin/CzmBuiltins.js +2 -0
  131. package/Source/Shaders/Model/ModelFS.glsl +3 -1
  132. package/Source/Shaders/Model/ModelFS.js +3 -1
  133. package/Source/Shaders/Model/ModelVS.glsl +1 -1
  134. package/Source/Shaders/Model/ModelVS.js +1 -1
  135. package/Source/Shaders/Model/PointCloudStylingStageVS.glsl +1 -1
  136. package/Source/Shaders/Model/PointCloudStylingStageVS.js +2 -1
  137. package/Source/Shaders/PrimitiveGaussianSplatFS.glsl +18 -0
  138. package/Source/Shaders/PrimitiveGaussianSplatFS.js +20 -0
  139. package/Source/Shaders/PrimitiveGaussianSplatVS.glsl +108 -0
  140. package/Source/Shaders/PrimitiveGaussianSplatVS.js +109 -0
  141. package/Source/ThirdParty/wasm_splats_bg.wasm +0 -0
  142. package/Source/Workers/gaussianSplatSorter.js +34 -0
  143. package/Source/Workers/gaussianSplatTextureGenerator.js +39 -0
  144. package/index.d.ts +16 -0
  145. package/index.js +70 -61
  146. package/package.json +4 -2
@@ -145,7 +145,7 @@ void main()
145
145
  #else
146
146
  gl_PointSize = 1.0;
147
147
  #endif
148
-
148
+
149
149
  gl_PointSize *= show;
150
150
  #endif
151
151
 
@@ -146,7 +146,7 @@ void main()\n\
146
146
  #else\n\
147
147
  gl_PointSize = 1.0;\n\
148
148
  #endif\n\
149
- \n\
149
+ \n\
150
150
  gl_PointSize *= show;\n\
151
151
  #endif\n\
152
152
  \n\
@@ -42,4 +42,4 @@ float pointCloudBackFaceCullingStage() {
42
42
  return 1.0;
43
43
  #endif
44
44
  }
45
- #endif
45
+ #endif
@@ -43,4 +43,5 @@ float pointCloudBackFaceCullingStage() {\n\
43
43
  return 1.0;\n\
44
44
  #endif\n\
45
45
  }\n\
46
- #endif";
46
+ #endif\n\
47
+ ";
@@ -0,0 +1,18 @@
1
+ //
2
+ // Fragment shader for Gaussian splats.
3
+ // Renders a Gaussian splat within a quad, discarding fragments outside the unit circle.
4
+ // Applies an approximate Gaussian falloff based on distance from the center and outputs
5
+ // a color modulated by the alpha and Gaussian weight.
6
+ //
7
+ void main() {
8
+ if (v_splitDirection < 0.0 && gl_FragCoord.x > czm_splitPosition) discard;
9
+ if (v_splitDirection > 0.0 && gl_FragCoord.x < czm_splitPosition) discard;
10
+
11
+ mediump float A = dot(v_vertPos, v_vertPos);
12
+ if(A > 1.0) {
13
+ discard;
14
+ }
15
+ mediump float scale = 4.0;
16
+ mediump float B = exp(-A * scale) * (v_splatColor.a);
17
+ out_FragColor = vec4(v_splatColor.rgb * B, B);
18
+ }
@@ -0,0 +1,20 @@
1
+ //This file is automatically rebuilt by the Cesium build process.
2
+ export default "//\n\
3
+ // Fragment shader for Gaussian splats.\n\
4
+ // Renders a Gaussian splat within a quad, discarding fragments outside the unit circle.\n\
5
+ // Applies an approximate Gaussian falloff based on distance from the center and outputs\n\
6
+ // a color modulated by the alpha and Gaussian weight.\n\
7
+ //\n\
8
+ void main() {\n\
9
+ if (v_splitDirection < 0.0 && gl_FragCoord.x > czm_splitPosition) discard;\n\
10
+ if (v_splitDirection > 0.0 && gl_FragCoord.x < czm_splitPosition) discard;\n\
11
+ \n\
12
+ mediump float A = dot(v_vertPos, v_vertPos);\n\
13
+ if(A > 1.0) {\n\
14
+ discard;\n\
15
+ }\n\
16
+ mediump float scale = 4.0;\n\
17
+ mediump float B = exp(-A * scale) * (v_splatColor.a);\n\
18
+ out_FragColor = vec4(v_splatColor.rgb * B, B);\n\
19
+ }\n\
20
+ ";
@@ -0,0 +1,108 @@
1
+ //
2
+ // Vertex shader for Gaussian splats.
3
+
4
+ // The splats are rendered as quads in view space. Splat attributes are loaded from a texture with precomputed 3D covariance.
5
+
6
+ // Passes local quad coordinates and color to the fragment shader for Gaussian evaluation.
7
+ //
8
+ // Discards splats outside the view frustum or with negligible screen size.
9
+ //
10
+
11
+ // Transforms and projects splat covariance into screen space and extracts the major and minor axes of the Gaussian ellipsoid
12
+ // which is used to calculate the vertex position in clip space.
13
+ vec4 calcCovVectors(vec3 viewPos, mat3 Vrk) {
14
+ vec4 t = vec4(viewPos, 1.0);
15
+ float focal = czm_viewport.z * czm_projection[0][0];
16
+
17
+ float J1 = focal / t.z;
18
+ vec2 J2 = -J1 / t.z * t.xy;
19
+ mat3 J = mat3(
20
+ J1, 0.0, J2.x,
21
+ 0.0, J1, J2.y,
22
+ 0.0, 0.0, 0.0
23
+ );
24
+
25
+ //We need to take our view and remove the scale component
26
+ //quantized models can have a scaled matrix which will throw our splat size off
27
+ mat3 R = mat3(czm_modelView);
28
+ vec3 scale;
29
+ scale.x = length(R[0].xyz);
30
+ scale.y = length(R[1].xyz);
31
+ scale.z = length(R[2].xyz);
32
+
33
+ mat3 Rs = mat3(
34
+ R[0].xyz / scale.x,
35
+ R[1].xyz / scale.y,
36
+ R[2].xyz / scale.z
37
+ );
38
+
39
+ //transform our covariance into view space
40
+ //ensures orientation is correct
41
+ mat3 Vrk_view = Rs * Vrk * transpose(Rs);
42
+
43
+ mat3 cov = transpose(J) * Vrk_view * J;
44
+
45
+ float diagonal1 = cov[0][0] + .3;
46
+ float offDiagonal = cov[0][1];
47
+ float diagonal2 = cov[1][1] + .3;
48
+
49
+ float mid = 0.5 * (diagonal1 + diagonal2);
50
+ float radius = length(vec2((diagonal1 - diagonal2) * 0.5, offDiagonal));
51
+ float lambda1 = mid + radius;
52
+ float lambda2 = max(mid - radius, 0.1);
53
+
54
+ vec2 diagonalVector = normalize(vec2(offDiagonal, lambda1 - diagonal1));
55
+
56
+ return vec4(
57
+ min(sqrt(2.0 * lambda1), 1024.0) * diagonalVector,
58
+ min(sqrt(2.0 * lambda2), 1024.0) * vec2(diagonalVector.y, -diagonalVector.x)
59
+ );
60
+ }
61
+
62
+ highp vec4 discardVec = vec4(0.0, 0.0, 2.0, 1.0);
63
+
64
+ void main() {
65
+ uint texIdx = uint(a_splatIndex);
66
+ ivec2 posCoord = ivec2((texIdx & 0x3ffu) << 1, texIdx >> 10);
67
+ vec4 splatPosition = vec4( uintBitsToFloat(uvec4(texelFetch(u_splatAttributeTexture, posCoord, 0))) );
68
+
69
+ vec4 splatViewPos = czm_modelView * vec4(splatPosition.xyz, 1.0);
70
+ vec4 clipPosition = czm_projection * splatViewPos;
71
+
72
+ float clip = 1.2 * clipPosition.w;
73
+ if (clipPosition.z < -clip || clipPosition.x < -clip || clipPosition.x > clip ||
74
+ clipPosition.y < -clip || clipPosition.y > clip) {
75
+ gl_Position = vec4(0.0, 0.0, 2.0, 1.0);
76
+ return;
77
+ }
78
+
79
+ ivec2 covCoord = ivec2(((texIdx & 0x3ffu) << 1) | 1u, texIdx >> 10);
80
+ uvec4 covariance = uvec4(texelFetch(u_splatAttributeTexture, covCoord, 0));
81
+
82
+ gl_Position = clipPosition;
83
+
84
+ vec2 u1 = unpackHalf2x16(covariance.x) ;
85
+ vec2 u2 = unpackHalf2x16(covariance.y);
86
+ vec2 u3 = unpackHalf2x16(covariance.z);
87
+ mat3 Vrk = mat3(u1.x, u1.y, u2.x, u1.y, u2.y, u3.x, u2.x, u3.x, u3.y);
88
+
89
+ //we can still apply scale here even though cov3d is pre-computed
90
+ Vrk *= u_splatScale;
91
+
92
+ vec4 covVectors = calcCovVectors(splatViewPos.xyz, Vrk);
93
+
94
+ if (dot(covVectors.xy, covVectors.xy) < 4.0 && dot(covVectors.zw, covVectors.zw) < 4.0) {
95
+ gl_Position = discardVec;
96
+ return;
97
+ }
98
+
99
+ vec2 corner = vec2((gl_VertexID << 1) & 2, gl_VertexID & 2) - 1.;
100
+
101
+ gl_Position += vec4((corner.x * covVectors.xy + corner.y * covVectors.zw) / czm_viewport.zw * gl_Position.w, 0, 0);
102
+ gl_Position.z = clamp(gl_Position.z, -abs(gl_Position.w), abs(gl_Position.w));
103
+
104
+ v_vertPos = corner ;
105
+ v_splatColor = vec4(covariance.w & 0xffu, (covariance.w >> 8) & 0xffu, (covariance.w >> 16) & 0xffu, (covariance.w >> 24) & 0xffu) / 255.0;
106
+
107
+ v_splitDirection = u_splitDirection;
108
+ }
@@ -0,0 +1,109 @@
1
+ //This file is automatically rebuilt by the Cesium build process.
2
+ export default "//\n\
3
+ // Vertex shader for Gaussian splats.\n\
4
+ \n\
5
+ // The splats are rendered as quads in view space. Splat attributes are loaded from a texture with precomputed 3D covariance.\n\
6
+ \n\
7
+ // Passes local quad coordinates and color to the fragment shader for Gaussian evaluation. \n\
8
+ //\n\
9
+ // Discards splats outside the view frustum or with negligible screen size.\n\
10
+ //\n\
11
+ \n\
12
+ // Transforms and projects splat covariance into screen space and extracts the major and minor axes of the Gaussian ellipsoid\n\
13
+ // which is used to calculate the vertex position in clip space.\n\
14
+ vec4 calcCovVectors(vec3 viewPos, mat3 Vrk) {\n\
15
+ vec4 t = vec4(viewPos, 1.0);\n\
16
+ float focal = czm_viewport.z * czm_projection[0][0];\n\
17
+ \n\
18
+ float J1 = focal / t.z;\n\
19
+ vec2 J2 = -J1 / t.z * t.xy;\n\
20
+ mat3 J = mat3(\n\
21
+ J1, 0.0, J2.x,\n\
22
+ 0.0, J1, J2.y,\n\
23
+ 0.0, 0.0, 0.0\n\
24
+ );\n\
25
+ \n\
26
+ //We need to take our view and remove the scale component\n\
27
+ //quantized models can have a scaled matrix which will throw our splat size off\n\
28
+ mat3 R = mat3(czm_modelView);\n\
29
+ vec3 scale;\n\
30
+ scale.x = length(R[0].xyz);\n\
31
+ scale.y = length(R[1].xyz);\n\
32
+ scale.z = length(R[2].xyz);\n\
33
+ \n\
34
+ mat3 Rs = mat3(\n\
35
+ R[0].xyz / scale.x,\n\
36
+ R[1].xyz / scale.y,\n\
37
+ R[2].xyz / scale.z\n\
38
+ );\n\
39
+ \n\
40
+ //transform our covariance into view space\n\
41
+ //ensures orientation is correct\n\
42
+ mat3 Vrk_view = Rs * Vrk * transpose(Rs);\n\
43
+ \n\
44
+ mat3 cov = transpose(J) * Vrk_view * J;\n\
45
+ \n\
46
+ float diagonal1 = cov[0][0] + .3;\n\
47
+ float offDiagonal = cov[0][1];\n\
48
+ float diagonal2 = cov[1][1] + .3;\n\
49
+ \n\
50
+ float mid = 0.5 * (diagonal1 + diagonal2);\n\
51
+ float radius = length(vec2((diagonal1 - diagonal2) * 0.5, offDiagonal));\n\
52
+ float lambda1 = mid + radius;\n\
53
+ float lambda2 = max(mid - radius, 0.1);\n\
54
+ \n\
55
+ vec2 diagonalVector = normalize(vec2(offDiagonal, lambda1 - diagonal1));\n\
56
+ \n\
57
+ return vec4(\n\
58
+ min(sqrt(2.0 * lambda1), 1024.0) * diagonalVector,\n\
59
+ min(sqrt(2.0 * lambda2), 1024.0) * vec2(diagonalVector.y, -diagonalVector.x)\n\
60
+ );\n\
61
+ }\n\
62
+ \n\
63
+ highp vec4 discardVec = vec4(0.0, 0.0, 2.0, 1.0);\n\
64
+ \n\
65
+ void main() {\n\
66
+ uint texIdx = uint(a_splatIndex);\n\
67
+ ivec2 posCoord = ivec2((texIdx & 0x3ffu) << 1, texIdx >> 10);\n\
68
+ vec4 splatPosition = vec4( uintBitsToFloat(uvec4(texelFetch(u_splatAttributeTexture, posCoord, 0))) );\n\
69
+ \n\
70
+ vec4 splatViewPos = czm_modelView * vec4(splatPosition.xyz, 1.0);\n\
71
+ vec4 clipPosition = czm_projection * splatViewPos;\n\
72
+ \n\
73
+ float clip = 1.2 * clipPosition.w;\n\
74
+ if (clipPosition.z < -clip || clipPosition.x < -clip || clipPosition.x > clip ||\n\
75
+ clipPosition.y < -clip || clipPosition.y > clip) {\n\
76
+ gl_Position = vec4(0.0, 0.0, 2.0, 1.0);\n\
77
+ return;\n\
78
+ }\n\
79
+ \n\
80
+ ivec2 covCoord = ivec2(((texIdx & 0x3ffu) << 1) | 1u, texIdx >> 10);\n\
81
+ uvec4 covariance = uvec4(texelFetch(u_splatAttributeTexture, covCoord, 0));\n\
82
+ \n\
83
+ gl_Position = clipPosition;\n\
84
+ \n\
85
+ vec2 u1 = unpackHalf2x16(covariance.x) ;\n\
86
+ vec2 u2 = unpackHalf2x16(covariance.y);\n\
87
+ vec2 u3 = unpackHalf2x16(covariance.z);\n\
88
+ mat3 Vrk = mat3(u1.x, u1.y, u2.x, u1.y, u2.y, u3.x, u2.x, u3.x, u3.y);\n\
89
+ \n\
90
+ //we can still apply scale here even though cov3d is pre-computed\n\
91
+ Vrk *= u_splatScale;\n\
92
+ \n\
93
+ vec4 covVectors = calcCovVectors(splatViewPos.xyz, Vrk);\n\
94
+ \n\
95
+ if (dot(covVectors.xy, covVectors.xy) < 4.0 && dot(covVectors.zw, covVectors.zw) < 4.0) {\n\
96
+ gl_Position = discardVec;\n\
97
+ return;\n\
98
+ }\n\
99
+ \n\
100
+ vec2 corner = vec2((gl_VertexID << 1) & 2, gl_VertexID & 2) - 1.;\n\
101
+ \n\
102
+ gl_Position += vec4((corner.x * covVectors.xy + corner.y * covVectors.zw) / czm_viewport.zw * gl_Position.w, 0, 0);\n\
103
+ gl_Position.z = clamp(gl_Position.z, -abs(gl_Position.w), abs(gl_Position.w));\n\
104
+ \n\
105
+ v_vertPos = corner ;\n\
106
+ v_splatColor = vec4(covariance.w & 0xffu, (covariance.w >> 8) & 0xffu, (covariance.w >> 16) & 0xffu, (covariance.w >> 24) & 0xffu) / 255.0;\n\
107
+ \n\
108
+ v_splitDirection = u_splitDirection;\n\
109
+ }";
@@ -0,0 +1,34 @@
1
+ import createTaskProcessorWorker from "./createTaskProcessorWorker.js";
2
+ import defined from "../Core/defined.js";
3
+
4
+ import { initSync, radix_sort_gaussians_indexes } from "@cesium/wasm-splats";
5
+
6
+ //load built wasm modules for sorting. Ensure we can load webassembly and we support SIMD.
7
+ async function initWorker(parameters, transferableObjects) {
8
+ // Require and compile WebAssembly module, or use fallback if not supported
9
+ const wasmConfig = parameters.webAssemblyConfig;
10
+ if (defined(wasmConfig) && defined(wasmConfig.wasmBinary)) {
11
+ initSync({ module: wasmConfig.wasmBinary });
12
+ return true;
13
+ }
14
+ }
15
+
16
+ function generateGaussianSortWorker(parameters, transferableObjects) {
17
+ // Handle initialization
18
+ const wasmConfig = parameters.webAssemblyConfig;
19
+ if (defined(wasmConfig)) {
20
+ return initWorker(parameters, transferableObjects);
21
+ }
22
+
23
+ const { primitive, sortType } = parameters;
24
+
25
+ if (sortType === "Index") {
26
+ return radix_sort_gaussians_indexes(
27
+ primitive.positions,
28
+ primitive.modelView,
29
+ primitive.count,
30
+ );
31
+ }
32
+ }
33
+
34
+ export default createTaskProcessorWorker(generateGaussianSortWorker);
@@ -0,0 +1,39 @@
1
+ import createTaskProcessorWorker from "./createTaskProcessorWorker.js";
2
+ import defined from "../Core/defined.js";
3
+
4
+ import { initSync, generate_splat_texture } from "@cesium/wasm-splats";
5
+
6
+ //load built wasm modules for sorting. Ensure we can load webassembly and we support SIMD.
7
+ async function initWorker(parameters, transferableObjects) {
8
+ // Require and compile WebAssembly module, or use fallback if not supported
9
+ const wasmConfig = parameters.webAssemblyConfig;
10
+ if (defined(wasmConfig) && defined(wasmConfig.wasmBinary)) {
11
+ initSync({ module: wasmConfig.wasmBinary });
12
+ return true;
13
+ }
14
+ return false;
15
+ }
16
+
17
+ async function generateSplatTextureWorker(parameters, transferableObjects) {
18
+ const wasmConfig = parameters.webAssemblyConfig;
19
+ if (defined(wasmConfig)) {
20
+ return initWorker(parameters, transferableObjects);
21
+ }
22
+
23
+ const { attributes, count } = parameters;
24
+ const result = generate_splat_texture(
25
+ attributes.positions,
26
+ attributes.scales,
27
+ attributes.rotations,
28
+ attributes.colors,
29
+ count,
30
+ );
31
+
32
+ return {
33
+ data: result.data,
34
+ width: result.width,
35
+ height: result.height,
36
+ };
37
+ }
38
+
39
+ export default createTaskProcessorWorker(generateSplatTextureWorker);
package/index.d.ts CHANGED
@@ -12740,6 +12740,22 @@ export enum PixelFormat {
12740
12740
  * A pixel format containing red, green, blue, and alpha channels.
12741
12741
  */
12742
12742
  RGBA = WebGLConstants.RGBA,
12743
+ /**
12744
+ * A pixel format containing a red channel as an integer.
12745
+ */
12746
+ RED_INTEGER = WebGLConstants.RED_INTEGER,
12747
+ /**
12748
+ * A pixel format containing red and green channels as integers.
12749
+ */
12750
+ RG_INTEGER = WebGLConstants.RG_INTEGER,
12751
+ /**
12752
+ * A pixel format containing red, green, and blue channels as integers.
12753
+ */
12754
+ RGB_INTEGER = WebGLConstants.RGB_INTEGER,
12755
+ /**
12756
+ * A pixel format containing red, green, blue, and alpha channels as integers.
12757
+ */
12758
+ RGBA_INTEGER = WebGLConstants.RGBA_INTEGER,
12743
12759
  /**
12744
12760
  * A pixel format containing a luminance (intensity) channel.
12745
12761
  */
package/index.js CHANGED
@@ -1,4 +1,4 @@
1
- globalThis.CESIUM_VERSION = "1.130";
1
+ globalThis.CESIUM_VERSION = "1.130.1-splats";
2
2
  export { default as AutomaticUniforms } from './Source/Renderer/AutomaticUniforms.js';
3
3
  export { default as Buffer } from './Source/Renderer/Buffer.js';
4
4
  export { default as BufferUsage } from './Source/Renderer/BufferUsage.js';
@@ -152,6 +152,60 @@ export { default as exportKml } from './Source/DataSources/exportKml.js';
152
152
  export { default as getElement } from './Source/DataSources/getElement.js';
153
153
  export { default as heightReferenceOnEntityPropertyChanged } from './Source/DataSources/heightReferenceOnEntityPropertyChanged.js';
154
154
  export { default as CesiumWidget } from './Source/Widget/CesiumWidget.js';
155
+ export { default as _shadersAdjustTranslucentFS } from './Source/Shaders/AdjustTranslucentFS.js';
156
+ export { default as _shadersAtmosphereCommon } from './Source/Shaders/AtmosphereCommon.js';
157
+ export { default as _shadersBillboardCollectionFS } from './Source/Shaders/BillboardCollectionFS.js';
158
+ export { default as _shadersBillboardCollectionVS } from './Source/Shaders/BillboardCollectionVS.js';
159
+ export { default as _shadersBrdfLutGeneratorFS } from './Source/Shaders/BrdfLutGeneratorFS.js';
160
+ export { default as _shadersCloudCollectionFS } from './Source/Shaders/CloudCollectionFS.js';
161
+ export { default as _shadersCloudCollectionVS } from './Source/Shaders/CloudCollectionVS.js';
162
+ export { default as _shadersCloudNoiseFS } from './Source/Shaders/CloudNoiseFS.js';
163
+ export { default as _shadersCloudNoiseVS } from './Source/Shaders/CloudNoiseVS.js';
164
+ export { default as _shadersCompareAndPackTranslucentDepth } from './Source/Shaders/CompareAndPackTranslucentDepth.js';
165
+ export { default as _shadersCompositeOITFS } from './Source/Shaders/CompositeOITFS.js';
166
+ export { default as _shadersComputeIrradianceFS } from './Source/Shaders/ComputeIrradianceFS.js';
167
+ export { default as _shadersComputeRadianceMapFS } from './Source/Shaders/ComputeRadianceMapFS.js';
168
+ export { default as _shadersConvolveSpecularMapFS } from './Source/Shaders/ConvolveSpecularMapFS.js';
169
+ export { default as _shadersConvolveSpecularMapVS } from './Source/Shaders/ConvolveSpecularMapVS.js';
170
+ export { default as _shadersDepthPlaneFS } from './Source/Shaders/DepthPlaneFS.js';
171
+ export { default as _shadersDepthPlaneVS } from './Source/Shaders/DepthPlaneVS.js';
172
+ export { default as _shadersEllipsoidFS } from './Source/Shaders/EllipsoidFS.js';
173
+ export { default as _shadersEllipsoidVS } from './Source/Shaders/EllipsoidVS.js';
174
+ export { default as _shadersFXAA3_11 } from './Source/Shaders/FXAA3_11.js';
175
+ export { default as _shadersGlobeFS } from './Source/Shaders/GlobeFS.js';
176
+ export { default as _shadersGlobeVS } from './Source/Shaders/GlobeVS.js';
177
+ export { default as _shadersGroundAtmosphere } from './Source/Shaders/GroundAtmosphere.js';
178
+ export { default as _shadersPointPrimitiveCollectionFS } from './Source/Shaders/PointPrimitiveCollectionFS.js';
179
+ export { default as _shadersPointPrimitiveCollectionVS } from './Source/Shaders/PointPrimitiveCollectionVS.js';
180
+ export { default as _shadersPolygonSignedDistanceFS } from './Source/Shaders/PolygonSignedDistanceFS.js';
181
+ export { default as _shadersPolylineCommon } from './Source/Shaders/PolylineCommon.js';
182
+ export { default as _shadersPolylineFS } from './Source/Shaders/PolylineFS.js';
183
+ export { default as _shadersPolylineShadowVolumeFS } from './Source/Shaders/PolylineShadowVolumeFS.js';
184
+ export { default as _shadersPolylineShadowVolumeMorphFS } from './Source/Shaders/PolylineShadowVolumeMorphFS.js';
185
+ export { default as _shadersPolylineShadowVolumeMorphVS } from './Source/Shaders/PolylineShadowVolumeMorphVS.js';
186
+ export { default as _shadersPolylineShadowVolumeVS } from './Source/Shaders/PolylineShadowVolumeVS.js';
187
+ export { default as _shadersPolylineVS } from './Source/Shaders/PolylineVS.js';
188
+ export { default as _shadersPrimitiveGaussianSplatFS } from './Source/Shaders/PrimitiveGaussianSplatFS.js';
189
+ export { default as _shadersPrimitiveGaussianSplatVS } from './Source/Shaders/PrimitiveGaussianSplatVS.js';
190
+ export { default as _shadersReprojectWebMercatorFS } from './Source/Shaders/ReprojectWebMercatorFS.js';
191
+ export { default as _shadersReprojectWebMercatorVS } from './Source/Shaders/ReprojectWebMercatorVS.js';
192
+ export { default as _shadersShadowVolumeAppearanceFS } from './Source/Shaders/ShadowVolumeAppearanceFS.js';
193
+ export { default as _shadersShadowVolumeAppearanceVS } from './Source/Shaders/ShadowVolumeAppearanceVS.js';
194
+ export { default as _shadersShadowVolumeFS } from './Source/Shaders/ShadowVolumeFS.js';
195
+ export { default as _shadersSkyAtmosphereCommon } from './Source/Shaders/SkyAtmosphereCommon.js';
196
+ export { default as _shadersSkyAtmosphereFS } from './Source/Shaders/SkyAtmosphereFS.js';
197
+ export { default as _shadersSkyAtmosphereVS } from './Source/Shaders/SkyAtmosphereVS.js';
198
+ export { default as _shadersSkyBoxFS } from './Source/Shaders/SkyBoxFS.js';
199
+ export { default as _shadersSkyBoxVS } from './Source/Shaders/SkyBoxVS.js';
200
+ export { default as _shadersSunFS } from './Source/Shaders/SunFS.js';
201
+ export { default as _shadersSunTextureFS } from './Source/Shaders/SunTextureFS.js';
202
+ export { default as _shadersSunVS } from './Source/Shaders/SunVS.js';
203
+ export { default as _shadersVector3DTileClampedPolylinesFS } from './Source/Shaders/Vector3DTileClampedPolylinesFS.js';
204
+ export { default as _shadersVector3DTileClampedPolylinesVS } from './Source/Shaders/Vector3DTileClampedPolylinesVS.js';
205
+ export { default as _shadersVector3DTilePolylinesVS } from './Source/Shaders/Vector3DTilePolylinesVS.js';
206
+ export { default as _shadersVectorTileVS } from './Source/Shaders/VectorTileVS.js';
207
+ export { default as _shadersViewportQuadFS } from './Source/Shaders/ViewportQuadFS.js';
208
+ export { default as _shadersViewportQuadVS } from './Source/Shaders/ViewportQuadVS.js';
155
209
  export { default as ApproximateTerrainHeights } from './Source/Core/ApproximateTerrainHeights.js';
156
210
  export { default as ArcGISTiledElevationTerrainProvider } from './Source/Core/ArcGISTiledElevationTerrainProvider.js';
157
211
  export { default as ArcType } from './Source/Core/ArcType.js';
@@ -435,58 +489,6 @@ export { default as subdivideArray } from './Source/Core/subdivideArray.js';
435
489
  export { default as webGLConstantToGlslType } from './Source/Core/webGLConstantToGlslType.js';
436
490
  export { default as wrapFunction } from './Source/Core/wrapFunction.js';
437
491
  export { default as writeTextToCanvas } from './Source/Core/writeTextToCanvas.js';
438
- export { default as _shadersAdjustTranslucentFS } from './Source/Shaders/AdjustTranslucentFS.js';
439
- export { default as _shadersAtmosphereCommon } from './Source/Shaders/AtmosphereCommon.js';
440
- export { default as _shadersBillboardCollectionFS } from './Source/Shaders/BillboardCollectionFS.js';
441
- export { default as _shadersBillboardCollectionVS } from './Source/Shaders/BillboardCollectionVS.js';
442
- export { default as _shadersBrdfLutGeneratorFS } from './Source/Shaders/BrdfLutGeneratorFS.js';
443
- export { default as _shadersCloudCollectionFS } from './Source/Shaders/CloudCollectionFS.js';
444
- export { default as _shadersCloudCollectionVS } from './Source/Shaders/CloudCollectionVS.js';
445
- export { default as _shadersCloudNoiseFS } from './Source/Shaders/CloudNoiseFS.js';
446
- export { default as _shadersCloudNoiseVS } from './Source/Shaders/CloudNoiseVS.js';
447
- export { default as _shadersCompareAndPackTranslucentDepth } from './Source/Shaders/CompareAndPackTranslucentDepth.js';
448
- export { default as _shadersCompositeOITFS } from './Source/Shaders/CompositeOITFS.js';
449
- export { default as _shadersComputeIrradianceFS } from './Source/Shaders/ComputeIrradianceFS.js';
450
- export { default as _shadersComputeRadianceMapFS } from './Source/Shaders/ComputeRadianceMapFS.js';
451
- export { default as _shadersConvolveSpecularMapFS } from './Source/Shaders/ConvolveSpecularMapFS.js';
452
- export { default as _shadersConvolveSpecularMapVS } from './Source/Shaders/ConvolveSpecularMapVS.js';
453
- export { default as _shadersDepthPlaneFS } from './Source/Shaders/DepthPlaneFS.js';
454
- export { default as _shadersDepthPlaneVS } from './Source/Shaders/DepthPlaneVS.js';
455
- export { default as _shadersEllipsoidFS } from './Source/Shaders/EllipsoidFS.js';
456
- export { default as _shadersEllipsoidVS } from './Source/Shaders/EllipsoidVS.js';
457
- export { default as _shadersFXAA3_11 } from './Source/Shaders/FXAA3_11.js';
458
- export { default as _shadersGlobeFS } from './Source/Shaders/GlobeFS.js';
459
- export { default as _shadersGlobeVS } from './Source/Shaders/GlobeVS.js';
460
- export { default as _shadersGroundAtmosphere } from './Source/Shaders/GroundAtmosphere.js';
461
- export { default as _shadersPointPrimitiveCollectionFS } from './Source/Shaders/PointPrimitiveCollectionFS.js';
462
- export { default as _shadersPointPrimitiveCollectionVS } from './Source/Shaders/PointPrimitiveCollectionVS.js';
463
- export { default as _shadersPolygonSignedDistanceFS } from './Source/Shaders/PolygonSignedDistanceFS.js';
464
- export { default as _shadersPolylineCommon } from './Source/Shaders/PolylineCommon.js';
465
- export { default as _shadersPolylineFS } from './Source/Shaders/PolylineFS.js';
466
- export { default as _shadersPolylineShadowVolumeFS } from './Source/Shaders/PolylineShadowVolumeFS.js';
467
- export { default as _shadersPolylineShadowVolumeMorphFS } from './Source/Shaders/PolylineShadowVolumeMorphFS.js';
468
- export { default as _shadersPolylineShadowVolumeMorphVS } from './Source/Shaders/PolylineShadowVolumeMorphVS.js';
469
- export { default as _shadersPolylineShadowVolumeVS } from './Source/Shaders/PolylineShadowVolumeVS.js';
470
- export { default as _shadersPolylineVS } from './Source/Shaders/PolylineVS.js';
471
- export { default as _shadersReprojectWebMercatorFS } from './Source/Shaders/ReprojectWebMercatorFS.js';
472
- export { default as _shadersReprojectWebMercatorVS } from './Source/Shaders/ReprojectWebMercatorVS.js';
473
- export { default as _shadersShadowVolumeAppearanceFS } from './Source/Shaders/ShadowVolumeAppearanceFS.js';
474
- export { default as _shadersShadowVolumeAppearanceVS } from './Source/Shaders/ShadowVolumeAppearanceVS.js';
475
- export { default as _shadersShadowVolumeFS } from './Source/Shaders/ShadowVolumeFS.js';
476
- export { default as _shadersSkyAtmosphereCommon } from './Source/Shaders/SkyAtmosphereCommon.js';
477
- export { default as _shadersSkyAtmosphereFS } from './Source/Shaders/SkyAtmosphereFS.js';
478
- export { default as _shadersSkyAtmosphereVS } from './Source/Shaders/SkyAtmosphereVS.js';
479
- export { default as _shadersSkyBoxFS } from './Source/Shaders/SkyBoxFS.js';
480
- export { default as _shadersSkyBoxVS } from './Source/Shaders/SkyBoxVS.js';
481
- export { default as _shadersSunFS } from './Source/Shaders/SunFS.js';
482
- export { default as _shadersSunTextureFS } from './Source/Shaders/SunTextureFS.js';
483
- export { default as _shadersSunVS } from './Source/Shaders/SunVS.js';
484
- export { default as _shadersVector3DTileClampedPolylinesFS } from './Source/Shaders/Vector3DTileClampedPolylinesFS.js';
485
- export { default as _shadersVector3DTileClampedPolylinesVS } from './Source/Shaders/Vector3DTileClampedPolylinesVS.js';
486
- export { default as _shadersVector3DTilePolylinesVS } from './Source/Shaders/Vector3DTilePolylinesVS.js';
487
- export { default as _shadersVectorTileVS } from './Source/Shaders/VectorTileVS.js';
488
- export { default as _shadersViewportQuadFS } from './Source/Shaders/ViewportQuadFS.js';
489
- export { default as _shadersViewportQuadVS } from './Source/Shaders/ViewportQuadVS.js';
490
492
  export { default as AlphaMode } from './Source/Scene/AlphaMode.js';
491
493
  export { default as Appearance } from './Source/Scene/Appearance.js';
492
494
  export { default as ArcGisBaseMapType } from './Source/Scene/ArcGisBaseMapType.js';
@@ -586,6 +588,11 @@ export { default as Fog } from './Source/Scene/Fog.js';
586
588
  export { default as FrameRateMonitor } from './Source/Scene/FrameRateMonitor.js';
587
589
  export { default as FrameState } from './Source/Scene/FrameState.js';
588
590
  export { default as FrustumCommands } from './Source/Scene/FrustumCommands.js';
591
+ export { default as GaussianSplat3DTileContent } from './Source/Scene/GaussianSplat3DTileContent.js';
592
+ export { default as GaussianSplatPrimitive } from './Source/Scene/GaussianSplatPrimitive.js';
593
+ export { default as GaussianSplatRenderResources } from './Source/Scene/GaussianSplatRenderResources.js';
594
+ export { default as GaussianSplatSorter } from './Source/Scene/GaussianSplatSorter.js';
595
+ export { default as GaussianSplatTextureGenerator } from './Source/Scene/GaussianSplatTextureGenerator.js';
589
596
  export { default as Geometry3DTileContent } from './Source/Scene/Geometry3DTileContent.js';
590
597
  export { default as GetFeatureInfoFormat } from './Source/Scene/GetFeatureInfoFormat.js';
591
598
  export { default as Globe } from './Source/Scene/Globe.js';
@@ -603,6 +610,7 @@ export { default as GltfIndexBufferLoader } from './Source/Scene/GltfIndexBuffer
603
610
  export { default as GltfJsonLoader } from './Source/Scene/GltfJsonLoader.js';
604
611
  export { default as GltfLoader } from './Source/Scene/GltfLoader.js';
605
612
  export { default as GltfLoaderUtil } from './Source/Scene/GltfLoaderUtil.js';
613
+ export { default as GltfSpzLoader } from './Source/Scene/GltfSpzLoader.js';
606
614
  export { default as GltfStructuralMetadataLoader } from './Source/Scene/GltfStructuralMetadataLoader.js';
607
615
  export { default as GltfTextureLoader } from './Source/Scene/GltfTextureLoader.js';
608
616
  export { default as GltfVertexBufferLoader } from './Source/Scene/GltfVertexBufferLoader.js';
@@ -1048,6 +1056,14 @@ export { default as VaryingType } from './Source/Scene/Model/VaryingType.js';
1048
1056
  export { default as VerticalExaggerationPipelineStage } from './Source/Scene/Model/VerticalExaggerationPipelineStage.js';
1049
1057
  export { default as WireframePipelineStage } from './Source/Scene/Model/WireframePipelineStage.js';
1050
1058
  export { default as pickModel } from './Source/Scene/Model/pickModel.js';
1059
+ export { default as _shadersdepthRangeStruct } from './Source/Shaders/Builtin/Structs/depthRangeStruct.js';
1060
+ export { default as _shadersmaterial } from './Source/Shaders/Builtin/Structs/material.js';
1061
+ export { default as _shadersmaterialInput } from './Source/Shaders/Builtin/Structs/materialInput.js';
1062
+ export { default as _shadersmodelMaterial } from './Source/Shaders/Builtin/Structs/modelMaterial.js';
1063
+ export { default as _shadersmodelVertexOutput } from './Source/Shaders/Builtin/Structs/modelVertexOutput.js';
1064
+ export { default as _shadersray } from './Source/Shaders/Builtin/Structs/ray.js';
1065
+ export { default as _shadersraySegment } from './Source/Shaders/Builtin/Structs/raySegment.js';
1066
+ export { default as _shadersshadowParameters } from './Source/Shaders/Builtin/Structs/shadowParameters.js';
1051
1067
  export { default as _shadersdegreesPerRadian } from './Source/Shaders/Builtin/Constants/degreesPerRadian.js';
1052
1068
  export { default as _shadersdepthRange } from './Source/Shaders/Builtin/Constants/depthRange.js';
1053
1069
  export { default as _shadersepsilon1 } from './Source/Shaders/Builtin/Constants/epsilon1.js';
@@ -1066,6 +1082,7 @@ export { default as _shaderspassCesium3DTileClassificationIgnoreShow } from './S
1066
1082
  export { default as _shaderspassClassification } from './Source/Shaders/Builtin/Constants/passClassification.js';
1067
1083
  export { default as _shaderspassCompute } from './Source/Shaders/Builtin/Constants/passCompute.js';
1068
1084
  export { default as _shaderspassEnvironment } from './Source/Shaders/Builtin/Constants/passEnvironment.js';
1085
+ export { default as _shaderspassGaussianSplats } from './Source/Shaders/Builtin/Constants/passGaussianSplats.js';
1069
1086
  export { default as _shaderspassGlobe } from './Source/Shaders/Builtin/Constants/passGlobe.js';
1070
1087
  export { default as _shaderspassOpaque } from './Source/Shaders/Builtin/Constants/passOpaque.js';
1071
1088
  export { default as _shaderspassOverlay } from './Source/Shaders/Builtin/Constants/passOverlay.js';
@@ -1086,14 +1103,6 @@ export { default as _shaderssolarRadius } from './Source/Shaders/Builtin/Constan
1086
1103
  export { default as _shadersthreePiOver2 } from './Source/Shaders/Builtin/Constants/threePiOver2.js';
1087
1104
  export { default as _shaderstwoPi } from './Source/Shaders/Builtin/Constants/twoPi.js';
1088
1105
  export { default as _shaderswebMercatorMaxLatitude } from './Source/Shaders/Builtin/Constants/webMercatorMaxLatitude.js';
1089
- export { default as _shadersdepthRangeStruct } from './Source/Shaders/Builtin/Structs/depthRangeStruct.js';
1090
- export { default as _shadersmaterial } from './Source/Shaders/Builtin/Structs/material.js';
1091
- export { default as _shadersmaterialInput } from './Source/Shaders/Builtin/Structs/materialInput.js';
1092
- export { default as _shadersmodelMaterial } from './Source/Shaders/Builtin/Structs/modelMaterial.js';
1093
- export { default as _shadersmodelVertexOutput } from './Source/Shaders/Builtin/Structs/modelVertexOutput.js';
1094
- export { default as _shadersray } from './Source/Shaders/Builtin/Structs/ray.js';
1095
- export { default as _shadersraySegment } from './Source/Shaders/Builtin/Structs/raySegment.js';
1096
- export { default as _shadersshadowParameters } from './Source/Shaders/Builtin/Structs/shadowParameters.js';
1097
1106
  export { default as _shadersHSBToRGB } from './Source/Shaders/Builtin/Functions/HSBToRGB.js';
1098
1107
  export { default as _shadersHSLToRGB } from './Source/Shaders/Builtin/Functions/HSLToRGB.js';
1099
1108
  export { default as _shadersRGBToHSB } from './Source/Shaders/Builtin/Functions/RGBToHSB.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cesium/engine",
3
- "version": "18.0.0",
3
+ "version": "18.0.1-splats.0",
4
4
  "description": "CesiumJS is a JavaScript library for creating 3D globes and 2D maps in a web browser without a plugin.",
5
5
  "keywords": [
6
6
  "3D",
@@ -50,7 +50,9 @@
50
50
  "protobufjs": "^7.1.0",
51
51
  "rbush": "^4.0.1",
52
52
  "topojson-client": "^3.1.0",
53
- "urijs": "^1.19.7"
53
+ "urijs": "^1.19.7",
54
+ "@cesium/wasm-splats": "^0.1.0-alpha.2",
55
+ "@spz-loader/core": "^0.1.0"
54
56
  },
55
57
  "type": "module",
56
58
  "scripts": {