gaussian-splat-lite 1.2.2 → 1.3.1

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 (250) hide show
  1. package/CHANGELOG.md +61 -2
  2. package/CONTRIBUTING.md +4 -2
  3. package/README.md +4 -3
  4. package/dist/gaussian-splat-lite.cjs +6782 -1661
  5. package/dist/gaussian-splat-lite.cjs.map +1 -1
  6. package/dist/gaussian-splat-lite.min.cjs +991 -15
  7. package/dist/gaussian-splat-lite.min.cjs.map +1 -1
  8. package/dist/gaussian-splat-lite.module.js +6328 -1207
  9. package/dist/gaussian-splat-lite.module.js.map +1 -1
  10. package/dist/gaussian-splat-lite.module.min.js +8208 -3572
  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 +83 -58
  45. package/dist/types/data/IndexedSplats.d.ts +83 -58
  46. package/dist/types/data/RadPagedSplats.d.cts +66 -61
  47. package/dist/types/data/RadPagedSplats.d.ts +66 -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 +36 -29
  51. package/dist/types/data/SplatOpacityTable.d.ts +36 -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/StreamCameras.d.cts +27 -18
  109. package/dist/types/loaders/stream/StreamCameras.d.ts +27 -18
  110. package/dist/types/loaders/stream/StreamWorkerPool.d.cts +37 -37
  111. package/dist/types/loaders/stream/StreamWorkerPool.d.ts +37 -37
  112. package/dist/types/loaders/stream/rad-stream/RadSelectionState.d.cts +20 -13
  113. package/dist/types/loaders/stream/rad-stream/RadSelectionState.d.ts +20 -13
  114. package/dist/types/loaders/stream/rad-stream/RadStreamBatch.d.cts +13 -9
  115. package/dist/types/loaders/stream/rad-stream/RadStreamBatch.d.ts +13 -9
  116. package/dist/types/loaders/stream/rad-stream/RadStreamLoader.d.cts +69 -51
  117. package/dist/types/loaders/stream/rad-stream/RadStreamLoader.d.ts +69 -51
  118. package/dist/types/loaders/stream/rad-stream/RadStreamScheduler.d.cts +126 -102
  119. package/dist/types/loaders/stream/rad-stream/RadStreamScheduler.d.ts +126 -102
  120. package/dist/types/loaders/stream/rad-stream/RadStreamWorker.d.cts +4 -4
  121. package/dist/types/loaders/stream/rad-stream/RadStreamWorker.d.ts +4 -4
  122. package/dist/types/loaders/stream/rad-stream/prepareRadSelection.d.cts +20 -17
  123. package/dist/types/loaders/stream/rad-stream/prepareRadSelection.d.ts +20 -17
  124. package/dist/types/loaders/stream/rad-stream/radFade.d.cts +13 -8
  125. package/dist/types/loaders/stream/rad-stream/radFade.d.ts +13 -8
  126. package/dist/types/loaders/stream/rad-stream/radLod.d.cts +29 -27
  127. package/dist/types/loaders/stream/rad-stream/radLod.d.ts +29 -27
  128. package/dist/types/loaders/stream/rad-stream/worker.d.cts +3 -59
  129. package/dist/types/loaders/stream/rad-stream/worker.d.ts +3 -59
  130. package/dist/types/loaders/stream/rad-stream/workerHandlers.d.cts +58 -61
  131. package/dist/types/loaders/stream/rad-stream/workerHandlers.d.ts +58 -61
  132. package/dist/types/loaders/stream/sog-stream/SogStreamBatch.d.cts +16 -12
  133. package/dist/types/loaders/stream/sog-stream/SogStreamBatch.d.ts +16 -12
  134. package/dist/types/loaders/stream/sog-stream/SogStreamLoader.d.cts +56 -41
  135. package/dist/types/loaders/stream/sog-stream/SogStreamLoader.d.ts +56 -41
  136. package/dist/types/loaders/stream/sog-stream/SogStreamScheduler.d.cts +102 -81
  137. package/dist/types/loaders/stream/sog-stream/SogStreamScheduler.d.ts +102 -81
  138. package/dist/types/loaders/stream/sog-stream/SogStreamWorker.d.cts +3 -3
  139. package/dist/types/loaders/stream/sog-stream/SogStreamWorker.d.ts +3 -3
  140. package/dist/types/loaders/stream/sog-stream/sogLod.d.cts +67 -46
  141. package/dist/types/loaders/stream/sog-stream/sogLod.d.ts +67 -46
  142. package/dist/types/loaders/stream/sog-stream/sogVisibility.d.cts +28 -22
  143. package/dist/types/loaders/stream/sog-stream/sogVisibility.d.ts +28 -22
  144. package/dist/types/loaders/stream/sog-stream/worker.d.cts +7 -40
  145. package/dist/types/loaders/stream/sog-stream/worker.d.ts +7 -40
  146. package/dist/types/loaders/stream/sog-stream/workerHandlers.d.cts +63 -44
  147. package/dist/types/loaders/stream/sog-stream/workerHandlers.d.ts +63 -44
  148. package/dist/types/loaders/stream/streamOptions.d.cts +43 -33
  149. package/dist/types/loaders/stream/streamOptions.d.ts +43 -33
  150. package/dist/types/loaders/workerDecode.d.cts +30 -12
  151. package/dist/types/loaders/workerDecode.d.ts +30 -12
  152. package/dist/types/patches/threeR186.d.cts +3 -0
  153. package/dist/types/patches/threeR186.d.ts +3 -0
  154. package/dist/types/rendering/GaussianSplatRenderer.d.cts +393 -376
  155. package/dist/types/rendering/GaussianSplatRenderer.d.ts +393 -376
  156. package/dist/types/rendering/MaterialState.d.cts +9 -0
  157. package/dist/types/rendering/MaterialState.d.ts +9 -0
  158. package/dist/types/rendering/SortCenterCache.d.cts +17 -17
  159. package/dist/types/rendering/SortCenterCache.d.ts +17 -17
  160. package/dist/types/rendering/SplatAccumulator.d.cts +93 -77
  161. package/dist/types/rendering/SplatAccumulator.d.ts +93 -77
  162. package/dist/types/rendering/SplatGeometry.d.cts +2 -2
  163. package/dist/types/rendering/SplatGeometry.d.ts +2 -2
  164. package/dist/types/rendering/StochasticSplatMaterial.d.cts +14 -0
  165. package/dist/types/rendering/StochasticSplatMaterial.d.ts +14 -0
  166. package/dist/types/rendering/backend.d.cts +30 -18
  167. package/dist/types/rendering/backend.d.ts +30 -18
  168. package/dist/types/rendering/blueNoise.d.cts +1 -1
  169. package/dist/types/rendering/blueNoise.d.ts +1 -1
  170. package/dist/types/rendering/rendererUtils.d.cts +25 -10
  171. package/dist/types/rendering/rendererUtils.d.ts +25 -10
  172. package/dist/types/rendering/tsl/GenerateProgram.d.cts +19 -17
  173. package/dist/types/rendering/tsl/GenerateProgram.d.ts +19 -17
  174. package/dist/types/rendering/tsl/ProjectionProgram.d.cts +38 -33
  175. package/dist/types/rendering/tsl/ProjectionProgram.d.ts +38 -33
  176. package/dist/types/rendering/tsl/SplatBackend.d.cts +22 -10
  177. package/dist/types/rendering/tsl/SplatBackend.d.ts +22 -10
  178. package/dist/types/rendering/tsl/SplatMaterial.d.cts +38 -25
  179. package/dist/types/rendering/tsl/SplatMaterial.d.ts +38 -25
  180. package/dist/types/rendering/tsl/shaderUtils.d.cts +55 -17
  181. package/dist/types/rendering/tsl/shaderUtils.d.ts +55 -17
  182. package/dist/types/rendering/tsl/stochasticCoverage.d.cts +7 -0
  183. package/dist/types/rendering/tsl/stochasticCoverage.d.ts +7 -0
  184. package/dist/types/rendering/tsl/viewUniforms.d.cts +19 -9
  185. package/dist/types/rendering/tsl/viewUniforms.d.ts +19 -9
  186. package/dist/types/rendering/uniforms.d.cts +83 -83
  187. package/dist/types/rendering/uniforms.d.ts +83 -83
  188. package/dist/types/rendering/webgl/AccumulatorGenerator.d.cts +28 -12
  189. package/dist/types/rendering/webgl/AccumulatorGenerator.d.ts +28 -12
  190. package/dist/types/rendering/webgl/OrderingTexture.d.cts +10 -7
  191. package/dist/types/rendering/webgl/OrderingTexture.d.ts +10 -7
  192. package/dist/types/rendering/webgl/SplatBackend.d.cts +20 -15
  193. package/dist/types/rendering/webgl/SplatBackend.d.ts +20 -15
  194. package/dist/types/rendering/webgl/SplatMaterial.d.cts +9 -4
  195. package/dist/types/rendering/webgl/SplatMaterial.d.ts +9 -4
  196. package/dist/types/rendering/webgl/textureUtils.d.cts +10 -3
  197. package/dist/types/rendering/webgl/textureUtils.d.ts +10 -3
  198. package/dist/types/rendering/webgl-fallback/AccumulatorGenerator.d.cts +8 -10
  199. package/dist/types/rendering/webgl-fallback/AccumulatorGenerator.d.ts +8 -10
  200. package/dist/types/rendering/webgl-fallback/SplatBackend.d.cts +18 -14
  201. package/dist/types/rendering/webgl-fallback/SplatBackend.d.ts +18 -14
  202. package/dist/types/rendering/webgpu/ProjectedSplats.d.cts +76 -66
  203. package/dist/types/rendering/webgpu/ProjectedSplats.d.ts +76 -66
  204. package/dist/types/rendering/webgpu/ProjectionCache.d.cts +43 -28
  205. package/dist/types/rendering/webgpu/ProjectionCache.d.ts +43 -28
  206. package/dist/types/rendering/webgpu/ProjectionKernel.d.cts +22 -0
  207. package/dist/types/rendering/webgpu/ProjectionKernel.d.ts +22 -0
  208. package/dist/types/rendering/webgpu/RadixSort.d.cts +44 -40
  209. package/dist/types/rendering/webgpu/RadixSort.d.ts +44 -40
  210. package/dist/types/rendering/webgpu/SplatBackend.d.cts +14 -12
  211. package/dist/types/rendering/webgpu/SplatBackend.d.ts +14 -12
  212. package/dist/types/runtime/SplatWorker.d.cts +17 -13
  213. package/dist/types/runtime/SplatWorker.d.ts +17 -13
  214. package/dist/types/runtime/WorkerRpc.d.cts +26 -20
  215. package/dist/types/runtime/WorkerRpc.d.ts +26 -20
  216. package/dist/types/runtime/abort.d.cts +10 -5
  217. package/dist/types/runtime/abort.d.ts +10 -5
  218. package/dist/types/runtime/retry.d.cts +6 -6
  219. package/dist/types/runtime/retry.d.ts +6 -6
  220. package/dist/types/runtime/wasmCall.d.cts +3 -3
  221. package/dist/types/runtime/wasmCall.d.ts +3 -3
  222. package/dist/types/runtime/worker.d.cts +44 -24
  223. package/dist/types/runtime/worker.d.ts +44 -24
  224. package/dist/types/runtime/workerServer.d.cts +3 -1
  225. package/dist/types/runtime/workerServer.d.ts +3 -1
  226. package/dist/types/scene/SplatEdit.d.cts +74 -67
  227. package/dist/types/scene/SplatEdit.d.ts +74 -67
  228. package/dist/types/scene/SplatMesh.d.cts +92 -70
  229. package/dist/types/scene/SplatMesh.d.ts +92 -70
  230. package/dist/types/utils/index.d.cts +15 -7
  231. package/dist/types/utils/index.d.ts +15 -7
  232. package/dist/types/utils/three.d.cts +3 -3
  233. package/dist/types/utils/three.d.ts +3 -3
  234. package/dist/types/utils/transforms.d.cts +10 -3
  235. package/dist/types/utils/transforms.d.ts +10 -3
  236. package/docs/GaussianSplatRenderer.md +3 -1
  237. package/docs/NeuralDenoiseNode.md +148 -0
  238. package/docs/RadStreamScheduler.md +14 -5
  239. package/docs/SogStreamScheduler.md +8 -6
  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/loaders/stream/StreamByteBudget.d.cts +0 -7
  247. package/dist/types/loaders/stream/StreamByteBudget.d.ts +0 -7
  248. package/dist/types/rendering/tsl/tslCompat.d.cts +0 -68
  249. package/dist/types/rendering/tsl/tslCompat.d.ts +0 -68
  250. package/docs/Architecture.md +0 -200
