@displayxr/inline3d 1.42.0 → 1.43.0

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
@@ -5,6 +5,55 @@ entry points (`.`, `./three`) are frozen for 1.x, while the **scene subpaths** (
5
5
  `./splat`, `./model`) are a preview tier whose options may change in any release. Entries below say
6
6
  which tier they touch, because that is what tells you whether an upgrade can move your pixels.
7
7
 
8
+ ## 1.43.0 — 2026-10-12
9
+
10
+ ### `./splat` (PlayCanvas) — `warmEffect`: no frozen frame when a reveal first plays
11
+
12
+ - **`handle.warmEffect(name, opts)`** compiles the program `playEffect(name, opts)` will need and
13
+ links it in idle time (`KHR_parallel_shader_compile`), so the effect's first frame no longer
14
+ blocks on the link. On a Windows panel `'assemble'` froze for 250–300 ms on every cold session.
15
+ Resolves `true` once warm, `false` when nothing could be warmed (entity scope, custom fragment
16
+ stage). It is also on the deferred handle, so it can be called right after `addSplat`.
17
+ - **`prepareSource(src, { warmEffects: [...] })`** warms effects you will play once that asset is
18
+ in (names or `{ name, opts }`), after its load and its transition pre-warm.
19
+ - docs/splat-effects.md §Warming an effect.
20
+
21
+ ### `./splat` + `./model` (PlayCanvas) — `warmEntity`: a glTF's first draw without the freeze
22
+
23
+ - **`handle.warmEntity(entity)`** (splat handle: content under `handle.engine.root`; model
24
+ handle: defaults to the model) compiles the entity's lit programs in idle time through the
25
+ renderer's own `MeshInstance.getShaderInstance`, with its exact pass, light hash, lights, view
26
+ format and the eye cameras' live shader params. It then links them off the frame
27
+ (`KHR_parallel_shader_compile`, time-sliced issuing), so the first draw no longer blocks.
28
+ PlayCanvas links every new lit program synchronously on first draw: a 13-material car froze
29
+ 0.8–0.95 s on a panel. On Khronos CarConcept (13 programs), headless: 0 links on show (from 13),
30
+ worst frame 20 ms (from 102 ms with the shader cache warm, 2.69 s cold), pixel-identical. Spark
31
+ and three resolve 0. docs/playcanvas-adapter.md §warmEntity.
32
+
33
+ ## 1.42.1 — 2026-10-12
34
+
35
+ Touches the **preview tier** (`./call`, `./camera`) only: auto-convergence and the stereo-tile depth
36
+ cursor are steadier on a wide-baseline camera. No API change.
37
+
38
+ ### Auto-convergence holds the face on a 120 mm-baseline camera
39
+
40
+ - Found on the SR laptop's built-in stereo camera (120 mm baseline, grayscale): auto-convergence
41
+ flipped between the face and the background. On a dim frame the sparse block grid (1.5 blocks
42
+ apart) matched ~9 blocks, 3-4 on the face, too few to form the subject mode, so the background
43
+ won. The grid is now one block apart (~36 blocks: the face on every frame, ±1 px instead of ±4),
44
+ and a mode's bin widens with its disparity (10%), so a near face's own relief stays one group.
45
+ - The convergence shift may now reach 20% of the eye width (was 12%): that camera sees a face at
46
+ 0.6 m at ~22% of the eye width, ~11% per eye, which left no room to lean in.
47
+
48
+ ### Stereo-tile depth cursor: steady at foreground edges
49
+
50
+ - The footprint was matched from the left eye's image only. At a foreground edge the left eye's
51
+ block can sit on the subject while the right eye's sits on the background, and the arrow jumped
52
+ out and back frame to frame. Each footprint point is now matched from BOTH eyes, every match must
53
+ pass a left-right consistency check (matched back, it lands within 1 px of where it started), and
54
+ the nearest value counts only when a second sample agrees; otherwise the arrow stays on the
55
+ glass. Over 20 live frames across a face edge: 200 → 35 large jumps.
56
+
8
57
  ## 1.42.0 — 2026-10-11
9
58
 
10
59
  Touches the **core** `./three` (`DepthCursor`) and the **preview tier** (`./model`, `./splat`,