@voluma/vlam 0.3.0 → 0.3.2

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 (119) hide show
  1. package/README.md +0 -2
  2. package/dist/chunk-loader-DlNwggfG.js.map +1 -1
  3. package/dist/{index.d.ts → core/index.d.ts} +1 -1
  4. package/dist/{splat-budget.d.ts → core/splat-budget.d.ts} +1 -1
  5. package/dist/{splat-data.d.ts → core/splat-data.d.ts} +1 -1
  6. package/dist/{splat-mesh-types.d.ts → core/splat-mesh-types.d.ts} +5 -2
  7. package/dist/{effects.d.ts → effects/index.d.ts} +3 -3
  8. package/dist/effects.js.map +1 -1
  9. package/dist/formats/ksplat/parse-ksplat.d.ts +1 -1
  10. package/dist/formats/ksplat.js.map +1 -1
  11. package/dist/formats/lcc/collision-mesh.d.ts +2 -2
  12. package/dist/formats/lcc/collision-partition.d.ts +1 -1
  13. package/dist/formats/lcc/lcc.d.ts +3 -3
  14. package/dist/formats/lcc/lcc2.d.ts +2 -2
  15. package/dist/formats/lcc/parse-lcc.d.ts +1 -1
  16. package/dist/formats/lcc.js.map +1 -1
  17. package/dist/formats/ply/parse-compressed-ply.d.ts +2 -2
  18. package/dist/formats/ply/parse-splat-ply.d.ts +2 -2
  19. package/dist/formats/ply.js.map +1 -1
  20. package/dist/formats/rad/frontier-worker-protocol.d.ts +8 -1
  21. package/dist/formats/rad/index.d.ts +1 -1
  22. package/dist/formats/rad/parse-rad.d.ts +1 -1
  23. package/dist/formats/rad/rad-foveated-source.d.ts +3 -3
  24. package/dist/formats/rad/rad.d.ts +5 -5
  25. package/dist/formats/rad.js.map +1 -1
  26. package/dist/formats/sog/parse-sog.d.ts +2 -2
  27. package/dist/formats/sog.js.map +1 -1
  28. package/dist/formats/splat/parse-splat.d.ts +1 -1
  29. package/dist/formats/splat.js.map +1 -1
  30. package/dist/formats/spz/parse-spz.d.ts +1 -1
  31. package/dist/formats/spz.js.map +1 -1
  32. package/dist/half-float-Cs4FDq8Q.js.map +1 -1
  33. package/dist/index.js +3 -3
  34. package/dist/index.js.map +1 -1
  35. package/dist/{chunk-loader.d.ts → loaders/chunk-loader.d.ts} +2 -2
  36. package/dist/{load-splat-data.d.ts → loaders/load-splat-data.d.ts} +1 -1
  37. package/dist/{load-worker-protocol.d.ts → loaders/load-worker-protocol.d.ts} +2 -2
  38. package/dist/loaders.js.map +1 -1
  39. package/dist/loading-wLo8vRbA.js.map +1 -1
  40. package/dist/lod-scheduler-B0a_uBlv.js.map +1 -1
  41. package/dist/logging-BfPdd7NJ.js.map +1 -1
  42. package/dist/ply-header-B9WllbPg.js.map +1 -1
  43. package/dist/{radix-sorter-R0FCSqKu.js → radix-sorter-BrbUg_CV.js} +2 -2
  44. package/dist/radix-sorter-BrbUg_CV.js.map +1 -0
  45. package/dist/{relighting-CSQF3UcL.js → relighting-Tiwep8yd.js} +302 -294
  46. package/dist/relighting-Tiwep8yd.js.map +1 -0
  47. package/dist/{selection-volume.d.ts → selection/selection-volume.d.ts} +1 -1
  48. package/dist/{splat-partition.d.ts → selection/splat-partition.d.ts} +1 -1
  49. package/dist/selection.js.map +1 -1
  50. package/dist/sh-pack-D5wAe5gg.js.map +1 -1
  51. package/dist/splat-budget-DuVZspPQ.js.map +1 -1
  52. package/dist/splat-data-BZM5dhhx.js.map +1 -1
  53. package/dist/{splat-mesh-aQdcWA6v.js → splat-mesh-CsLOQb08.js} +3 -3
  54. package/dist/splat-mesh-CsLOQb08.js.map +1 -0
  55. package/dist/splat-mesh-types-BZIko-_9.js.map +1 -1
  56. package/dist/{static-lod-splat-mesh.d.ts → static-lod/static-lod-splat-mesh.d.ts} +2 -2
  57. package/dist/{static-lod-worker-protocol.d.ts → static-lod/static-lod-worker-protocol.d.ts} +1 -1
  58. package/dist/{static-lod.d.ts → static-lod/static-lod.d.ts} +1 -1
  59. package/dist/static-lod.js +1 -1
  60. package/dist/static-lod.js.map +1 -1
  61. package/dist/{dataset-source.d.ts → streaming/dataset-source.d.ts} +1 -1
  62. package/dist/{streaming.d.ts → streaming/index.d.ts} +3 -3
  63. package/dist/{lod-source.d.ts → streaming/lod-source.d.ts} +4 -4
  64. package/dist/{streamed-splat-mesh-utils.d.ts → streaming/streamed-splat-mesh-utils.d.ts} +2 -2
  65. package/dist/{streamed-splat-mesh.d.ts → streaming/streamed-splat-mesh.d.ts} +45 -5
  66. package/dist/streaming.js +844 -810
  67. package/dist/streaming.js.map +1 -1
  68. package/dist/{unified-splat-mesh.d.ts → unified/unified-splat-mesh.d.ts} +13 -6
  69. package/dist/{work-buffer-gather.d.ts → unified/work-buffer-gather.d.ts} +5 -5
  70. package/dist/{work-buffer-material.d.ts → unified/work-buffer-material.d.ts} +1 -1
  71. package/dist/unified.js +280 -272
  72. package/dist/unified.js.map +1 -1
  73. package/dist/webgpu-limits-Y3CI_6_6.js.map +1 -1
  74. package/package.json +9 -9
  75. package/dist/radix-sorter-R0FCSqKu.js.map +0 -1
  76. package/dist/relighting-CSQF3UcL.js.map +0 -1
  77. package/dist/splat-mesh-aQdcWA6v.js.map +0 -1
  78. /package/dist/{compute-sorter.d.ts → core/compute-sorter.d.ts} +0 -0
  79. /package/dist/{create-splat-renderer.d.ts → core/create-splat-renderer.d.ts} +0 -0
  80. /package/dist/{depth-of-field.d.ts → core/depth-of-field.d.ts} +0 -0
  81. /package/dist/{half-float.d.ts → core/half-float.d.ts} +0 -0
  82. /package/dist/{logging.d.ts → core/logging.d.ts} +0 -0
  83. /package/dist/{merged-splat-mesh.d.ts → core/merged-splat-mesh.d.ts} +0 -0
  84. /package/dist/{orientation.d.ts → core/orientation.d.ts} +0 -0
  85. /package/dist/{radix-sort.d.ts → core/radix-sort.d.ts} +0 -0
  86. /package/dist/{radix-sorter.d.ts → core/radix-sorter.d.ts} +0 -0
  87. /package/dist/{relighting-pass.d.ts → core/relighting-pass.d.ts} +0 -0
  88. /package/dist/{relighting.d.ts → core/relighting.d.ts} +0 -0
  89. /package/dist/{sh-pack.d.ts → core/sh-pack.d.ts} +0 -0
  90. /package/dist/{sort-scheduler.d.ts → core/sort-scheduler.d.ts} +0 -0
  91. /package/dist/{sort-worker-protocol.d.ts → core/sort-worker-protocol.d.ts} +0 -0
  92. /package/dist/{sorter.d.ts → core/sorter.d.ts} +0 -0
  93. /package/dist/{source-transform.d.ts → core/source-transform.d.ts} +0 -0
  94. /package/dist/{splat-depth-pack.d.ts → core/splat-depth-pack.d.ts} +0 -0
  95. /package/dist/{splat-mesh-material.d.ts → core/splat-mesh-material.d.ts} +0 -0
  96. /package/dist/{splat-mesh-picking.d.ts → core/splat-mesh-picking.d.ts} +0 -0
  97. /package/dist/{splat-mesh-pool.d.ts → core/splat-mesh-pool.d.ts} +0 -0
  98. /package/dist/{splat-mesh.d.ts → core/splat-mesh.d.ts} +0 -0
  99. /package/dist/{splat-modifier-stack.d.ts → core/splat-modifier-stack.d.ts} +0 -0
  100. /package/dist/{splat-modifier.d.ts → core/splat-modifier.d.ts} +0 -0
  101. /package/dist/{splat-query.d.ts → core/splat-query.d.ts} +0 -0
  102. /package/dist/{splat-sort-bounds.d.ts → core/splat-sort-bounds.d.ts} +0 -0
  103. /package/dist/{storage-attribute-mirror.d.ts → core/storage-attribute-mirror.d.ts} +0 -0
  104. /package/dist/{webgpu-limits.d.ts → core/webgpu-limits.d.ts} +0 -0
  105. /package/dist/{worker-sorter.d.ts → core/worker-sorter.d.ts} +0 -0
  106. /package/dist/{xr-view.d.ts → core/xr-view.d.ts} +0 -0
  107. /package/dist/{loaders.d.ts → loaders/index.d.ts} +0 -0
  108. /package/dist/{loading.d.ts → loaders/loading.d.ts} +0 -0
  109. /package/dist/{ply-header.d.ts → loaders/ply-header.d.ts} +0 -0
  110. /package/dist/{selection.d.ts → selection/index.d.ts} +0 -0
  111. /package/dist/{static-lod-entry.d.ts → static-lod/index.d.ts} +0 -0
  112. /package/dist/{budget-governor.d.ts → streaming/budget-governor.d.ts} +0 -0
  113. /package/dist/{camera-budget-governor.d.ts → streaming/camera-budget-governor.d.ts} +0 -0
  114. /package/dist/{chunk-cache-budget.d.ts → streaming/chunk-cache-budget.d.ts} +0 -0
  115. /package/dist/{chunk-fetch-scheduler.d.ts → streaming/chunk-fetch-scheduler.d.ts} +0 -0
  116. /package/dist/{lod-manifest.d.ts → streaming/lod-manifest.d.ts} +0 -0
  117. /package/dist/{lod-scheduler.d.ts → streaming/lod-scheduler.d.ts} +0 -0
  118. /package/dist/{unified.d.ts → unified/index.d.ts} +0 -0
  119. /package/dist/{unified-work-buffer.d.ts → unified/unified-work-buffer.d.ts} +0 -0
