gaussian-splat-lite 1.2.2 → 1.3.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 (248) hide show
  1. package/CHANGELOG.md +32 -2
  2. package/CONTRIBUTING.md +4 -2
  3. package/README.md +4 -3
  4. package/dist/gaussian-splat-lite.cjs +6379 -1441
  5. package/dist/gaussian-splat-lite.cjs.map +1 -1
  6. package/dist/gaussian-splat-lite.min.cjs +978 -11
  7. package/dist/gaussian-splat-lite.min.cjs.map +1 -1
  8. package/dist/gaussian-splat-lite.module.js +5920 -982
  9. package/dist/gaussian-splat-lite.module.js.map +1 -1
  10. package/dist/gaussian-splat-lite.module.min.js +7882 -3373
  11. package/dist/gaussian-splat-lite.module.min.js.map +1 -1
  12. package/dist/types/addons/NeuralDenoiseNode.d.cts +72 -0
  13. package/dist/types/addons/NeuralDenoiseNode.d.ts +72 -0
  14. package/dist/types/addons/NeuralDenoisePass.d.cts +34 -0
  15. package/dist/types/addons/NeuralDenoisePass.d.ts +34 -0
  16. package/dist/types/addons/TAANode.d.cts +46 -33
  17. package/dist/types/addons/TAANode.d.ts +46 -33
  18. package/dist/types/addons/TAAPass.d.cts +47 -32
  19. package/dist/types/addons/TAAPass.d.ts +47 -32
  20. package/dist/types/addons/neuralDenoiseGL.d.cts +25 -0
  21. package/dist/types/addons/neuralDenoiseGL.d.ts +25 -0
  22. package/dist/types/addons/neuralDenoiseGLSL.d.cts +8 -0
  23. package/dist/types/addons/neuralDenoiseGLSL.d.ts +8 -0
  24. package/dist/types/addons/neuralDenoisePasses.d.cts +26 -0
  25. package/dist/types/addons/neuralDenoisePasses.d.ts +26 -0
  26. package/dist/types/addons/neuralDenoiseShaders.d.cts +38 -0
  27. package/dist/types/addons/neuralDenoiseShaders.d.ts +38 -0
  28. package/dist/types/addons/neuralDenoiseWeights.d.cts +118 -0
  29. package/dist/types/addons/neuralDenoiseWeights.d.ts +118 -0
  30. package/dist/types/addons/stochasticCoverage.d.cts +14 -0
  31. package/dist/types/addons/stochasticCoverage.d.ts +14 -0
  32. package/dist/types/addons/taaShared.d.cts +58 -39
  33. package/dist/types/addons/taaShared.d.ts +58 -39
  34. package/dist/types/capture/SplatCapture.d.cts +54 -53
  35. package/dist/types/capture/SplatCapture.d.ts +54 -53
  36. package/dist/types/capture/WebGLCapture.d.cts +10 -10
  37. package/dist/types/capture/WebGLCapture.d.ts +10 -10
  38. package/dist/types/capture/WebGPUCapture.d.cts +14 -14
  39. package/dist/types/capture/WebGPUCapture.d.ts +14 -14
  40. package/dist/types/capture/pixels.d.cts +15 -4
  41. package/dist/types/capture/pixels.d.ts +15 -4
  42. package/dist/types/capture/rendererState.d.cts +5 -2
  43. package/dist/types/capture/rendererState.d.ts +5 -2
  44. package/dist/types/data/IndexedSplats.d.cts +76 -58
  45. package/dist/types/data/IndexedSplats.d.ts +76 -58
  46. package/dist/types/data/RadPagedSplats.d.cts +65 -61
  47. package/dist/types/data/RadPagedSplats.d.ts +65 -61
  48. package/dist/types/data/SogRegionSplats.d.cts +25 -19
  49. package/dist/types/data/SogRegionSplats.d.ts +25 -19
  50. package/dist/types/data/SplatOpacityTable.d.cts +29 -29
  51. package/dist/types/data/SplatOpacityTable.d.ts +29 -29
  52. package/dist/types/data/Splats.d.cts +99 -69
  53. package/dist/types/data/Splats.d.ts +99 -69
  54. package/dist/types/data/defines.d.cts +24 -24
  55. package/dist/types/data/defines.d.ts +24 -24
  56. package/dist/types/data/raycast.d.cts +13 -9
  57. package/dist/types/data/raycast.d.ts +13 -9
  58. package/dist/types/data/splatCodec.d.cts +29 -5
  59. package/dist/types/data/splatCodec.d.ts +29 -5
  60. package/dist/types/data/splatData.d.cts +18 -11
  61. package/dist/types/data/splatData.d.ts +18 -11
  62. package/dist/types/data/splatRange.d.cts +6 -2
  63. package/dist/types/data/splatRange.d.ts +6 -2
  64. package/dist/types/data/textureLayout.d.cts +9 -6
  65. package/dist/types/data/textureLayout.d.ts +9 -6
  66. package/dist/types/data/unpack.d.cts +16 -9
  67. package/dist/types/data/unpack.d.ts +16 -9
  68. package/dist/types/index.d.cts +65 -19
  69. package/dist/types/index.d.ts +65 -19
  70. package/dist/types/loaders/SplatLoader.d.cts +27 -14
  71. package/dist/types/loaders/SplatLoader.d.ts +27 -14
  72. package/dist/types/loaders/loadSplatData.d.cts +35 -17
  73. package/dist/types/loaders/loadSplatData.d.ts +35 -17
  74. package/dist/types/loaders/loadTypes.d.cts +46 -40
  75. package/dist/types/loaders/loadTypes.d.ts +46 -40
  76. package/dist/types/loaders/morton.d.cts +9 -3
  77. package/dist/types/loaders/morton.d.ts +9 -3
  78. package/dist/types/loaders/postDecode/builder.d.cts +222 -127
  79. package/dist/types/loaders/postDecode/builder.d.ts +222 -127
  80. package/dist/types/loaders/postDecode/compiler.d.cts +25 -11
  81. package/dist/types/loaders/postDecode/compiler.d.ts +25 -11
  82. package/dist/types/loaders/postDecode/operations.d.cts +22 -3
  83. package/dist/types/loaders/postDecode/operations.d.ts +22 -3
  84. package/dist/types/loaders/postDecode/optimizer.d.cts +5 -2
  85. package/dist/types/loaders/postDecode/optimizer.d.ts +5 -2
  86. package/dist/types/loaders/postDecode/program.d.cts +13 -6
  87. package/dist/types/loaders/postDecode/program.d.ts +13 -6
  88. package/dist/types/loaders/postDecode/protocol.d.cts +136 -111
  89. package/dist/types/loaders/postDecode/protocol.d.ts +136 -111
  90. package/dist/types/loaders/postDecode/registers.d.cts +12 -7
  91. package/dist/types/loaders/postDecode/registers.d.ts +12 -7
  92. package/dist/types/loaders/postDecode/runtime.d.cts +9 -2
  93. package/dist/types/loaders/postDecode/runtime.d.ts +9 -2
  94. package/dist/types/loaders/rad/RadSource.d.cts +81 -66
  95. package/dist/types/loaders/rad/RadSource.d.ts +81 -66
  96. package/dist/types/loaders/rad/radFormat.d.cts +41 -36
  97. package/dist/types/loaders/rad/radFormat.d.ts +41 -36
  98. package/dist/types/loaders/rad.d.cts +4 -4
  99. package/dist/types/loaders/rad.d.ts +4 -4
  100. package/dist/types/loaders/sog/SogSource.d.cts +14 -4
  101. package/dist/types/loaders/sog/SogSource.d.ts +14 -4
  102. package/dist/types/loaders/sog/sogZip.d.cts +12 -12
  103. package/dist/types/loaders/sog/sogZip.d.ts +12 -12
  104. package/dist/types/loaders/sog.d.cts +3 -3
  105. package/dist/types/loaders/sog.d.ts +3 -3
  106. package/dist/types/loaders/source.d.cts +43 -15
  107. package/dist/types/loaders/source.d.ts +43 -15
  108. package/dist/types/loaders/stream/StreamByteBudget.d.cts +4 -4
  109. package/dist/types/loaders/stream/StreamByteBudget.d.ts +4 -4
  110. package/dist/types/loaders/stream/StreamCameras.d.cts +27 -18
  111. package/dist/types/loaders/stream/StreamCameras.d.ts +27 -18
  112. package/dist/types/loaders/stream/StreamWorkerPool.d.cts +37 -34
  113. package/dist/types/loaders/stream/StreamWorkerPool.d.ts +37 -34
  114. package/dist/types/loaders/stream/rad-stream/RadSelectionState.d.cts +15 -11
  115. package/dist/types/loaders/stream/rad-stream/RadSelectionState.d.ts +15 -11
  116. package/dist/types/loaders/stream/rad-stream/RadStreamBatch.d.cts +13 -9
  117. package/dist/types/loaders/stream/rad-stream/RadStreamBatch.d.ts +13 -9
  118. package/dist/types/loaders/stream/rad-stream/RadStreamLoader.d.cts +64 -49
  119. package/dist/types/loaders/stream/rad-stream/RadStreamLoader.d.ts +64 -49
  120. package/dist/types/loaders/stream/rad-stream/RadStreamScheduler.d.cts +110 -102
  121. package/dist/types/loaders/stream/rad-stream/RadStreamScheduler.d.ts +110 -102
  122. package/dist/types/loaders/stream/rad-stream/RadStreamWorker.d.cts +3 -3
  123. package/dist/types/loaders/stream/rad-stream/RadStreamWorker.d.ts +3 -3
  124. package/dist/types/loaders/stream/rad-stream/prepareRadSelection.d.cts +27 -15
  125. package/dist/types/loaders/stream/rad-stream/prepareRadSelection.d.ts +27 -15
  126. package/dist/types/loaders/stream/rad-stream/radFade.d.cts +13 -8
  127. package/dist/types/loaders/stream/rad-stream/radFade.d.ts +13 -8
  128. package/dist/types/loaders/stream/rad-stream/radLod.d.cts +26 -26
  129. package/dist/types/loaders/stream/rad-stream/radLod.d.ts +26 -26
  130. package/dist/types/loaders/stream/rad-stream/worker.d.cts +3 -59
  131. package/dist/types/loaders/stream/rad-stream/worker.d.ts +3 -59
  132. package/dist/types/loaders/stream/rad-stream/workerHandlers.d.cts +85 -59
  133. package/dist/types/loaders/stream/rad-stream/workerHandlers.d.ts +85 -59
  134. package/dist/types/loaders/stream/sog-stream/SogStreamBatch.d.cts +17 -12
  135. package/dist/types/loaders/stream/sog-stream/SogStreamBatch.d.ts +17 -12
  136. package/dist/types/loaders/stream/sog-stream/SogStreamLoader.d.cts +56 -41
  137. package/dist/types/loaders/stream/sog-stream/SogStreamLoader.d.ts +56 -41
  138. package/dist/types/loaders/stream/sog-stream/SogStreamScheduler.d.cts +82 -81
  139. package/dist/types/loaders/stream/sog-stream/SogStreamScheduler.d.ts +82 -81
  140. package/dist/types/loaders/stream/sog-stream/SogStreamWorker.d.cts +3 -3
  141. package/dist/types/loaders/stream/sog-stream/SogStreamWorker.d.ts +3 -3
  142. package/dist/types/loaders/stream/sog-stream/sogLod.d.cts +59 -44
  143. package/dist/types/loaders/stream/sog-stream/sogLod.d.ts +59 -44
  144. package/dist/types/loaders/stream/sog-stream/sogVisibility.d.cts +30 -22
  145. package/dist/types/loaders/stream/sog-stream/sogVisibility.d.ts +30 -22
  146. package/dist/types/loaders/stream/sog-stream/worker.d.cts +7 -40
  147. package/dist/types/loaders/stream/sog-stream/worker.d.ts +7 -40
  148. package/dist/types/loaders/stream/sog-stream/workerHandlers.d.cts +69 -44
  149. package/dist/types/loaders/stream/sog-stream/workerHandlers.d.ts +69 -44
  150. package/dist/types/loaders/stream/streamOptions.d.cts +41 -32
  151. package/dist/types/loaders/stream/streamOptions.d.ts +41 -32
  152. package/dist/types/loaders/workerDecode.d.cts +30 -12
  153. package/dist/types/loaders/workerDecode.d.ts +30 -12
  154. package/dist/types/patches/threeR186.d.cts +3 -0
  155. package/dist/types/patches/threeR186.d.ts +3 -0
  156. package/dist/types/rendering/GaussianSplatRenderer.d.cts +393 -376
  157. package/dist/types/rendering/GaussianSplatRenderer.d.ts +393 -376
  158. package/dist/types/rendering/MaterialState.d.cts +9 -0
  159. package/dist/types/rendering/MaterialState.d.ts +9 -0
  160. package/dist/types/rendering/SortCenterCache.d.cts +17 -17
  161. package/dist/types/rendering/SortCenterCache.d.ts +17 -17
  162. package/dist/types/rendering/SplatAccumulator.d.cts +93 -77
  163. package/dist/types/rendering/SplatAccumulator.d.ts +93 -77
  164. package/dist/types/rendering/SplatGeometry.d.cts +2 -2
  165. package/dist/types/rendering/SplatGeometry.d.ts +2 -2
  166. package/dist/types/rendering/StochasticSplatMaterial.d.cts +14 -0
  167. package/dist/types/rendering/StochasticSplatMaterial.d.ts +14 -0
  168. package/dist/types/rendering/backend.d.cts +30 -18
  169. package/dist/types/rendering/backend.d.ts +30 -18
  170. package/dist/types/rendering/blueNoise.d.cts +1 -1
  171. package/dist/types/rendering/blueNoise.d.ts +1 -1
  172. package/dist/types/rendering/rendererUtils.d.cts +25 -10
  173. package/dist/types/rendering/rendererUtils.d.ts +25 -10
  174. package/dist/types/rendering/tsl/GenerateProgram.d.cts +19 -17
  175. package/dist/types/rendering/tsl/GenerateProgram.d.ts +19 -17
  176. package/dist/types/rendering/tsl/ProjectionProgram.d.cts +38 -33
  177. package/dist/types/rendering/tsl/ProjectionProgram.d.ts +38 -33
  178. package/dist/types/rendering/tsl/SplatBackend.d.cts +22 -10
  179. package/dist/types/rendering/tsl/SplatBackend.d.ts +22 -10
  180. package/dist/types/rendering/tsl/SplatMaterial.d.cts +38 -25
  181. package/dist/types/rendering/tsl/SplatMaterial.d.ts +38 -25
  182. package/dist/types/rendering/tsl/shaderUtils.d.cts +55 -17
  183. package/dist/types/rendering/tsl/shaderUtils.d.ts +55 -17
  184. package/dist/types/rendering/tsl/stochasticCoverage.d.cts +7 -0
  185. package/dist/types/rendering/tsl/stochasticCoverage.d.ts +7 -0
  186. package/dist/types/rendering/tsl/viewUniforms.d.cts +19 -9
  187. package/dist/types/rendering/tsl/viewUniforms.d.ts +19 -9
  188. package/dist/types/rendering/uniforms.d.cts +83 -83
  189. package/dist/types/rendering/uniforms.d.ts +83 -83
  190. package/dist/types/rendering/webgl/AccumulatorGenerator.d.cts +28 -12
  191. package/dist/types/rendering/webgl/AccumulatorGenerator.d.ts +28 -12
  192. package/dist/types/rendering/webgl/OrderingTexture.d.cts +10 -7
  193. package/dist/types/rendering/webgl/OrderingTexture.d.ts +10 -7
  194. package/dist/types/rendering/webgl/SplatBackend.d.cts +20 -15
  195. package/dist/types/rendering/webgl/SplatBackend.d.ts +20 -15
  196. package/dist/types/rendering/webgl/SplatMaterial.d.cts +9 -4
  197. package/dist/types/rendering/webgl/SplatMaterial.d.ts +9 -4
  198. package/dist/types/rendering/webgl/textureUtils.d.cts +10 -3
  199. package/dist/types/rendering/webgl/textureUtils.d.ts +10 -3
  200. package/dist/types/rendering/webgl-fallback/AccumulatorGenerator.d.cts +8 -10
  201. package/dist/types/rendering/webgl-fallback/AccumulatorGenerator.d.ts +8 -10
  202. package/dist/types/rendering/webgl-fallback/SplatBackend.d.cts +18 -14
  203. package/dist/types/rendering/webgl-fallback/SplatBackend.d.ts +18 -14
  204. package/dist/types/rendering/webgpu/ProjectedSplats.d.cts +76 -66
  205. package/dist/types/rendering/webgpu/ProjectedSplats.d.ts +76 -66
  206. package/dist/types/rendering/webgpu/ProjectionCache.d.cts +43 -28
  207. package/dist/types/rendering/webgpu/ProjectionCache.d.ts +43 -28
  208. package/dist/types/rendering/webgpu/ProjectionKernel.d.cts +22 -0
  209. package/dist/types/rendering/webgpu/ProjectionKernel.d.ts +22 -0
  210. package/dist/types/rendering/webgpu/RadixSort.d.cts +44 -40
  211. package/dist/types/rendering/webgpu/RadixSort.d.ts +44 -40
  212. package/dist/types/rendering/webgpu/SplatBackend.d.cts +14 -12
  213. package/dist/types/rendering/webgpu/SplatBackend.d.ts +14 -12
  214. package/dist/types/runtime/SplatWorker.d.cts +17 -13
  215. package/dist/types/runtime/SplatWorker.d.ts +17 -13
  216. package/dist/types/runtime/WorkerRpc.d.cts +26 -20
  217. package/dist/types/runtime/WorkerRpc.d.ts +26 -20
  218. package/dist/types/runtime/abort.d.cts +10 -5
  219. package/dist/types/runtime/abort.d.ts +10 -5
  220. package/dist/types/runtime/retry.d.cts +6 -6
  221. package/dist/types/runtime/retry.d.ts +6 -6
  222. package/dist/types/runtime/wasmCall.d.cts +3 -3
  223. package/dist/types/runtime/wasmCall.d.ts +3 -3
  224. package/dist/types/runtime/worker.d.cts +44 -24
  225. package/dist/types/runtime/worker.d.ts +44 -24
  226. package/dist/types/runtime/workerServer.d.cts +3 -1
  227. package/dist/types/runtime/workerServer.d.ts +3 -1
  228. package/dist/types/scene/SplatEdit.d.cts +74 -67
  229. package/dist/types/scene/SplatEdit.d.ts +74 -67
  230. package/dist/types/scene/SplatMesh.d.cts +92 -70
  231. package/dist/types/scene/SplatMesh.d.ts +92 -70
  232. package/dist/types/utils/index.d.cts +15 -7
  233. package/dist/types/utils/index.d.ts +15 -7
  234. package/dist/types/utils/three.d.cts +3 -3
  235. package/dist/types/utils/three.d.ts +3 -3
  236. package/dist/types/utils/transforms.d.cts +10 -3
  237. package/dist/types/utils/transforms.d.ts +10 -3
  238. package/docs/GaussianSplatRenderer.md +3 -1
  239. package/docs/NeuralDenoiseNode.md +148 -0
  240. package/docs/SplatMesh.md +1 -1
  241. package/docs/StochasticRendering.md +36 -10
  242. package/docs/TAAPass.md +20 -3
  243. package/package.json +9 -11
  244. package/dist/types/capture/sceneView.d.cts +0 -3
  245. package/dist/types/capture/sceneView.d.ts +0 -3
  246. package/dist/types/rendering/tsl/tslCompat.d.cts +0 -68
  247. package/dist/types/rendering/tsl/tslCompat.d.ts +0 -68
  248. package/docs/Architecture.md +0 -200
