hilo3d 2.0.0-alpha.4 → 2.0.0-alpha.5
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 +112 -12
- package/README.md +1 -0
- package/README_ZH.md +1 -0
- package/dist/Hilo3d.d.ts +648 -1470
- package/dist/Hilo3d.d.ts.map +1 -1
- package/dist/Hilo3d.js +17511 -20555
- package/dist/Hilo3d.js.map +1 -1
- package/dist/{web_naga-B71-0Gwu.js → web_naga-DucvGikP.js} +2 -2
- package/dist/{web_naga-B71-0Gwu.js.map → web_naga-DucvGikP.js.map} +1 -1
- package/package.json +29 -15
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
### Breaking changes
|
|
4
4
|
|
|
5
|
+
- Move skin history validity from the removed `SkinningBlock.u_skinHistoryParams.x` to
|
|
6
|
+
`ModelBlock.u_modelHistoryParams.y`. The two 128-joint palettes now occupy exactly 16,384 bytes,
|
|
7
|
+
fitting the WebGL2 minimum uniform-block capacity. Custom shaders and block producers must use the
|
|
8
|
+
new location; model and skin validity remain independent.
|
|
9
|
+
|
|
5
10
|
- Integrate typed particle parameters into emission and spawn initialization across CPU, stateless,
|
|
6
11
|
and stateful WebGPU command generation; runtime value changes no longer require recompilation.
|
|
7
12
|
Apply `ParticleBudgetManager` decisions directly to live capacity, spawn rate, sorting, soft
|
|
@@ -26,16 +31,111 @@
|
|
|
26
31
|
temporal reactivity for the fused GPU Scene depth/motion pass.
|
|
27
32
|
- Expand the fixed Camera/Model/Skinning/Morph/Instance std140 ABI with current/previous transforms,
|
|
28
33
|
stable and jittered camera projections, render origins, and per-domain history/depth flags. Custom
|
|
29
|
-
shaders that redeclare built-in blocks must use the updated field order and capacities.
|
|
34
|
+
shaders that redeclare built-in blocks must use the updated field order and capacities. Add
|
|
35
|
+
`u_modelLayerParams` to `ModelBlock` so direct and GPU Scene clustered shading share the uint32
|
|
36
|
+
receiver light-layer contract.
|
|
30
37
|
- Make forward feature color encoding explicit. `replaceColor()` now requires `linear` or `srgb`,
|
|
31
38
|
and the default Forward pipeline always routes surface presentation through the Render Graph so
|
|
32
39
|
the final output transfer is owned by the output stage rather than individual materials.
|
|
33
40
|
- Replace the Forward-specific color-encoding type with the shared `RenderColorEncoding`. Manual
|
|
34
41
|
RenderTarget presentation now accepts an explicit `colorEncoding`; linear inputs receive the final
|
|
35
42
|
sRGB transfer, while display-transformed `srgb` inputs are preserved without a second conversion.
|
|
43
|
+
- Make `ClusteredForwardPlusPipelineFactory.create()` asynchronous so renderer initialization can
|
|
44
|
+
finish its declared material-variant warmup before the first frame.
|
|
36
45
|
|
|
37
46
|
### Changes
|
|
38
47
|
|
|
48
|
+
- Add tag-driven npm releases: the release command creates and pushes an annotated tag matching all
|
|
49
|
+
three package versions, then GitHub Actions validates the tagged commit and publishes `hilo3d`,
|
|
50
|
+
`@hilo/addon-particle`, and `@hilo/addon-physics` under one dist-tag through npm Trusted
|
|
51
|
+
Publishing. Addon peer dependencies use the exact synchronized core version, and safe workflow
|
|
52
|
+
retries skip package versions that are already present in npm.
|
|
53
|
+
- Allow local Playwright release validation to select an unoccupied loopback port with
|
|
54
|
+
`HILO3D_PLAYWRIGHT_PORT`; CI retains the deterministic default port.
|
|
55
|
+
- Make `site:build` own the complete public API declaration/check prerequisite for the core and both
|
|
56
|
+
addon packages. The Pages and CI preflight workflows now invoke self-contained `site:build` and
|
|
57
|
+
`lint` commands, while the Node-side repository preflight prevents clean-checkout jobs from
|
|
58
|
+
calling built-only commands without addon declarations.
|
|
59
|
+
- Replace the unenrolled Linux-only RHI performance-rig contract with an auditable Apple M3 Max
|
|
60
|
+
macOS/Metal profile. Require AC power, High Power Mode, a warning-free thermal state, exact
|
|
61
|
+
Node/Playwright/Chromium identity, physical Metal, GPU timers, precise memory, and allocation
|
|
62
|
+
profiling before collection or immutable baseline freezing. Size the release benchmark for a small
|
|
63
|
+
engine with three rounds, 500 timing/GPU frames, bounded one-frame allocation profiles, and a
|
|
64
|
+
single-draw absolute-allocation sentinel while retaining stress allocation data diagnostically.
|
|
65
|
+
Add per-phase progress and abortable browser/heap-profiler waits so a lost response fails
|
|
66
|
+
explicitly instead of hanging a formal run. Keep the large-instancing workload's 640,000-byte
|
|
67
|
+
dynamic budget scoped to instance transforms instead of incorrectly requiring the dynamic-texture
|
|
68
|
+
fixture, and distinguish a persistent shadow caster from steady shadow redraws after the atlas
|
|
69
|
+
cache is warm. Keep the sole churn shadow caster identity stable while cycling all ordinary mesh
|
|
70
|
+
slots, and explicitly budget the two shadow-view redraws caused by scene-child churn. Give the
|
|
71
|
+
depthless MRT/MSAA source workload the same explicit no-depth-write state as its fullscreen
|
|
72
|
+
continuation passes. Count first-complex-frame dynamic shadow invalidation and its final
|
|
73
|
+
linear-to-sRGB surface transfer in the declared steady draw budget. Keep targeted churn smoke
|
|
74
|
+
bounded to one complete ordinary-mesh replacement cycle unless its 10,000-frame tail is explicitly
|
|
75
|
+
requested; formal enrolled-rig capture still completes the full workload.
|
|
76
|
+
- Add the versioned, dependency-aware public Stage System ABI with typed services, transactional
|
|
77
|
+
asynchronous setup, synchronous frame hooks, dynamic leaf installation, and reverse-order
|
|
78
|
+
teardown. Add the separately packaged `@hilo/addon-physics` portable 2D/3D runtime with bounded
|
|
79
|
+
fixed stepping, interpolated Hilo node bindings, bodies, colliders, joints, events, filtered ray
|
|
80
|
+
and shape queries, bounded overlaps, point projection, kinematic character controllers, snapshots,
|
|
81
|
+
debug geometry, diagnostics, and independently importable Rapier 2D/3D adapters. Replace the
|
|
82
|
+
Cannon example and dependency with a Rapier 3D System example.
|
|
83
|
+
- Move the authored particle runtime out of the `hilo3d` entry into the independently tree-shakable
|
|
84
|
+
`@hilo/addon-particle` ESM package. Add a Stage-owned particle runtime and frame budget service,
|
|
85
|
+
route addon rendering through a generic core render-node capability, migrate maintained particle
|
|
86
|
+
examples and package types, and add Rapier material, joint, and 2D sensor showcases.
|
|
87
|
+
|
|
88
|
+
- Rebuild portable GTAO around view-relative dual horizons, projected-normal analytic visible-arc
|
|
89
|
+
integration, depth-derived or hybrid normals, a separately controlled contact lobe, integrated
|
|
90
|
+
bent normals, distance/edge fading, and explicit low/medium/high/ultra budgets. Add logarithmic-
|
|
91
|
+
depth reconstruction, per-camera pass/UBO isolation, closest-depth motion selection, depth/normal
|
|
92
|
+
confidence, variance clipping, vector-space bent-normal filtering, unblurred rejection depth, and
|
|
93
|
+
joint bilateral upsampling. Feed color-aware multi-bounce visibility and bent-cone specular
|
|
94
|
+
visibility into ordinary and Clustered PBR, retune The Silent Dragon, and add a deterministic GTAO
|
|
95
|
+
Acceptance Lab with corner, thin-card, slab, stair, normal-map, dielectric/metal, moving-occluder,
|
|
96
|
+
screen-edge, log-depth, on/off, temporal, and WebGL2/WebGPU parity gates.
|
|
97
|
+
- Upgrade WebGPU high-end SSR with response-aware 8×8 tile masks, coherent prefix compaction,
|
|
98
|
+
indirect stochastic visible-GGX tracing, roughness-adaptive ray budgets, refined depth crossings,
|
|
99
|
+
hit-normal facing validation, and explicit uncertain/backface outcomes. Evaluate receiver- and
|
|
100
|
+
hit-motion-domain history candidates against real previous material/depth state, authored reactive
|
|
101
|
+
masks, YCoCg neighborhood variance and roughness-adaptive sample counts; replace four fixed
|
|
102
|
+
filters with one adaptive bilateral hole-fill and a full-resolution edge-aware resolve. Align
|
|
103
|
+
clearcoat/anisotropy trace lobes with forward IBL, keep fallback removal independent from SSR
|
|
104
|
+
intensity, replace absolute half-float hit UVs with motion/depth state, compress material
|
|
105
|
+
attributes to `rgba8unorm`, prefer `rg11b10ufloat` reflection MRTs when supported, and expose
|
|
106
|
+
mutually exclusive uncertain/backface and history diagnostics alongside active/hit/miss counters.
|
|
107
|
+
Cap compacted active-tile indirect work to a two-dimensional 65,535-wide dispatch, retain
|
|
108
|
+
reflection-response/material identity in temporal history and spatial filtering, and make ordinary
|
|
109
|
+
Forward reflection MRTs reuse the main PBR GTAO visibility and iridescence parameters.
|
|
110
|
+
- Add the first S0 production shadow-cache slice. Stable atlas tiles now use exact light/caster
|
|
111
|
+
snapshots, scissored portable depth clears, per-slice invalidation, submission commit/rollback,
|
|
112
|
+
recovery invalidation, and `RendererDiagnostics.caches.shadowAtlas`; static slices issue no shadow
|
|
113
|
+
pass, while local-light changes redraw only their affected faces.
|
|
114
|
+
- Extend S0 shadows with clustered GPU Scene caster culling and fixed-bucket indirect depth draws;
|
|
115
|
+
receiver-driven local/cascade resolution; deterministic slice budgets and 1/2/4/8-frame CSM
|
|
116
|
+
cadence; and submission-aware 128-pixel page residency with coalesced page-scissored updates that
|
|
117
|
+
avoid replaying the caster queue once per adjacent page. Expose page
|
|
118
|
+
request/update/defer/residency and budget-overflow counts in frame diagnostics.
|
|
119
|
+
- Add opt-in WebGPU Clustered virtual directional shadows through
|
|
120
|
+
`ClusteredForwardPlusPipelineOptions.virtualShadows`: previous-Hi-Z receiver classification,
|
|
121
|
+
atomic GPU request deduplication and deterministic ordering, arbitrary logical-to-physical page
|
|
122
|
+
remapping with LRU eviction, deferred dirty-page retry, per-page GPU caster compact/indirect depth
|
|
123
|
+
draws, and camera-centered directional clipmaps. Double-buffer page tables, residency, and clipmap
|
|
124
|
+
epochs commit only after successful submission; failed frames roll back and device recovery
|
|
125
|
+
reinitializes mappings without CPU request readback. Expose on-demand virtual-shadow diagnostics
|
|
126
|
+
and retain shared CSM fallback for missing pages and non-GPU caster scenes.
|
|
127
|
+
- Complete the WebGPU high-end Clustered Forward+ P0 closure. Globally sorted compatible transparent
|
|
128
|
+
PBR and direct GPU Scene skin, morph, and layered glTF PBR now consume the native storage light
|
|
129
|
+
list, while mixed Transmission/custom/particle transparent queues fail closed to the shared
|
|
130
|
+
Forward path. Add transparent/transmission and isolated GPU-particle reactive, depth-agreement,
|
|
131
|
+
history-resurrection composition; analytic Spot cookie/IES records and uint32 light-layer
|
|
132
|
+
filtering; a public material-variant manifest with asynchronous warmup, transactional runtime
|
|
133
|
+
admission, fixed budgets, and diagnostics; and real WebGPU pixel/UI coverage for rollback, device
|
|
134
|
+
loss, recovery, layered/deformed lighting, particles, and mixed-queue fallback. Fix the stateless
|
|
135
|
+
particle WGSL hash expression for strict browser parser precedence.
|
|
136
|
+
|
|
137
|
+
- Resolve the `hilo3d-game` starter dependency from the npm `next` dist-tag, validate its supported
|
|
138
|
+
2.0 release shape, and pin the resolved concrete version for reproducible installs.
|
|
39
139
|
- Update the standalone `hilo3d-game` skill for immutable material topology, Mesh-owned ordering and
|
|
40
140
|
shadow participation, and the completed portable/WebGPU particle authoring workflow.
|
|
41
141
|
- Normalize managed particle textures through the shared top-left UV boundary for CPU and WebGPU
|
|
@@ -158,17 +258,17 @@
|
|
|
158
258
|
non-black and on/off pixel coverage. Keep the deployed glTF beside its external binary payload,
|
|
159
259
|
and make the site link gate validate nested glTF buffer, image, and extension URIs before publish.
|
|
160
260
|
- Add production WebGPU high-end screen-space reflections to `ClusteredForwardPlusPipelineFactory`.
|
|
161
|
-
The opt-in path adds a strict built-in `material-attributes` `
|
|
162
|
-
ordinary Forward fallback coverage, RG32F min/max Hi-Z, hierarchical coarse-to-fine
|
|
163
|
-
roughness radiance cones, edge/distance/roughness confidence, motion/log-depth temporal
|
|
164
|
-
and confidence-aware depth/normal à-trous filtering before HDR composition and TAA/TAAU.
|
|
165
|
-
disabled path allocation- and pass-free, fail closed without Hi-Z or TemporalAA, and
|
|
166
|
-
across camera cuts/identity changes, resize, discarded frames and device recovery.
|
|
167
|
-
Forward opaque through a `depth-only` fallback prepass before current Hi-Z
|
|
168
|
-
PBR objects are present in both the radiance source and hierarchical depth
|
|
169
|
-
to the public compute storage-texture formats, add the repository-bundled
|
|
170
|
-
the dedicated Afterimage SSR showcase, and cover real WebGPU on/off pixels
|
|
171
|
-
The existing Temporal Observatory remains focused on TAA/TAAU.
|
|
261
|
+
The opt-in path adds a strict built-in `material-attributes` `rgba8unorm` ABI, matching HDR GPU
|
|
262
|
+
Scene MRT and ordinary Forward fallback coverage, RG32F min/max Hi-Z, hierarchical coarse-to-fine
|
|
263
|
+
tracing, roughness radiance cones, edge/distance/roughness confidence, motion/log-depth temporal
|
|
264
|
+
rejection and confidence-aware depth/normal à-trous filtering before HDR composition and TAA/TAAU.
|
|
265
|
+
Keep the disabled path allocation- and pass-free, fail closed without Hi-Z or TemporalAA, and
|
|
266
|
+
reset history across camera cuts/identity changes, resize, discarded frames and device recovery.
|
|
267
|
+
Feed ordinary Forward opaque through a `depth-only` fallback prepass before current Hi-Z
|
|
268
|
+
construction so layered PBR objects are present in both the radiance source and hierarchical depth
|
|
269
|
+
trace. Add `rg32float` to the public compute storage-texture formats, add the repository-bundled
|
|
270
|
+
Khronos Car Concept to the dedicated Afterimage SSR showcase, and cover real WebGPU on/off pixels
|
|
271
|
+
plus GPU validation. The existing Temporal Observatory remains focused on TAA/TAAU.
|
|
172
272
|
- Add the `TemporalAA` Forward feature with native-resolution TAA and fixed-scale TAAU. Built-in
|
|
173
273
|
opaque/masked materials now expose a strict single-sample `rgba16float` motion pass containing
|
|
174
274
|
current-to-previous UV velocity, expected previous logarithmic view depth, and current logarithmic
|
package/README.md
CHANGED
|
@@ -127,6 +127,7 @@ path and compose into the same linear HDR frame.
|
|
|
127
127
|
| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
|
|
128
128
|
| GPU Scene | Dirty object/material databases, previous-frame Hi-Z occlusion, projected-radius LOD, compact visible ranges, and fixed indirect buckets |
|
|
129
129
|
| Clustered Forward+ | Depth-driven 3D clusters, bounded deterministic light allocation, storage PBR, shared directional/spot/point shadows, and LTC area lights |
|
|
130
|
+
| Shadow caching | Stable atlas tiles, exact per-slice invalidation, scissored depth clears, transactional reuse, and recovery-aware diagnostics |
|
|
130
131
|
| Temporal rendering | Motion vectors, authored reactive masks, native TAA, 0.5–1.0 TAAU, and timestamp-driven dynamic resolution |
|
|
131
132
|
| Screen-space lighting | Portable GTAO and SSGI on WebGPU/WebGL 2, plus WebGPU Clustered hierarchical SSR |
|
|
132
133
|
| Volumetrics and weather | Froxel height/local fog, directional/point/spot injection, physical atmosphere LUTs, temporal clouds, and cloud shadows |
|
package/README_ZH.md
CHANGED
|
@@ -123,6 +123,7 @@ Scene 覆盖范围内的兼容 Mesh 会继续走共享 Forward 路径,并合
|
|
|
123
123
|
| ------------------ | ----------------------------------------------------------------------------------------------------- |
|
|
124
124
|
| GPU Scene | 脏对象/材质数据库、previous-frame Hi-Z 遮挡、projected-radius LOD、紧凑可见区间与固定 indirect bucket |
|
|
125
125
|
| Clustered Forward+ | depth-driven 3D cluster、有界且确定性的灯光分配、storage PBR、共享方向光/聚光/点光阴影与 LTC 面光 |
|
|
126
|
+
| 阴影缓存 | 稳定 atlas tile、逐 slice 精确失效、局部深度清理、事务式复用与 recovery-aware 诊断 |
|
|
126
127
|
| 时域渲染 | Motion Vector、authored reactive mask、原生 TAA、0.5–1.0 TAAU 与 timestamp 驱动的动态分辨率 |
|
|
127
128
|
| 屏幕空间光照 | WebGPU/WebGL 2 可移植 GTAO 与 SSGI,以及 WebGPU Clustered hierarchical SSR |
|
|
128
129
|
| 体积与天气 | Froxel 高度雾/局部雾、方向光/点光/聚光注入、物理大气 LUT、时域云与云影 |
|