@@ -1,11 +1,12 @@
1
1
  import * as THREE from 'three/webgpu';
2
- import { type DepthOfFieldSettings } from './depth-of-field';
3
- import { type RelightingSettings, type RelightingUniforms } from './relighting';
4
- import { SplatMesh } from './splat-mesh';
5
- import type { SplatPickOptions, SplatPickResult } from './splat-mesh';
2
+ import { type DepthOfFieldSettings } from '../core/depth-of-field';
3
+ import { type RelightingSettings, type RelightingUniforms } from '../core/relighting';
4
+ import { SplatMesh } from '../core/splat-mesh';
5
+ import type { SplatPickOptions, SplatPickResult } from '../core/splat-mesh';
6
6
  /** Registration settings for one source in a {@link UnifiedSplatMesh}. */
7
7
  export interface UnifiedSplatSourceOptions {
8
- /** Whole-source opacity applied after its modifier stack. Defaults to `1`. */
8
+ /** Whole-source display opacity applied after gather falloff. Defaults to `1`.
9
+ * Does not change RAD LOD classification or splat shape. */
9
10
  opacity?: number;
10
11
  /** Whether this source contributes to the unified draw. Defaults to `true`. */
11
12
  visible?: boolean;
@@ -149,7 +150,13 @@ export declare class UnifiedSplatMesh extends THREE.Mesh {
149
150
  get droppedSourceCount(): number;
150
151
  /** Number of active splats omitted in the most recent update due to capacity. */
151
152
  get droppedSplatCount(): number;
152
- /** Updates a source's resolved opacity without rebuilding its gather pipeline. */
153
+ /**
154
+ * Sets whole-source display opacity without rebuilding the gather pipeline.
155
+ *
156
+ * This scales the completed fragment after RAD merged-vs-leaf classification
157
+ * and falloff. It must never alter LOD selection or splat shape; hosts such as
158
+ * marker crossfades rely on that. Values `<= 0` skip drawing the source.
159
+ */
153
160
  setSourceOpacity(source: SplatMesh, opacity: number): void;
154
161
  /** Shows or hides a source without changing its residency. */
155
162
  setSourceVisible(source: SplatMesh, visible: boolean): void;
@@ -1,6 +1,6 @@
1
1
  import * as THREE from 'three/webgpu';
2
- import { type SplatShInputs, type Vec3Uniform } from './splat-mesh-material';
3
- import type { SplatModifier } from './splat-modifier';
2
+ import { type SplatShInputs, type Vec3Uniform } from '../core/splat-mesh-material';
3
+ import type { SplatModifier } from '../core/splat-modifier';
4
4
  /**
5
5
  * GPU gather pass for Phase 0 of the unified renderer. It resolves a source
6
6
  * pool's active local centers into a shared world-space storage buffer. The
@@ -12,7 +12,7 @@ import type { SplatModifier } from './splat-modifier';
12
12
  /** Shared GPU storage for every gathered source in one unified frame. */
13
13
  export declare class WorkBuffer {
14
14
  readonly capacity: number;
15
- /** World-space center xyz; w is the drawable flag (1 draw, 0 modifier-hidden). */
15
+ /** World-space center xyz; w is display opacity (`visibility × source opacity ×` RAD modifier ratio). */
16
16
  readonly centers: THREE.StorageBufferAttribute;
17
17
  /** Resolved color and opacity per work slot. */
18
18
  readonly colors: THREE.StorageBufferAttribute;
@@ -86,8 +86,8 @@ export declare class WorkBufferGather {
86
86
  srgbOutput?: boolean;
87
87
  /**
88
88
  * Source stores Spark LOD alpha (`alpha ÷ 2`, `.rad`). Recover the full
89
- * `alpha ∈ [0,2]` here so the shared draw material sees one convention;
90
- * `alpha > 1` then marks a merged node (see `createWorkBufferMaterial`).
89
+ * `alpha ∈ [0,2]` into `colors.a` from the *original* texture channel so the
90
+ * shared draw material can classify merged vs leaf without seeing fades.
91
91
  */
92
92
  lodAlpha?: boolean;
93
93
  /** Reuse one target across all source gather passes. */
@@ -1,5 +1,5 @@
1
1
  import * as THREE from 'three/webgpu';
2
- import type { FloatUniform, Vec2Uniform } from './splat-mesh-material';
2
+ import type { FloatUniform, Vec2Uniform } from '../core/splat-mesh-material';
3
3
  /**
4
4
  * Creates the unified EWA draw material for gathered world-space splats.
5
5
  *