@@ -1,19 +1,24 @@
1
- import { CPUOrderingUpdate, SplatMaterialOptions } from '../backend.cjs';
2
- import { Uniforms } from '../uniforms.cjs';
3
1
  import type * as THREE from "three";
2
+ import type { CPUOrderingUpdate, SplatMaterialOptions } from "../backend.cjs";
3
+ import type { Uniforms } from "../uniforms.cjs";
4
4
  /** WebGL materials and ordering-texture uploads. */
5
5
  export declare class WebGLSplatBackend {
6
- readonly renderer: THREE.WebGLRenderer;
7
- private readonly uniforms;
8
- readonly kind = "webgl";
9
- readonly material: THREE.ShaderMaterial;
10
- private readonly ordering;
11
- constructor(renderer: THREE.WebGLRenderer, uniforms: Uniforms, options: SplatMaterialOptions);
12
- selectMaterial(stochastic: boolean): THREE.ShaderMaterial;
13
- getOrderingCapacity(count: number): number;
14
- get cpuOrdering(): Uint32Array | null;
15
- setCPUOrdering(update: CPUOrderingUpdate): void;
16
- /** Unsorted draws read no ordering; the next sort allocates it again. */
17
- releaseOrdering(): void;
18
- dispose(): void;
6
+ readonly renderer: THREE.WebGLRenderer;
7
+ private readonly uniforms;
8
+ readonly kind = "webgl";
9
+ readonly sortedMaterial: THREE.ShaderMaterial;
10
+ readonly stochasticMaterial: THREE.ShaderMaterial;
11
+ private readonly ordering;
12
+ constructor(
13
+ renderer: THREE.WebGLRenderer,
14
+ uniforms: Uniforms,
15
+ options: SplatMaterialOptions,
16
+ );
17
+ selectMaterial(stochastic: boolean): THREE.ShaderMaterial;
18
+ getOrderingCapacity(count: number): number;
19
+ get cpuOrdering(): Uint32Array | null;
20
+ setCPUOrdering(update: CPUOrderingUpdate): void;
21
+ /** Unsorted draws read no ordering; the next sort allocates it again. */
22
+ releaseOrdering(): void;
23
+ dispose(): void;
19
24
  }
