@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.
- package/Build/Workers/{chunk-WTFZHPUW.js → chunk-2AXKROJA.js} +5 -5
- package/Build/Workers/{chunk-UK33ZN4K.js → chunk-2J5ZZ7CY.js} +4 -4
- package/Build/Workers/{chunk-2AXPWBJG.js → chunk-2SYY3UBI.js} +1 -1
- package/Build/Workers/{chunk-ZIP27IX6.js → chunk-2WKW3BEB.js} +6 -6
- package/Build/Workers/{chunk-LIPZUYNR.js → chunk-2ZO6BCHN.js} +11 -11
- package/Build/Workers/{chunk-KGXTCGX3.js → chunk-3UKG5X7F.js} +12 -12
- package/Build/Workers/{chunk-IWGMVQGG.js → chunk-4GYIDPXP.js} +9 -9
- package/Build/Workers/{chunk-NR7KSD56.js → chunk-6EP7ED36.js} +3 -3
- package/Build/Workers/{chunk-J4MAVE6J.js → chunk-6QOBORNG.js} +6 -6
- package/Build/Workers/{chunk-GM55YFOB.js → chunk-6WWHK2ER.js} +14 -14
- package/Build/Workers/{chunk-JF4IYQYC.js → chunk-6Y6TVYHS.js} +7 -7
- package/Build/Workers/{chunk-4MIY63FM.js → chunk-744VWE2U.js} +13 -13
- package/Build/Workers/{chunk-ZADJ6FRX.js → chunk-7PQ52XCW.js} +4 -4
- package/Build/Workers/{chunk-2NKHPWDY.js → chunk-A5UFJW2M.js} +12 -12
- package/Build/Workers/{chunk-2CAYUY2B.js → chunk-AQKVFTWV.js} +8 -8
- package/Build/Workers/{chunk-F4ZAKN4V.js → chunk-BKTEHJFD.js} +2 -2
- package/Build/Workers/{chunk-GAUF4F5A.js → chunk-CQXYKPAW.js} +16 -16
- package/Build/Workers/{chunk-QN7JEOQV.js → chunk-DI7PHKC6.js} +5 -5
- package/Build/Workers/{chunk-NWSAYFZG.js → chunk-DKKIQS6F.js} +6 -6
- package/Build/Workers/{chunk-4DSTDGY3.js → chunk-DTVWE5YL.js} +2 -2
- package/Build/Workers/{chunk-EXEZHW3P.js → chunk-ERPS2WZC.js} +4 -4
- package/Build/Workers/chunk-EYMZ5FSQ.js +280 -0
- package/Build/Workers/{chunk-HQE7KSR4.js → chunk-F43TQW5B.js} +2 -2
- package/Build/Workers/{chunk-W6CPO62M.js → chunk-FOMRN6II.js} +6 -6
- package/Build/Workers/{chunk-VGJSKEIB.js → chunk-FOTXJYKS.js} +4 -4
- package/Build/Workers/{chunk-2QNKQVUT.js → chunk-G2Y7EA4W.js} +5 -5
- package/Build/Workers/{chunk-LZFUG3GO.js → chunk-GY4E4ZP6.js} +10 -10
- package/Build/Workers/{chunk-WYCR5DWQ.js → chunk-HDG3VHYL.js} +2 -2
- package/Build/Workers/{chunk-YV37YFUM.js → chunk-HOEUXPBL.js} +9 -9
- package/Build/Workers/{chunk-OATG6PKE.js → chunk-IWDYVJ56.js} +12 -12
- package/Build/Workers/{chunk-AEGAQ6FD.js → chunk-JA4KPQJL.js} +12 -12
- package/Build/Workers/{chunk-DINSLSJD.js → chunk-JZZQEZMA.js} +6 -6
- package/Build/Workers/{chunk-QUSP3NWA.js → chunk-KPLU3WDY.js} +5 -5
- package/Build/Workers/{chunk-5WVF4BK7.js → chunk-LHM6V4D6.js} +5 -5
- package/Build/Workers/{chunk-FPYBD2P5.js → chunk-LMTGCD6P.js} +1 -1
- package/Build/Workers/{chunk-5OL6XFNS.js → chunk-LWZOYSSF.js} +1 -1
- package/Build/Workers/{chunk-T6B6H3GR.js → chunk-M6U7SV4T.js} +7 -7
- package/Build/Workers/{chunk-NVJ5JRIM.js → chunk-O25M56DO.js} +2 -2
- package/Build/Workers/{chunk-OIHAAHBK.js → chunk-OE2WXO2Z.js} +10 -10
- package/Build/Workers/{chunk-LWJWWCZ4.js → chunk-PFD462OE.js} +6 -6
- package/Build/Workers/{chunk-WGHUCZMX.js → chunk-PPI33PXH.js} +7 -7
- package/Build/Workers/{chunk-CES6DHHV.js → chunk-PRQQHLUB.js} +1 -1
- package/Build/Workers/{chunk-HS76VTVY.js → chunk-RTUZ7MJB.js} +2 -2
- package/Build/Workers/{chunk-EHB2OCQX.js → chunk-S6QBTP5U.js} +4 -4
- package/Build/Workers/{chunk-IWZK2AIH.js → chunk-SMFCIGM3.js} +5 -5
- package/Build/Workers/{chunk-MFGVMUN3.js → chunk-TC3LEKFJ.js} +5 -5
- package/Build/Workers/{chunk-I3BAKR4S.js → chunk-UTLYCPFY.js} +16 -16
- package/Build/Workers/{chunk-GS55WTRX.js → chunk-V7LEBY53.js} +6 -6
- package/Build/Workers/{chunk-RWFYLWSF.js → chunk-VE3UKRDB.js} +9 -9
- package/Build/Workers/{chunk-3RKVDGRF.js → chunk-W3FBD4FE.js} +8 -8
- package/Build/Workers/{chunk-KNA65INJ.js → chunk-YRR6CJGG.js} +4 -4
- package/Build/Workers/{chunk-SIOVJ4L5.js → chunk-ZVTKMLU6.js} +4 -4
- package/Build/Workers/combineGeometry.js +21 -21
- package/Build/Workers/createBoxGeometry.js +15 -15
- package/Build/Workers/createBoxOutlineGeometry.js +13 -13
- package/Build/Workers/createCircleGeometry.js +23 -23
- package/Build/Workers/createCircleOutlineGeometry.js +16 -16
- package/Build/Workers/createCoplanarPolygonGeometry.js +30 -30
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +28 -28
- package/Build/Workers/createCorridorGeometry.js +26 -26
- package/Build/Workers/createCorridorOutlineGeometry.js +25 -25
- package/Build/Workers/createCylinderGeometry.js +17 -17
- package/Build/Workers/createCylinderOutlineGeometry.js +15 -15
- package/Build/Workers/createEllipseGeometry.js +23 -23
- package/Build/Workers/createEllipseOutlineGeometry.js +16 -16
- package/Build/Workers/createEllipsoidGeometry.js +16 -16
- package/Build/Workers/createEllipsoidOutlineGeometry.js +15 -15
- package/Build/Workers/createFrustumGeometry.js +15 -15
- package/Build/Workers/createFrustumOutlineGeometry.js +15 -15
- package/Build/Workers/createGeometry.js +23 -21
- package/Build/Workers/createGroundPolylineGeometry.js +19 -19
- package/Build/Workers/createPlaneGeometry.js +13 -13
- package/Build/Workers/createPlaneOutlineGeometry.js +12 -12
- package/Build/Workers/createPolygonGeometry.js +29 -29
- package/Build/Workers/createPolygonOutlineGeometry.js +27 -27
- package/Build/Workers/createPolylineGeometry.js +22 -22
- package/Build/Workers/createPolylineVolumeGeometry.js +28 -28
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +24 -24
- package/Build/Workers/createRectangleGeometry.js +24 -24
- package/Build/Workers/createRectangleOutlineGeometry.js +17 -17
- package/Build/Workers/createSimplePolylineGeometry.js +20 -20
- package/Build/Workers/createSphereGeometry.js +16 -16
- package/Build/Workers/createSphereOutlineGeometry.js +15 -15
- package/Build/Workers/createTaskProcessorWorker.js +3 -3
- package/Build/Workers/createVectorTileClampedPolylines.js +12 -12
- package/Build/Workers/createVectorTileGeometries.js +21 -21
- package/Build/Workers/createVectorTilePoints.js +11 -11
- package/Build/Workers/createVectorTilePolygons.js +19 -19
- package/Build/Workers/createVectorTilePolylines.js +12 -12
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +19 -19
- package/Build/Workers/createVerticesFromHeightmap.js +19 -19
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +16 -16
- package/Build/Workers/createWallGeometry.js +21 -21
- package/Build/Workers/createWallOutlineGeometry.js +20 -20
- package/Build/Workers/decodeDraco.js +10 -10
- package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
- package/Build/Workers/decodeI3S.js +9 -9
- package/Build/Workers/gaussianSplatSorter.js +62 -0
- package/Build/Workers/gaussianSplatTextureGenerator.js +68 -0
- package/Build/Workers/transcodeKTX2.js +59 -7
- package/Build/Workers/transferTypedArrayTest.js +1 -1
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +19 -19
- package/Source/Core/PixelFormat.js +62 -0
- package/Source/Renderer/Context.js +2 -0
- package/Source/Renderer/Pass.js +3 -2
- package/Source/Renderer/Texture.js +1 -0
- package/Source/Renderer/VertexArray.js +33 -8
- package/Source/Renderer/createUniform.js +2 -0
- package/Source/Scene/Cesium3DTileContentFactory.js +23 -0
- package/Source/Scene/Cesium3DTileset.js +59 -2
- package/Source/Scene/GaussianSplat3DTileContent.js +504 -0
- package/Source/Scene/GaussianSplatPrimitive.js +932 -0
- package/Source/Scene/GaussianSplatRenderResources.js +81 -0
- package/Source/Scene/GaussianSplatSorter.js +73 -0
- package/Source/Scene/GaussianSplatTextureGenerator.js +64 -0
- package/Source/Scene/GltfLoader.js +82 -4
- package/Source/Scene/GltfSpzLoader.js +222 -0
- package/Source/Scene/GltfVertexBufferLoader.js +98 -3
- package/Source/Scene/Model/ModelRuntimePrimitive.js +1 -0
- package/Source/Scene/Model/ModelUtility.js +2 -0
- package/Source/Scene/PrimitiveLoadPlan.js +59 -0
- package/Source/Scene/ResourceCache.js +60 -3
- package/Source/Scene/ResourceCacheKey.js +39 -1
- package/Source/Scene/Scene.js +32 -1
- package/Source/Scene/VertexAttributeSemantic.js +30 -0
- package/Source/Shaders/Builtin/Constants/passGaussianSplats.glsl +9 -0
- package/Source/Shaders/Builtin/Constants/passGaussianSplats.js +11 -0
- package/Source/Shaders/Builtin/Constants/passOverlay.glsl +1 -1
- package/Source/Shaders/Builtin/Constants/passOverlay.js +1 -1
- package/Source/Shaders/Builtin/CzmBuiltins.js +2 -0
- package/Source/Shaders/Model/ModelFS.glsl +3 -1
- package/Source/Shaders/Model/ModelFS.js +3 -1
- package/Source/Shaders/Model/ModelVS.glsl +1 -1
- package/Source/Shaders/Model/ModelVS.js +1 -1
- package/Source/Shaders/Model/PointCloudStylingStageVS.glsl +1 -1
- package/Source/Shaders/Model/PointCloudStylingStageVS.js +2 -1
- package/Source/Shaders/PrimitiveGaussianSplatFS.glsl +18 -0
- package/Source/Shaders/PrimitiveGaussianSplatFS.js +20 -0
- package/Source/Shaders/PrimitiveGaussianSplatVS.glsl +108 -0
- package/Source/Shaders/PrimitiveGaussianSplatVS.js +109 -0
- package/Source/ThirdParty/wasm_splats_bg.wasm +0 -0
- package/Source/Workers/gaussianSplatSorter.js +34 -0
- package/Source/Workers/gaussianSplatTextureGenerator.js +39 -0
- package/index.d.ts +16 -0
- package/index.js +70 -61
- package/package.json +4 -2
|
@@ -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
|
+
}";
|
|
Binary file
|
|
@@ -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": {
|