@plasius/gpu-renderer 0.2.48 → 0.2.50

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
@@ -11,6 +11,38 @@ All notable changes to this project will be documented in this file.
11
11
 
12
12
  ## [Unreleased]
13
13
 
14
+ - **Added**
15
+ - (placeholder)
16
+
17
+ - **Changed**
18
+ - (placeholder)
19
+
20
+ - **Fixed**
21
+ - (placeholder)
22
+
23
+ - **Security**
24
+ - (placeholder)
25
+
26
+ ## [0.2.50] - 2026-10-18
27
+
28
+ - Fix fixed-wavefront dielectric queue overflow and concurrent per-path writes by selecting one probability-weighted continuation; preserve total internal reflection energy and avoid spurious metal refraction siblings.
29
+
30
+ - **Added**
31
+ - (placeholder)
32
+
33
+ - **Changed**
34
+ - (placeholder)
35
+
36
+ - **Fixed**
37
+ - (placeholder)
38
+
39
+ - **Security**
40
+ - (placeholder)
41
+
42
+ ## [0.2.49] - 2026-10-14
43
+
44
+ - Opt-in progressive wavefront accumulation of linear radiance, sample-weighted history, explicit reset and camera/scene invalidation for still-frame inspection.
45
+
14
46
  - **Added**
15
47
  - (placeholder)
16
48
 
@@ -1202,3 +1234,5 @@ All notable changes to this project will be documented in this file.
1202
1234
  [0.2.46]: https://github.com/Plasius-LTD/gpu-renderer/releases/tag/v0.2.46
1203
1235
  [0.2.47]: https://github.com/Plasius-LTD/gpu-renderer/releases/tag/v0.2.47
1204
1236
  [0.2.48]: https://github.com/Plasius-LTD/gpu-renderer/releases/tag/v0.2.48
1237
+ [0.2.49]: https://github.com/Plasius-LTD/gpu-renderer/releases/tag/v0.2.49
1238
+ [0.2.50]: https://github.com/Plasius-LTD/gpu-renderer/releases/tag/v0.2.50
package/README.md CHANGED
@@ -231,9 +231,13 @@ console.log(plan.wavefront.queueLayout.strategy);
231
231
  Wavefront materials support authored `KHR_materials_*` factors and extension
232
232
  textures, bounded nested media, Beer-Lambert attenuation, and reference
233
233
  transport helpers for reflected/transmitted branching and spectral dispersion.
234
- GPU rays carry up to four nested media and enqueue at most two dielectric
235
- continuations per hit; deeper nesting and full spectral rendering remain
236
- bounded by those explicit limits.
234
+ GPU rays carry up to four medium identifiers and enqueue one selected
235
+ continuation per hit. Dielectric lobes are weighted by their selection
236
+ probability; total internal reflection retains unit throughput. The standalone
237
+ CPU reference helper can describe both branches, but the fixed GPU path never
238
+ enqueues an untracked sibling into its tile-sized queue. Physically qualified
239
+ nested media, rough dielectric transport and full spectral rendering remain
240
+ separate work. See [the Amber correction](docs/amber-transport-correction.md).
237
241
 
238
242
  ```js
239
243
  import {
@@ -981,3 +985,9 @@ See [ADR-0036](docs/adrs/adr-0036-in-scene-material-inspection.md).
981
985
  ### Shared material-study runtime
982
986
 
983
987
  Production demo helpers and their regression tests now live in `@plasius/gpu-shared/material-study`. The renderer exposes `validateNativeSurfaceMaterials(materials)` so authoring and GPU creation use identical validation without allocation. See [ADR-0037](docs/adrs/adr-0037-shared-material-study-runtime.md).
988
+
989
+ ## Progressive still-frame refinement
990
+
991
+ Create the wavefront renderer with `progressive: true` to retain linear radiance across frames. `samplesPerPixel` at creation is the maximum batch capacity; pass a smaller value to `renderOnce({ samplesPerPixel })` or `renderFrame({ samplesPerPixel })`. Submit batches serially. `renderFrame()` awaits completion by default; with `renderOnce()`, await `renderer.device.queue.onSubmittedWorkDone()` before reporting completed samples. `getSnapshot().accumulatedSamplesPerPixel` reports submitted history samples.
992
+
993
+ Camera or scene updates reset history automatically; `resetAccumulation()` also discards it without reallocating. Do not call `updateCamera()` between refinement passes unless the view changed. Progressive mode uses independent frame seeds, overriding static-frame stable sample routing. Denoising is applied after accumulation. Leave `progressive` unset for the existing independent-frame path. See [ADR 0038](docs/adrs/adr-0038-progressive-linear-radiance.md) for memory costs and host rollout responsibilities.