@@ -1,19 +1,24 @@
1
- import { CPUOrderingUpdate, SplatMaterialOptions } from '../backend';
2
- import { Uniforms } from '../uniforms';
3
1
  import type * as THREE from "three";
2
+ import type { CPUOrderingUpdate, SplatMaterialOptions } from "../backend.js";
3
+ import type { Uniforms } from "../uniforms.js";
4
4
  /** WebGL materials and ordering-texture uploads. */
5
5
  export declare class WebGLSplatBackend {
6
- readonly renderer: THREE.WebGLRenderer;
7
- private readonly uniforms;
8
- readonly kind = "webgl";
9
- readonly material: THREE.ShaderMaterial;
10
- private readonly ordering;
11
- constructor(renderer: THREE.WebGLRenderer, uniforms: Uniforms, options: SplatMaterialOptions);
12
- selectMaterial(stochastic: boolean): THREE.ShaderMaterial;
13
- getOrderingCapacity(count: number): number;
14
- get cpuOrdering(): Uint32Array | null;
15
- setCPUOrdering(update: CPUOrderingUpdate): void;
16
- /** Unsorted draws read no ordering; the next sort allocates it again. */
17
- releaseOrdering(): void;
18
- dispose(): void;
6
+ readonly renderer: THREE.WebGLRenderer;
7
+ private readonly uniforms;
8
+ readonly kind = "webgl";
9
+ readonly sortedMaterial: THREE.ShaderMaterial;
10
+ readonly stochasticMaterial: THREE.ShaderMaterial;
11
+ private readonly ordering;
12
+ constructor(
13
+ renderer: THREE.WebGLRenderer,
14
+ uniforms: Uniforms,
15
+ options: SplatMaterialOptions,
16
+ );
17
+ selectMaterial(stochastic: boolean): THREE.ShaderMaterial;
18
+ getOrderingCapacity(count: number): number;
19
+ get cpuOrdering(): Uint32Array | null;
20
+ setCPUOrdering(update: CPUOrderingUpdate): void;
21
+ /** Unsorted draws read no ordering; the next sort allocates it again. */
22
+ releaseOrdering(): void;
23
+ dispose(): void;
19
24
  }