@@ -1,18 +1,56 @@
1
- import { Node, TextureNode, UniformNode } from 'three/webgpu';
2
- import { Uniforms } from '../uniforms';
3
- import * as THREE from "three";
4
- export { N } from './tslCompat';
1
+ import type * as THREE from "three";
2
+ import type { Node, TSL, TextureNode, UniformNode } from "three/webgpu";
3
+ import type { Uniforms } from "../uniforms.js";
4
+ export * as N from "three/tsl";
5
+ export type UniformType =
6
+ | "bool"
7
+ | "float"
8
+ | "int"
9
+ | "uint"
10
+ | "vec2"
11
+ | "vec3"
12
+ | "vec4"
13
+ | "mat3"
14
+ | "mat4";
5
15
  export declare const E: number;
6
- export type UniformType = "bool" | "float" | "int" | "uint" | "vec2" | "vec3" | "vec4" | "mat3" | "mat4";
7
- export declare function uniformBinding<Type extends UniformType>(uniforms: Uniforms, name: string, type: Type): UniformNode<Type, unknown>;
8
- export declare function textureBinding(uniforms: Uniforms, name: string, array?: boolean): TextureNode<"uvec4">;
9
- export declare function load2D<T extends TextureNode<unknown>>(binding: T, coord: Node<"ivec2">): T;
10
- export declare function loadArray<T extends TextureNode<unknown>>(binding: T, coord: Node<"ivec3">): T;
11
- export declare const splatTexCoord: import('three/src/nodes/TSL.js').FnNode<[Node<"uint">], import('three/webgpu').VarNode<"ivec3", import('three/webgpu').JoinNode<"ivec3">>>;
12
- export declare const quatVec: import('three/src/nodes/TSL.js').FnNode<[THREE.Vector4 | Node<"vec4">, THREE.Vector3 | Node<"vec3">], Node<"vec3">>;
13
- export declare const quatQuat: import('three/src/nodes/TSL.js').FnNode<[THREE.Vector4 | Node<"vec4">, THREE.Vector4 | Node<"vec4">], import('three/webgpu').VarNode<"vec4", import('three/webgpu').JoinNode<"vec4">>>;
14
- export declare const decodeCenter: import('three/src/nodes/TSL.js').FnNode<[Node<"uvec4">], Node<"vec3">>;
15
- export declare const decodeAlphaShape: import('three/src/nodes/TSL.js').FnNode<[Node<"uvec4">], Node<"vec2">>;
16
- export declare const decodeRgba: import('three/src/nodes/TSL.js').FnNode<[Node<"uvec4">, number | Node<"uint"> | Node<"float">], import('three/webgpu').VarNode<"vec4", import('three/webgpu').JoinNode<"vec4">>>;
17
- export declare const decodeLnScales: import('three/src/nodes/TSL.js').FnNode<[Node<"uvec4">], import('three/webgpu').VarNode<"vec3", import('three/webgpu').JoinNode<"vec3">>>;
18
- export declare const decodeQuaternion: import('three/src/nodes/TSL.js').FnNode<[Node<"uint">], import('three/webgpu').VarNode<"vec4", import('three/webgpu').JoinNode<"vec4">>>;
16
+ /** Texture loads without a sampler, preserving the texture's integer format. */
17
+ export declare function uintTexture(
18
+ texture: THREE.Texture,
19
+ ): TextureNode<"uvec4">;
20
+ export declare function uniformBinding<Type extends UniformType>(
21
+ uniforms: Uniforms,
22
+ name: string,
23
+ type: Type,
24
+ ): UniformNode<Type, unknown>;
25
+ export declare function textureBinding(
26
+ uniforms: Uniforms,
27
+ name: string,
28
+ ): TextureNode<"uvec4">;
29
+ export declare function load2D<T extends TextureNode<unknown>>(
30
+ binding: T,
31
+ coord: Node<"ivec2">,
32
+ ): T;
33
+ export declare function loadArray<T extends TextureNode<unknown>>(
34
+ binding: T,
35
+ coord: Node<"ivec3">,
36
+ ): T;
37
+ export declare const splatTexCoord: TSL.FnNode<[Node<"uint">], Node<"ivec3">>;
38
+ export declare const quatVec: TSL.FnNode<
39
+ [Node<"vec4"> | THREE.Vector4, THREE.Vector3 | Node<"vec3">],
40
+ Node<"vec3">
41
+ >;
42
+ export declare const quatQuat: TSL.FnNode<
43
+ [Node<"vec4"> | THREE.Vector4, Node<"vec4"> | THREE.Vector4],
44
+ Node<"vec4">
45
+ >;
46
+ export declare const decodeCenter: TSL.FnNode<[Node<"uvec4">], Node<"vec3">>;
47
+ export declare const decodeAlphaShape: TSL.FnNode<
48
+ [Node<"uvec4">],
49
+ Node<"vec2">
50
+ >;
51
+ export declare const decodeRgba: TSL.FnNode<
52
+ [Node<"uvec4">, number | Node<"uint"> | Node<"float">],
53
+ Node<"vec4">
54
+ >;
55
+ export declare const decodeLnScales: TSL.FnNode<[Node<"uvec4">], Node<"vec3">>;
56
+ export declare const decodeQuaternion: TSL.FnNode<[Node<"uint">], Node<"vec4">>;
@@ -0,0 +1,7 @@
1
+ import type { Node } from "three/webgpu";
2
+
3
+ /** Matches the four stratified coverage decisions in splatFragment.glsl. */
4
+ export declare function stochasticCoverage(
5
+ alpha: Node<"float">,
6
+ random: Node<"float">,
7
+ ): void;
@@ -0,0 +1,7 @@
1
+ import type { Node } from "three/webgpu";
2
+
3
+ /** Matches the four stratified coverage decisions in splatFragment.glsl. */
4
+ export declare function stochasticCoverage(
5
+ alpha: Node<"float">,
6
+ random: Node<"float">,
7
+ ): void;
@@ -1,14 +1,24 @@
1
- import { Node } from 'three/webgpu';
2
- import { Uniforms } from '../uniforms.cjs';
3
- import { ProjectionView } from './ProjectionProgram.cjs';
4
- import * as THREE from "three";
1
+ import type * as THREE from "three";
2
+ import type { Node } from "three/webgpu";
3
+ import type { Uniforms } from "../uniforms.cjs";
4
+ import type { ProjectionView } from "./ProjectionProgram.cjs";
5
5
  /** Eye of the current WebXR draw; multiview draws both eyes at once. */
