@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 +23 -9
- package/README.md +47 -5
- package/dist/index.cjs +511 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +499 -0
- package/dist/index.js.map +1 -1
- package/dist/techniques/techniques/hdri/brdf-lut.job.wgsl +70 -2
- package/dist/techniques/techniques/hdri/irradiance-convolution.job.wgsl +91 -2
- package/dist/techniques/techniques/hdri/specular-prefilter.job.wgsl +110 -2
- package/dist/techniques/techniques/volumetrics/froxel-integrate.job.wgsl +105 -2
- package/dist/techniques/techniques/volumetrics/volumetric-shadow.job.wgsl +96 -2
- package/dist/techniques/techniques/wavefront/accumulate-terminal-radiance.job.wgsl +61 -0
- package/dist/techniques/techniques/wavefront/prelude.wgsl +229 -0
- package/dist/techniques/techniques/wavefront/scatter-continuations.job.wgsl +136 -0
- package/package.json +2 -1
- package/src/index.js +535 -0
- package/src/techniques/hdri/brdf-lut.job.wgsl +70 -2
- package/src/techniques/hdri/irradiance-convolution.job.wgsl +91 -2
- package/src/techniques/hdri/specular-prefilter.job.wgsl +110 -2
- package/src/techniques/volumetrics/froxel-integrate.job.wgsl +105 -2
- package/src/techniques/volumetrics/volumetric-shadow.job.wgsl +96 -2
- package/src/techniques/wavefront/accumulate-terminal-radiance.job.wgsl +61 -0
- package/src/techniques/wavefront/prelude.wgsl +229 -0
- package/src/techniques/wavefront/scatter-continuations.job.wgsl +136 -0
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.
|
|
23
|
+
## [0.2.6] - 2026-06-16
|
|
24
24
|
|
|
25
25
|
- **Added**
|
|
26
|
-
-
|
|
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
|
-
-
|
|
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
|
-
-
|
|
33
|
-
|
|
34
|
-
-
|
|
35
|
-
|
|
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.
|
|
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.
|
|
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
|
|