@@ -1,4 +1,9 @@
1
- import { SplatMaterialOptions } from '../backend.cjs';
2
- import { Uniforms } from '../uniforms.cjs';
3
- import * as THREE from "three";
4
- export declare function createWebGLSplatMaterial(uniforms: Uniforms, options: SplatMaterialOptions): THREE.ShaderMaterial;
1
+ import type * as THREE from "three";
2
+ import type { SplatMaterialOptions } from "../backend.cjs";
3
+ import type { Uniforms } from "../uniforms.cjs";
4
+ /** Sorted and stochastic variants keep separate programs. */
5
+ export declare function createWebGLSplatMaterial(
6
+ uniforms: Uniforms,
7
+ options: SplatMaterialOptions,
8
+ stochastic: boolean,
9
+ ): THREE.ShaderMaterial;
@@ -1,4 +1,9 @@
1
- import { SplatMaterialOptions } from '../backend';
2
- import { Uniforms } from '../uniforms';
3
- import * as THREE from "three";
4
- export declare function createWebGLSplatMaterial(uniforms: Uniforms, options: SplatMaterialOptions): THREE.ShaderMaterial;
1
+ import type * as THREE from "three";
2
+ import type { SplatMaterialOptions } from "../backend.js";
3
+ import type { Uniforms } from "../uniforms.js";
4
+ /** Sorted and stochastic variants keep separate programs. */
5
+ export declare function createWebGLSplatMaterial(
6
+ uniforms: Uniforms,
7
+ options: SplatMaterialOptions,
8
+ stochastic: boolean,
9
+ ): THREE.ShaderMaterial;
@@ -1,3 +1,10 @@
1
- import * as THREE from "three";
2
- export declare const IDENT_VERTEX_SHADER = "\nprecision highp float;\n\nin vec3 position;\n\nvoid main() {\n gl_Position = vec4(position.xy, 0.0, 1.0);\n}\n";
3
- export declare function uploadU32DataTextureRows(renderer: THREE.WebGLRenderer, texture: THREE.Texture, width: number, rows: number, data: Uint32Array): void;
1
+ import type * as THREE from "three";
2
+ export declare const IDENT_VERTEX_SHADER =
3
+ "\nprecision highp float;\n\nin vec3 position;\n\nvoid main() {\n gl_Position = vec4(position.xy, 0.0, 1.0);\n}\n";
4
+ export declare function uploadU32DataTextureRows(
5
+ renderer: THREE.WebGLRenderer,
6
+ texture: THREE.Texture,
7
+ width: number,
8
+ rows: number,
9
+ data: Uint32Array,
10
+ ): void;
@@ -1,3 +1,10 @@
1
- import * as THREE from "three";
2
- export declare const IDENT_VERTEX_SHADER = "\nprecision highp float;\n\nin vec3 position;\n\nvoid main() {\n gl_Position = vec4(position.xy, 0.0, 1.0);\n}\n";
3
- export declare function uploadU32DataTextureRows(renderer: THREE.WebGLRenderer, texture: THREE.Texture, width: number, rows: number, data: Uint32Array): void;
1
+ import type * as THREE from "three";
2
+ export declare const IDENT_VERTEX_SHADER =
3
+ "\nprecision highp float;\n\nin vec3 position;\n\nvoid main() {\n gl_Position = vec4(position.xy, 0.0, 1.0);\n}\n";
4
+ export declare function uploadU32DataTextureRows(
5
+ renderer: THREE.WebGLRenderer,
6
+ texture: THREE.Texture,
7
+ width: number,
8
+ rows: number,
9
+ data: Uint32Array,
10
+ ): void;
@@ -1,16 +1,14 @@
1
- import { WebGPURenderer } from 'three/webgpu';
2
- import { AccumulatorRenderOptions } from '../webgl/AccumulatorGenerator.cjs';
3
- import * as THREE from "three";
4
- export declare function createWebGLFallbackAccumulatorTarget(width: number, height: number, depth: number, stochasticSeeds: boolean): THREE.WebGLArrayRenderTarget;
1
+ import type { WebGPURenderer } from "three/webgpu";
2
+ import type { AccumulatorRenderOptions } from "../webgl/AccumulatorGenerator.cjs";
5
3
  /**
6
4
  * Rasterizes Splat records, and for stochastic targets stable sampling seeds,
7
5
  * into integer arrays.
8
6
  */
