@plasius/gpu-lighting 0.2.4 → 0.2.6

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/CHANGELOG.md CHANGED
@@ -20,19 +20,33 @@ The format is based on **[Keep a Changelog](https://keepachangelog.com/en/1.1.0/
20
20
  - **Security**
21
21
  - (placeholder)
22
22
 
23
- ## [0.2.4] - 2026-06-14
23
+ ## [0.2.6] - 2026-06-16
24
24
 
25
25
  - **Added**
26
- - (placeholder)
26
+ - Added concrete volumetric WGSL kernels for `volumetricShadow` and
27
+ `froxelIntegrate`, covering froxel shadow history plus scattering/extinction
28
+ integration for the published realtime and reference profiles.
29
+ - Added concrete HDRI/IBL WGSL kernels for `irradianceConvolution`,
30
+ `specularPrefilter`, and `brdfLut`.
31
+ - Added a renderer-aligned `wavefront` lighting technique with concrete
32
+ WGSL jobs for terminal radiance accumulation and continuation scattering.
33
+ - Added `createWavefrontLightingPlan()`,
34
+ `evaluateWavefrontTerminalRadiance()`, and
35
+ `evaluateWavefrontContinuationEvent()` so downstream packages and tests can
36
+ validate emissive-hit, environment-hit, miss-darkening, reflection,
37
+ refraction, and transparency behavior without reimplementing the contract.
27
38
 
28
39
  - **Changed**
29
- - (placeholder)
40
+ - README now documents the delivered volumetrics and HDRI kernel scope with
41
+ technique-level descriptions instead of leaving those exported jobs implied.
42
+ - Eames capture helpers now resolve workspace roots correctly from both
43
+ ordinary repo checkouts and `git worktree` paths.
30
44
 
31
45
  - **Fixed**
32
- - (placeholder)
33
-
34
- - **Security**
35
- - (placeholder)
46
+ - Package tests now fail if any exported `hybrid`, `volumetrics`, or `hdri`
47
+ job regresses to placeholder text or an empty/no-op `process_job` body.
48
+ - Eames asset-path and capture-bridge tests are now worktree-safe instead of
49
+ assuming the package always lives under a literal `/gpu-lighting/` path.
36
50
 
37
51
  ## [0.2.2] - 2026-06-11
38
52
 
@@ -461,7 +475,7 @@ The format is based on **[Keep a Changelog](https://keepachangelog.com/en/1.1.0/
461
475
  [0.1.16]: https://github.com/Plasius-LTD/gpu-lighting/releases/tag/v0.1.16
462
476
  [0.1.17]: https://github.com/Plasius-LTD/gpu-lighting/releases/tag/v0.1.17
463
477
  [0.1.19]: https://github.com/Plasius-LTD/gpu-lighting/releases/tag/v0.1.19
464
- [Unreleased]: https://github.com/Plasius-LTD/gpu-lighting/compare/v0.2.4...HEAD
478
+ [Unreleased]: https://github.com/Plasius-LTD/gpu-lighting/compare/v0.2.6...HEAD
465
479
  [0.2.0]: https://github.com/Plasius-LTD/gpu-lighting/releases/tag/v0.2.0
466
480
  [0.2.2]: https://github.com/Plasius-LTD/gpu-lighting/releases/tag/v0.2.2
467
- [0.2.4]: https://github.com/Plasius-LTD/gpu-lighting/releases/tag/v0.2.4
481
+ [0.2.6]: https://github.com/Plasius-LTD/gpu-lighting/releases/tag/v0.2.6
package/README.md CHANGED
@@ -162,6 +162,43 @@ const profileManifest = getLightingProfileWorkerManifest("realtime");
162
162
  console.log(profileManifest.jobs.map((job) => job.worker.jobType));
163
163
  ```
164
164
 
165
+ ## Wavefront Lighting Contracts
166
+
167
+ `@plasius/gpu-lighting` now also publishes a renderer-aligned `wavefront`
168
+ technique for the first active-ray lighting slice. It keeps the queue layout,
169
+ buffer contract names, and terminal-hit policy aligned with
170
+ `@plasius/gpu-renderer` while owning the lighting-specific WGSL for terminal
171
+ radiance accumulation and continuation scattering.
172
+
173
+ ```js
174
+ import {
175
+ createWavefrontLightingPlan,
176
+ evaluateWavefrontTerminalRadiance,
177
+ loadLightingTechniqueWorkerBundle,
178
+ } from "@plasius/gpu-lighting";
179
+
180
+ const plan = createWavefrontLightingPlan({
181
+ maxDepth: 6,
182
+ queueCapacity: 4096,
183
+ explicitLightSampling: true,
184
+ });
185
+
186
+ const bundle = await loadLightingTechniqueWorkerBundle("wavefront");
187
+ const emissive = evaluateWavefrontTerminalRadiance({
188
+ hitType: "emissive",
189
+ throughput: [0.5, 0.5, 0.5],
190
+ emission: [8, 6, 4],
191
+ });
192
+
193
+ console.log(plan.requiredRendererPassOrder);
194
+ console.log(bundle.jobs.map((job) => job.label));
195
+ console.log(emissive.radiance);
196
+ ```
197
+
198
+ This slice keeps emissive hits, environment hits, and environment-miss dark
199
+ fallbacks on the lighting package surface without reintroducing a depth-first
200
+ shader dependency into the renderer-owned wavefront queue model.
201
+
165
202
  ## Distance-Banded Lighting
166
203
 
167
204
  ```js
@@ -325,6 +362,11 @@ The package now ships concrete WGSL contracts for:
325
362
  - `hybrid.screenTrace`: first-hit reflection tracing over the shared hybrid scene contracts
326
363
  - `hybrid.radianceCache`: irradiance history updates for cache-backed indirect reuse
327
364
  - `hybrid.finalGather`: cache + trace composition with temporal reuse for the hybrid GI path
365
+ - `volumetrics.volumetricShadow`: slice-aware Beer-Lambert shadow history for fog and shafts
366
+ - `volumetrics.froxelIntegrate`: froxel scattering/extinction integration with temporal stability
367
+ - `hdri.irradianceConvolution`: cosine-weighted diffuse environment convolution
368
+ - `hdri.specularPrefilter`: roughness-aware environment prefiltering for glossy IBL
369
+ - `hdri.brdfLut`: split-sum BRDF LUT integration for image-based lighting
328
370
  - `pathtracer.pathTrace`: analytic scene tracing, bounce integration, and sky fallback
329
371
  - `pathtracer.accumulate`: progressive history resolve with reset handling
330
372
  - `pathtracer.denoise`: spatial-temporal bilateral filtering for reference previews
@@ -354,12 +396,12 @@ graph.
354
396
  - `accumulate`
355
397
  - `denoise`
356
398
  - `volumetrics`
357
- - `froxelIntegrate`
358
- - `volumetricShadow`
399
+ - `froxelIntegrate`: accumulates participating-media scattering/extinction per froxel
400
+ - `volumetricShadow`: resolves directional shadow transmittance history per froxel
359
401
  - `hdri`
360
- - `irradianceConvolution`
361
- - `specularPrefilter`
362
- - `brdfLut`
402
+ - `irradianceConvolution`: builds diffuse irradiance from the environment source
403
+ - `specularPrefilter`: builds roughness-aware glossy environment mip data
404
+ - `brdfLut`: integrates the split-sum BRDF lookup surface for IBL
363
405
 
364
406
  ## Demo
365
407