6
6
  export declare function viewIndex(camera: THREE.Camera): Node<"uint">;
7
+ /** A per-layout projection array also supports changing WebXR eye counts. */
8
+ export declare function splatProjectionMatrix(
9
+ camera: THREE.Camera,
10
+ ): Node<"mat4">;
7
11
  /** Viewport data for drawing splats that have already been projected. */
8
- export declare function splatViewportUniforms(uniforms: Uniforms, camera: THREE.Camera): {
9
- renderSize: Node<"vec2">;
10
- viewportOrigin: Node<"vec2">;
12
+ export declare function splatViewportUniforms(
13
+ uniforms: Uniforms,
14
+ camera: THREE.Camera,
15
+ ): {
16
+ renderSize: Node<"vec2">;
17
+ viewportOrigin: Node<"vec2">;
11
18
  };
12
- export declare function splatViewUniforms(uniforms: Uniforms, camera: THREE.Camera): Omit<ProjectionView, "projectionMatrix"> & {
13
- viewportOrigin: Node<"vec2">;
19
+ export declare function splatViewUniforms(
20
+ uniforms: Uniforms,
21
+ camera: THREE.Camera,
22
+ ): ProjectionView & {
23
+ viewportOrigin: Node<"vec2">;
14
24
  };
@@ -1,14 +1,24 @@
1
- import { Node } from 'three/webgpu';
2
- import { Uniforms } from '../uniforms';
3
- import { ProjectionView } from './ProjectionProgram';
4
- import * as THREE from "three";
1
+ import type * as THREE from "three";
2
+ import type { Node } from "three/webgpu";
3
+ import type { Uniforms } from "../uniforms.js";
4
+ import type { ProjectionView } from "./ProjectionProgram.js";
5
5
  /** Eye of the current WebXR draw; multiview draws both eyes at once. */
6
6
  export declare function viewIndex(camera: THREE.Camera): Node<"uint">;
7
+ /** A per-layout projection array also supports changing WebXR eye counts. */
8
+ export declare function splatProjectionMatrix(
9
+ camera: THREE.Camera,
10
+ ): Node<"mat4">;
7
11
  /** Viewport data for drawing splats that have already been projected. */
8
- export declare function splatViewportUniforms(uniforms: Uniforms, camera: THREE.Camera): {
9
- renderSize: Node<"vec2">;
10
- viewportOrigin: Node<"vec2">;
12
+ export declare function splatViewportUniforms(
13
+ uniforms: Uniforms,
14
+ camera: THREE.Camera,
15
+ ): {
16
+ renderSize: Node<"vec2">;
17
+ viewportOrigin: Node<"vec2">;
11
18
  };
12
- export declare function splatViewUniforms(uniforms: Uniforms, camera: THREE.Camera): Omit<ProjectionView, "projectionMatrix"> & {
13
- viewportOrigin: Node<"vec2">;
19
+ export declare function splatViewUniforms(
20
+ uniforms: Uniforms,
21
+ camera: THREE.Camera,
22
+ ): ProjectionView & {
23
+ viewportOrigin: Node<"vec2">;
14
24
  };
@@ -1,91 +1,91 @@
1
- import * as THREE from "three";
1
+ import type * as THREE from "three";
2
2
  export type Uniforms = Record<string, THREE.IUniform>;
3
3
  export declare const ORDERING_TEXTURE_WIDTH = 4096;
4
4
  export declare const SPLATS_PER_ORDERING_ROW: number;
5
5
  export declare const emptyOrdering: THREE.DataTexture;
6
6
  export declare const DEFAULT_MIN_ALPHA: number;
7
7
  export declare function makeSplatUniforms(): {
8
- renderSize: {
9
- value: THREE.Vector2;
10
- };
11
- viewportOrigin: {
12
- value: THREE.Vector2;
13
- };
14
- renderOrigin: {
15
- value: THREE.Vector3;
16
- };
17
- near: {
18
- value: number;
19
- };
20
- far: {
21
- value: number;
22
- };
23
- renderToViewQuat: {
24
- value: THREE.Quaternion;
25
- };
26
- renderToViewPos: {
27
- value: THREE.Vector3;
28
- };
29
- renderToViewScale: {
30
- value: number;
31
- };
32
- maxStdDev: {
33
- value: number;
34
- };
35
- minPixelRadius: {
36
- value: number;
37
- };
38
- minAlpha: {
39
- value: number;
40
- };
41
- edgeFade: {
42
- value: THREE.Vector2;
43
- };
44
- preBlurAmount: {
45
- value: number;
46
- };
47
- blurAmount: {
48
- value: number;
49
- };
50
- clipXY: {
51
- value: number;
52
- };
53
- focalAdjustment: {
54
- value: number;
55
- };
56
- encodeLinear: {
57
- value: boolean;
58
- };
59
- splatCount: {
60
- value: number;
61
- };
62
- ordering: {
63
- type: string;
64
- value: THREE.DataTexture;
65
- };
66
- splats: {
67
- type: string;
68
- value: THREE.Texture<unknown, THREE.TextureEventMap>;
69
- };
70
- splats2: {
71
- type: string;
72
- value: THREE.Texture<unknown, THREE.TextureEventMap>;
73
- };
74
- stochasticSeeds: {
75
- type: string;
76
- value: THREE.Texture<unknown, THREE.TextureEventMap>;
77
- };
78
- stochasticNoise: {
79
- value: THREE.DataTexture;
80
- };
81
- stochasticSample: {
82
- value: number;
83
- };
84
- stochastic: {
85
- value: boolean;
86
- };
87
- stochasticOrdering: {
88
- value: boolean;
89
- };
8
+ renderSize: {
9
+ value: THREE.Vector2;
10
+ };
11
+ viewportOrigin: {
12
+ value: THREE.Vector2;
13
+ };
14
+ renderOrigin: {
15
+ value: THREE.Vector3;
16
+ };
17
+ near: {
18
+ value: number;
19
+ };
20
+ far: {
21
+ value: number;
22
+ };
23
+ renderToViewQuat: {
24
+ value: THREE.Quaternion;
25
+ };
26
+ renderToViewPos: {
27
+ value: THREE.Vector3;
28
+ };
29
+ renderToViewScale: {
30
+ value: number;
31
+ };
32
+ maxStdDev: {
33
+ value: number;
34
+ };
35
+ minPixelRadius: {
36
+ value: number;
37
+ };
38
+ minAlpha: {
39
+ value: number;
40
+ };
41
+ edgeFade: {
42
+ value: THREE.Vector2;
43
+ };
44
+ preBlurAmount: {
45
+ value: number;
46
+ };
47
+ blurAmount: {
48
+ value: number;
49
+ };
50
+ clipXY: {
51
+ value: number;
52
+ };
53
+ focalAdjustment: {
54
+ value: number;
55
+ };
56
+ encodeLinear: {
57
+ value: boolean;
58
+ };
59
+ splatCount: {
60
+ value: number;
61
+ };
62
+ ordering: {
63
+ type: string;
64
+ value: THREE.DataTexture;
65
+ };
66
+ splats: {
67
+ type: string;
68
+ value: THREE.Texture<unknown, THREE.TextureEventMap>;
69
+ };
70
+ splats2: {
71
+ type: string;
72
+ value: THREE.Texture<unknown, THREE.TextureEventMap>;
73
+ };
74
+ stochasticSeeds: {
75
+ type: string;
76
+ value: THREE.Texture<unknown, THREE.TextureEventMap>;
77
+ };
78
+ stochasticNoise: {
79
+ value: THREE.DataTexture;
80
+ };
81
+ stochasticSample: {
82
+ value: number;
83
+ };
84
+ stochastic: {
85
+ value: boolean;
86
+ };
87
+ stochasticOrdering: {
88
+ value: boolean;
89
+ };
90
90
  };
91
91
  export declare function makeGenerateUniforms(): Uniforms;
@@ -1,91 +1,91 @@
1
- import * as THREE from "three";
1
+ import type * as THREE from "three";
2
2
  export type Uniforms = Record<string, THREE.IUniform>;
3
3
  export declare const ORDERING_TEXTURE_WIDTH = 4096;
4
4
  export declare const SPLATS_PER_ORDERING_ROW: number;
5
5
  export declare const emptyOrdering: THREE.DataTexture;
6
6
  export declare const DEFAULT_MIN_ALPHA: number;
7
7
  export declare function makeSplatUniforms(): {
8
- renderSize: {
9
- value: THREE.Vector2;
10
- };
11
- viewportOrigin: {
12
- value: THREE.Vector2;
13
- };
14
- renderOrigin: {
15
- value: THREE.Vector3;
16
- };
17
- near: {
18
- value: number;
19
- };
20
- far: {
21
- value: number;
22
- };
23
- renderToViewQuat: {
24
- value: THREE.Quaternion;
25
- };
26
- renderToViewPos: {
27
- value: THREE.Vector3;
28
- };
29
- renderToViewScale: {
30
- value: number;
31
- };
32
- maxStdDev: {
33
- value: number;
34
- };
35
- minPixelRadius: {
36
- value: number;
37
- };
38
- minAlpha: {
39
- value: number;
40
- };
41
- edgeFade: {
42
- value: THREE.Vector2;
43
- };
44
- preBlurAmount: {
45
- value: number;
46
- };
47
- blurAmount: {
48
- value: number;
49
- };
50
- clipXY: {
51
- value: number;
52
- };
53
- focalAdjustment: {
54
- value: number;
55
- };
56
- encodeLinear: {
57
- value: boolean;
58
- };
59
- splatCount: {
60
- value: number;
61
- };
62
- ordering: {
63
- type: string;
64
- value: THREE.DataTexture;
65
- };
66
- splats: {
67
- type: string;
68
- value: THREE.Texture<unknown, THREE.TextureEventMap>;
69
- };
70
- splats2: {
71
- type: string;
72
- value: THREE.Texture<unknown, THREE.TextureEventMap>;
73
- };
74
- stochasticSeeds: {
75
- type: string;
76
- value: THREE.Texture<unknown, THREE.TextureEventMap>;
77
- };
78
- stochasticNoise: {
79
- value: THREE.DataTexture;
80
- };
81
- stochasticSample: {
82
- value: number;
83
- };
84
- stochastic: {
85
- value: boolean;
86
- };
87
- stochasticOrdering: {
88
- value: boolean;
89
- };
8
+ renderSize: {
9
+ value: THREE.Vector2;
10
+ };
11
+ viewportOrigin: {
12
+ value: THREE.Vector2;
13
+ };
14
+ renderOrigin: {
15
+ value: THREE.Vector3;
16
+ };
17
+ near: {
18
+ value: number;
19
+ };
20
+ far: {
21
+ value: number;
22
+ };
23
+ renderToViewQuat: {
24
+ value: THREE.Quaternion;
25
+ };
26
+ renderToViewPos: {
27
+ value: THREE.Vector3;
28
+ };
29
+ renderToViewScale: {
30
+ value: number;
31
+ };
32
+ maxStdDev: {
33
+ value: number;
34
+ };
35
+ minPixelRadius: {
36
+ value: number;
37
+ };
38
+ minAlpha: {
39
+ value: number;
40
+ };
41
+ edgeFade: {
42
+ value: THREE.Vector2;
43
+ };
44
+ preBlurAmount: {
45
+ value: number;
46
+ };
47
+ blurAmount: {
48
+ value: number;
49
+ };
50
+ clipXY: {
51
+ value: number;
52
+ };
53
+ focalAdjustment: {
54
+ value: number;
55
+ };
56
+ encodeLinear: {
57
+ value: boolean;
58
+ };
59
+ splatCount: {
60
+ value: number;
61
+ };
62
+ ordering: {
63
+ type: string;
64
+ value: THREE.DataTexture;
65
+ };
66
+ splats: {
67
+ type: string;
68
+ value: THREE.Texture<unknown, THREE.TextureEventMap>;
69
+ };
70
+ splats2: {
71
+ type: string;
72
+ value: THREE.Texture<unknown, THREE.TextureEventMap>;
73
+ };
74
+ stochasticSeeds: {
75
+ type: string;
76
+ value: THREE.Texture<unknown, THREE.TextureEventMap>;
77
+ };
78
+ stochasticNoise: {
79
+ value: THREE.DataTexture;
80
+ };
81
+ stochasticSample: {
82
+ value: number;
83
+ };
84
+ stochastic: {
85
+ value: boolean;
86
+ };
87
+ stochasticOrdering: {
88
+ value: boolean;
89
+ };
90
90
  };
91
91
  export declare function makeGenerateUniforms(): Uniforms;
@@ -1,17 +1,33 @@
1
- import { GaussianSplatCompatibleRenderer } from '../rendererUtils.cjs';
2
- import { Uniforms } from '../uniforms.cjs';
3
- import * as THREE from "three";
1
+ import type * as THREE from "three";
2
+ import type { GaussianSplatCompatibleRenderer } from "../rendererUtils.cjs";
3
+ import type { Uniforms } from "../uniforms.cjs";
4
4
  /** Sorted rendering needs no seed layer; stochastic draws read one per Splat. */
5
- export declare function createWebGLAccumulatorTarget(width: number, height: number, depth: number, stochasticSeeds: boolean): THREE.WebGLArrayRenderTarget;
5
+ export declare function createWebGLAccumulatorTarget(
6
+ width: number,
7
+ height: number,
8
+ depth: number,
9
+ stochasticSeeds: boolean,
10
+ ): THREE.WebGLArrayRenderTarget;
6
11
  /** Whether an accumulator target stores stochastic sampling seeds. */
7
- export declare function hasStochasticSeeds(target: THREE.WebGLArrayRenderTarget): boolean;
12
+ export declare function hasStochasticSeeds(
13
+ target: THREE.WebGLArrayRenderTarget,
14
+ ): boolean;
8
15
  export declare function getWebGLGenerateUniforms(): Uniforms;
9
- export declare function generateWebGLAccumulator(options: AccumulatorRenderOptions<THREE.WebGLRenderer>): void;
10
- export type AccumulatorRenderOptions<Renderer extends GaussianSplatCompatibleRenderer = GaussianSplatCompatibleRenderer> = {
11
- renderer: Renderer;
12
- target: THREE.WebGLArrayRenderTarget;
13
- base: number;
14
- count: number;
16
+ export declare function generateWebGLAccumulator(
17
+ options: AccumulatorRenderOptions<THREE.WebGLRenderer>,
18
+ ): void;
19
+ export type AccumulatorRenderOptions<
20
+ Renderer extends
21
+ GaussianSplatCompatibleRenderer = GaussianSplatCompatibleRenderer,
22
+ > = {
23
+ renderer: Renderer;
24
+ target: THREE.WebGLArrayRenderTarget;
25
+ base: number;
26
+ count: number;
15
27
  };
16
28
  /** Draw row-aligned ranges into array layers with either WebGL renderer API. */
17
- export declare function renderAccumulatorLayers({ renderer, target, base, count }: AccumulatorRenderOptions, uniforms: Uniforms, draw: () => void): void;
29
+ export declare function renderAccumulatorLayers(
30
+ { renderer, target, base, count }: AccumulatorRenderOptions,
31
+ uniforms: Uniforms,
32
+ draw: () => void,
33
+ ): void;
@@ -1,17 +1,33 @@
1
- import { GaussianSplatCompatibleRenderer } from '../rendererUtils';
2
- import { Uniforms } from '../uniforms';
3
- import * as THREE from "three";
1
+ import type * as THREE from "three";
2
+ import type { GaussianSplatCompatibleRenderer } from "../rendererUtils.js";
3
+ import type { Uniforms } from "../uniforms.js";
4
4
  /** Sorted rendering needs no seed layer; stochastic draws read one per Splat. */
5
- export declare function createWebGLAccumulatorTarget(width: number, height: number, depth: number, stochasticSeeds: boolean): THREE.WebGLArrayRenderTarget;
5
+ export declare function createWebGLAccumulatorTarget(
6
+ width: number,
7
+ height: number,
8
+ depth: number,
9
+ stochasticSeeds: boolean,
10
+ ): THREE.WebGLArrayRenderTarget;
6
11
  /** Whether an accumulator target stores stochastic sampling seeds. */
7
- export declare function hasStochasticSeeds(target: THREE.WebGLArrayRenderTarget): boolean;
12
+ export declare function hasStochasticSeeds(
13
+ target: THREE.WebGLArrayRenderTarget,
14
+ ): boolean;
8
15
  export declare function getWebGLGenerateUniforms(): Uniforms;
9
- export declare function generateWebGLAccumulator(options: AccumulatorRenderOptions<THREE.WebGLRenderer>): void;
10
- export type AccumulatorRenderOptions<Renderer extends GaussianSplatCompatibleRenderer = GaussianSplatCompatibleRenderer> = {
11
- renderer: Renderer;
12
- target: THREE.WebGLArrayRenderTarget;
13
- base: number;
14
- count: number;
16
+ export declare function generateWebGLAccumulator(
17
+ options: AccumulatorRenderOptions<THREE.WebGLRenderer>,
18
+ ): void;
19
+ export type AccumulatorRenderOptions<
20
+ Renderer extends
21
+ GaussianSplatCompatibleRenderer = GaussianSplatCompatibleRenderer,
22
+ > = {
23
+ renderer: Renderer;
24
+ target: THREE.WebGLArrayRenderTarget;
25
+ base: number;
26
+ count: number;
15
27
  };
16
28
  /** Draw row-aligned ranges into array layers with either WebGL renderer API. */
17
- export declare function renderAccumulatorLayers({ renderer, target, base, count }: AccumulatorRenderOptions, uniforms: Uniforms, draw: () => void): void;
29
+ export declare function renderAccumulatorLayers(
30
+ { renderer, target, base, count }: AccumulatorRenderOptions,
31
+ uniforms: Uniforms,
32
+ draw: () => void,
33
+ ): void;
@@ -1,10 +1,13 @@
1
- import { CPUOrderingUpdate } from '../backend.cjs';
2
- import * as THREE from "three";
1
+ import type * as THREE from "three";
2
+ import type { CPUOrderingUpdate } from "../backend.cjs";
3
3
  /** CPU ordering storage shared by both WebGL backends; uploads stay backend-specific. */
4
4
  export declare class OrderingTexture {
5
- texture: THREE.DataTexture | null;
6
- getCapacity(count: number): number;
7
- get data(): Uint32Array | null;
8
- update({ ordering, activeSplats, requiredCapacity, shrink }: CPUOrderingUpdate, uploadRows: (texture: THREE.DataTexture, rows: number) => void): THREE.DataTexture;
9
- dispose(): void;
5
+ texture: THREE.DataTexture | null;
6
+ getCapacity(count: number): number;
7
+ get data(): Uint32Array | null;
8
+ update(
9
+ { ordering, activeSplats, requiredCapacity, shrink }: CPUOrderingUpdate,
10
+ uploadRows: (texture: THREE.DataTexture, rows: number) => void,
11
+ ): THREE.DataTexture;
12
+ dispose(): void;
10
13
  }
@@ -1,10 +1,13 @@
1
- import { CPUOrderingUpdate } from '../backend';
2
- import * as THREE from "three";
1
+ import type * as THREE from "three";
2
+ import type { CPUOrderingUpdate } from "../backend.js";
3
3
  /** CPU ordering storage shared by both WebGL backends; uploads stay backend-specific. */
4
4
  export declare class OrderingTexture {
5
- texture: THREE.DataTexture | null;
6
- getCapacity(count: number): number;
7
- get data(): Uint32Array | null;
8
- update({ ordering, activeSplats, requiredCapacity, shrink }: CPUOrderingUpdate, uploadRows: (texture: THREE.DataTexture, rows: number) => void): THREE.DataTexture;
9
- dispose(): void;
5
+ texture: THREE.DataTexture | null;
6
+ getCapacity(count: number): number;
7
+ get data(): Uint32Array | null;
8
+ update(
9
+ { ordering, activeSplats, requiredCapacity, shrink }: CPUOrderingUpdate,
10
+ uploadRows: (texture: THREE.DataTexture, rows: number) => void,
11
+ ): THREE.DataTexture;
12
+ dispose(): void;
10
13
  }