9
7
  export declare class WebGLFallbackAccumulatorGenerator {
10
- readonly uniforms: import('../uniforms.cjs').Uniforms;
11
- private readonly material;
12
- private readonly quad;
13
- constructor(stochasticSeeds: boolean);
14
- generate(options: AccumulatorRenderOptions<WebGPURenderer>): void;
15
- dispose(): void;
8
+ readonly uniforms: import("../uniforms.cjs").Uniforms;
9
+ private readonly material;
10
+ private readonly quad;
11
+ constructor(stochasticSeeds: boolean);
12
+ generate(options: AccumulatorRenderOptions<WebGPURenderer>): void;
13
+ dispose(): void;
16
14
  }
@@ -1,16 +1,14 @@
1
- import { WebGPURenderer } from 'three/webgpu';
2
- import { AccumulatorRenderOptions } from '../webgl/AccumulatorGenerator';
3
- import * as THREE from "three";
4
- export declare function createWebGLFallbackAccumulatorTarget(width: number, height: number, depth: number, stochasticSeeds: boolean): THREE.WebGLArrayRenderTarget;
1
+ import type { WebGPURenderer } from "three/webgpu";
2
+ import type { AccumulatorRenderOptions } from "../webgl/AccumulatorGenerator.js";
5
3
  /**
6
4
  * Rasterizes Splat records, and for stochastic targets stable sampling seeds,
7
5
  * into integer arrays.
8
6
  */
9
7
  export declare class WebGLFallbackAccumulatorGenerator {
10
- readonly uniforms: import('../uniforms').Uniforms;
11
- private readonly material;
12
- private readonly quad;
13
- constructor(stochasticSeeds: boolean);
14
- generate(options: AccumulatorRenderOptions<WebGPURenderer>): void;
15
- dispose(): void;
8
+ readonly uniforms: import("../uniforms.js").Uniforms;
9
+ private readonly material;
10
+ private readonly quad;
11
+ constructor(stochasticSeeds: boolean);
12
+ generate(options: AccumulatorRenderOptions<WebGPURenderer>): void;
13
+ dispose(): void;
16
14
  }
@@ -1,17 +1,21 @@
1
- import { WebGPURenderer } from 'three/webgpu';
2
- import { CPUOrderingUpdate, SplatMaterialOptions } from '../backend.cjs';
3
- import { NodeSplatBackend } from '../tsl/SplatBackend.cjs';
4
- import { Uniforms } from '../uniforms.cjs';
1
+ import type { WebGPURenderer } from "three/webgpu";
2
+ import type { CPUOrderingUpdate, SplatMaterialOptions } from "../backend.cjs";
3
+ import { NodeSplatBackend } from "../tsl/SplatBackend.cjs";
4
+ import type { Uniforms } from "../uniforms.cjs";
5
5
  /** TSL drawing with CPU-sorted indices stored in an integer texture. */
6
6
  export declare class WebGLFallbackSplatBackend extends NodeSplatBackend {
7
- readonly kind = "webgl-fallback";
8
- private readonly ordering;
9
- private readonly orderingNode;
10
- constructor(renderer: WebGPURenderer, uniforms: Uniforms, options: SplatMaterialOptions);
11
- getOrderingCapacity(count: number): number;
12
- get cpuOrdering(): Uint32Array | null;
13
- setCPUOrdering(update: CPUOrderingUpdate): void;
14
- /** Unsorted draws read no ordering; the next sort allocates it again. */
15
- releaseOrdering(): void;
16
- dispose(): void;
7
+ readonly kind = "webgl-fallback";
8
+ private readonly ordering;
9
+ private readonly orderingNode;
10
+ constructor(
11
+ renderer: WebGPURenderer,
12
+ uniforms: Uniforms,
13
+ options: SplatMaterialOptions,
14
+ );
15
+ getOrderingCapacity(count: number): number;
16
+ get cpuOrdering(): Uint32Array | null;
17
+ setCPUOrdering(update: CPUOrderingUpdate): void;
18
+ /** Unsorted draws read no ordering; the next sort allocates it again. */
19
+ releaseOrdering(): void;
20
+ dispose(): void;
17
21
  }
@@ -1,17 +1,21 @@
1
- import { WebGPURenderer } from 'three/webgpu';
2
- import { CPUOrderingUpdate, SplatMaterialOptions } from '../backend';
3
- import { NodeSplatBackend } from '../tsl/SplatBackend';
4
- import { Uniforms } from '../uniforms';
1
+ import type { WebGPURenderer } from "three/webgpu";
2
+ import type { CPUOrderingUpdate, SplatMaterialOptions } from "../backend.js";
3
+ import { NodeSplatBackend } from "../tsl/SplatBackend.js";
4
+ import type { Uniforms } from "../uniforms.js";
5
5
  /** TSL drawing with CPU-sorted indices stored in an integer texture. */
6
6
  export declare class WebGLFallbackSplatBackend extends NodeSplatBackend {
7
- readonly kind = "webgl-fallback";
8
- private readonly ordering;
9
- private readonly orderingNode;
10
- constructor(renderer: WebGPURenderer, uniforms: Uniforms, options: SplatMaterialOptions);
11
- getOrderingCapacity(count: number): number;
12
- get cpuOrdering(): Uint32Array | null;
13
- setCPUOrdering(update: CPUOrderingUpdate): void;
14
- /** Unsorted draws read no ordering; the next sort allocates it again. */
15
- releaseOrdering(): void;
16
- dispose(): void;
7
+ readonly kind = "webgl-fallback";
8
+ private readonly ordering;
9
+ private readonly orderingNode;
10
+ constructor(
11
+ renderer: WebGPURenderer,
12
+ uniforms: Uniforms,
13
+ options: SplatMaterialOptions,
14
+ );
15
+ getOrderingCapacity(count: number): number;
16
+ get cpuOrdering(): Uint32Array | null;
17
+ setCPUOrdering(update: CPUOrderingUpdate): void;
18
+ /** Unsorted draws read no ordering; the next sort allocates it again. */
19
+ releaseOrdering(): void;
20
+ dispose(): void;
17
21
  }
@@ -1,69 +1,79 @@
1
- import { IndirectStorageBufferAttribute, WebGPURenderer } from 'three/webgpu';
2
- import { SplatAccumulator } from '../SplatAccumulator.cjs';
3
- import { SplatGeometry } from '../SplatGeometry.cjs';
4
- import { ProjectedVertexData } from '../tsl/SplatMaterial.cjs';
5
- import { Uniforms } from '../uniforms.cjs';
6
- import * as THREE from "three";
1
+ import type * as THREE from "three";
2
+ import type {
3
+ IndirectStorageBufferAttribute,
4
+ WebGPURenderer,
5
+ } from "three/webgpu";
6
+ import type { SplatAccumulator } from "../SplatAccumulator.cjs";
7
+ import type { SplatGeometry } from "../SplatGeometry.cjs";
8
+ import type { ProjectedVertexData } from "../tsl/SplatMaterial.cjs";
9
+ import type { Uniforms } from "../uniforms.cjs";
7
10
  /** Fixed compute graph. Source mappings and storage may change without rebuilding shaders. */
8
11
  export declare class ProjectedSplats {
9
- private readonly renderer;
10
- private readonly uniforms;
11
- readonly indirect: IndirectStorageBufferAttribute;
12
- /** Common kernels, the full sorter and the first slot are ready; remaining slots warm automatically. */
13
- readonly ready: Promise<void>;
14
- error: unknown;
15
- /**
16
- * Called when kernels for a new WebXR eye count can draw, or when a slot
17
- * fails to compile. Draws hide Splats until then, so on-demand hosts must
18
- * redraw.
19
- */
20
- onKernelsReady?: () => void;
21
- private readonly limits;
22
- private readonly cache;
23
- private readonly visibleCount;
24
- private readonly keys;
25
- private readonly seeds;
26
- private readonly sorter;
27
- private readonly slotSets;
28
- private readonly compilations;
29
- private readonly onSessionStart;
30
- private shrinkViews;
31
- private readonly onSessionEnd;
32
- private readonly resetCount;
33
- private readonly finish;
34
- private readonly state;
35
- private readonly matrix;
36
- private readonly translation;
37
- private readonly scale;
38
- private readonly viewPosition;
39
- private capacity;
40
- private viewCapacity;
41
- private disposed;
42
- private projectedInputs;
43
- constructor(renderer: WebGPURenderer, uniforms: Uniforms);
44
- private createSlot;
45
- /** Projection uniforms of each eye after the first, created on demand. */
46
- private ensureEyeUniforms;
47
- private createSlotSet;
48
- /**
49
- * Compiled slots that project this many eyes. One eye uses the startup
50
- * slots; WebXR eye counts build theirs on first request.
51
- */
52
- private getSlots;
53
- private compileSlots;
54
- vertexData(camera: THREE.Camera, stochastic: boolean): ProjectedVertexData;
55
- private resizeBuffer;
56
- private resize;
57
- render(accumulator: SplatAccumulator, camera: THREE.Camera, geometry: SplatGeometry, radial: boolean, fastSort: boolean, shrink?: boolean): boolean;
58
- /** Projection uniforms for one eye; eye 0 also serves mono draws. */
59
- private setEye;
60
- /** Sort from the views' mean pose: the camera, or the WebXR head. */
61
- private setSortPose;
62
- /**
63
- * Generates, projects, compacts and sorts the meshes any view draws. Sorted
64
- * modes also visit hidden meshes, which only mark their keys absent.
65
- */
66
- private dispatch;
67
- dispose(): void;
68
- private disposeResources;
12
+ private readonly renderer;
13
+ private readonly uniforms;
14
+ readonly indirect: IndirectStorageBufferAttribute;
15
+ /** Common and sorting kernels plus the first mono and stereo slots are ready to draw. */
16
+ readonly ready: Promise<void>;
17
+ error: unknown;
18
+ /**
19
+ * Compact storage and refresh existing bindings without compiling or
20
+ * stopping draws. Reads the Splat count once startup slots have compiled.
21
+ */
22
+ shrinkResources(getCount: () => number): Promise<void>;
23
+ /** Requests a redraw when an XR session ends and eye storage can shrink. */
24
+ onViewsReleased?: () => void;
25
+ private readonly limits;
26
+ private readonly cache;
27
+ private readonly visibleCount;
28
+ private readonly keys;
29
+ private readonly seeds;
30
+ private readonly sorter;
31
+ private readonly slotSets;
32
+ private readonly nodes;
33
+ private kernelWork;
34
+ private shrinkViews;
35
+ private readonly onSessionEnd;
36
+ private readonly resetCount;
37
+ private readonly finish;
38
+ private readonly state;
39
+ private readonly matrix;
40
+ private readonly translation;
41
+ private readonly scale;
42
+ private readonly viewPosition;
43
+ private capacity;
44
+ private viewCapacity;
45
+ private disposed;
46
+ private projectedInputs;
47
+ private pendingInputs;
48
+ constructor(renderer: WebGPURenderer, uniforms: Uniforms);
49
+ private createSlot;
50
+ /** Projection uniforms of the precompiled eyes after the first. */
51
+ private ensureEyeUniforms;
52
+ private createSlotSet;
53
+ /** Warm the remaining slots at startup, yielding between each compilation. */
54
+ private compileSlots;
55
+ /** The selected, precompiled mode for mono or WebXR stereo. */
56
+ private getSlots;
57
+ private compact;
58
+ vertexData(camera: THREE.Camera, stochastic: boolean): ProjectedVertexData;
59
+ private resizeBuffer;
60
+ private resize;
61
+ render(
62
+ accumulator: SplatAccumulator,
63
+ camera: THREE.Camera,
64
+ geometry: SplatGeometry,
65
+ radial: boolean,
66
+ fastSort: boolean,
67
+ ): boolean;
68
+ /** Projection uniforms for one eye; eye 0 also serves mono draws. */
69
+ private setEye;
70
+ /** Sort from the views' mean pose: the camera, or the WebXR head. */
71
+ private setSortPose;
72
+ /**
73
+ * Generates, projects, compacts and sorts the meshes any view draws. Sorted
74
+ * modes also visit hidden meshes, which only mark their keys absent.
75
+ */
76
+ private dispatch;
77
+ dispose(): void;
78
+ private disposeResources;
69
79
  }
@@ -1,69 +1,79 @@
1
- import { IndirectStorageBufferAttribute, WebGPURenderer } from 'three/webgpu';
2
- import { SplatAccumulator } from '../SplatAccumulator';
3
- import { SplatGeometry } from '../SplatGeometry';
4
- import { ProjectedVertexData } from '../tsl/SplatMaterial';
5
- import { Uniforms } from '../uniforms';
6
- import * as THREE from "three";
1
+ import type * as THREE from "three";
2
+ import type {
3
+ IndirectStorageBufferAttribute,
4
+ WebGPURenderer,
5
+ } from "three/webgpu";
6
+ import type { SplatAccumulator } from "../SplatAccumulator.js";
7
+ import type { SplatGeometry } from "../SplatGeometry.js";
8
+ import type { ProjectedVertexData } from "../tsl/SplatMaterial.js";
9
+ import type { Uniforms } from "../uniforms.js";
7
10
  /** Fixed compute graph. Source mappings and storage may change without rebuilding shaders. */
8
11
  export declare class ProjectedSplats {
9
- private readonly renderer;
10
- private readonly uniforms;
11
- readonly indirect: IndirectStorageBufferAttribute;
12
- /** Common kernels, the full sorter and the first slot are ready; remaining slots warm automatically. */
13
- readonly ready: Promise<void>;
14
- error: unknown;
15
- /**
16
- * Called when kernels for a new WebXR eye count can draw, or when a slot
17
- * fails to compile. Draws hide Splats until then, so on-demand hosts must
18
- * redraw.
19
- */
20
- onKernelsReady?: () => void;
21
- private readonly limits;
22
- private readonly cache;
23
- private readonly visibleCount;
24
- private readonly keys;
25
- private readonly seeds;
26
- private readonly sorter;
27
- private readonly slotSets;
28
- private readonly compilations;
29
- private readonly onSessionStart;
30
- private shrinkViews;
31
- private readonly onSessionEnd;
32
- private readonly resetCount;
33
- private readonly finish;
34
- private readonly state;
35
- private readonly matrix;
36
- private readonly translation;
37
- private readonly scale;
38
- private readonly viewPosition;
39
- private capacity;
40
- private viewCapacity;
41
- private disposed;
42
- private projectedInputs;
43
- constructor(renderer: WebGPURenderer, uniforms: Uniforms);
44
- private createSlot;
45
- /** Projection uniforms of each eye after the first, created on demand. */
46
- private ensureEyeUniforms;
47
- private createSlotSet;
48
- /**
49
- * Compiled slots that project this many eyes. One eye uses the startup
50
- * slots; WebXR eye counts build theirs on first request.
51
- */
52
- private getSlots;
53
- private compileSlots;
54
- vertexData(camera: THREE.Camera, stochastic: boolean): ProjectedVertexData;
55
- private resizeBuffer;
56
- private resize;
57
- render(accumulator: SplatAccumulator, camera: THREE.Camera, geometry: SplatGeometry, radial: boolean, fastSort: boolean, shrink?: boolean): boolean;
58
- /** Projection uniforms for one eye; eye 0 also serves mono draws. */
59
- private setEye;
60
- /** Sort from the views' mean pose: the camera, or the WebXR head. */
61
- private setSortPose;
62
- /**
63
- * Generates, projects, compacts and sorts the meshes any view draws. Sorted
64
- * modes also visit hidden meshes, which only mark their keys absent.
65
- */
66
- private dispatch;
67
- dispose(): void;
68
- private disposeResources;
12
+ private readonly renderer;
13
+ private readonly uniforms;
14
+ readonly indirect: IndirectStorageBufferAttribute;
15
+ /** Common and sorting kernels plus the first mono and stereo slots are ready to draw. */
16
+ readonly ready: Promise<void>;
17
+ error: unknown;
18
+ /**
19
+ * Compact storage and refresh existing bindings without compiling or
20
+ * stopping draws. Reads the Splat count once startup slots have compiled.
21
+ */
22
+ shrinkResources(getCount: () => number): Promise<void>;
23
+ /** Requests a redraw when an XR session ends and eye storage can shrink. */
24
+ onViewsReleased?: () => void;
25
+ private readonly limits;
26
+ private readonly cache;
27
+ private readonly visibleCount;
28
+ private readonly keys;
29
+ private readonly seeds;
30
+ private readonly sorter;
31
+ private readonly slotSets;
32
+ private readonly nodes;
33
+ private kernelWork;
34
+ private shrinkViews;
35
+ private readonly onSessionEnd;
36
+ private readonly resetCount;
37
+ private readonly finish;
38
+ private readonly state;
39
+ private readonly matrix;
40
+ private readonly translation;
41
+ private readonly scale;
42
+ private readonly viewPosition;
43
+ private capacity;
44
+ private viewCapacity;
45
+ private disposed;
46
+ private projectedInputs;
47
+ private pendingInputs;
48
+ constructor(renderer: WebGPURenderer, uniforms: Uniforms);
49
+ private createSlot;
50
+ /** Projection uniforms of the precompiled eyes after the first. */
51
+ private ensureEyeUniforms;
52
+ private createSlotSet;
53
+ /** Warm the remaining slots at startup, yielding between each compilation. */
54
+ private compileSlots;
55
+ /** The selected, precompiled mode for mono or WebXR stereo. */
56
+ private getSlots;
57
+ private compact;
58
+ vertexData(camera: THREE.Camera, stochastic: boolean): ProjectedVertexData;
59
+ private resizeBuffer;
60
+ private resize;
61
+ render(
62
+ accumulator: SplatAccumulator,
63
+ camera: THREE.Camera,
64
+ geometry: SplatGeometry,
65
+ radial: boolean,
66
+ fastSort: boolean,
67
+ ): boolean;
68
+ /** Projection uniforms for one eye; eye 0 also serves mono draws. */
69
+ private setEye;
70
+ /** Sort from the views' mean pose: the camera, or the WebXR head. */
71
+ private setSortPose;
72
+ /**
73
+ * Generates, projects, compacts and sorts the meshes any view draws. Sorted
74
+ * modes also visit hidden meshes, which only mark their keys absent.
75
+ */
76
+ private dispatch;
77
+ dispose(): void;
78
+ private disposeResources;
69
79
  }