hilo3d 2.0.0-alpha.8 → 2.0.0-alpha.9
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 +143 -0
- package/README.md +26 -6
- package/README_ZH.md +22 -5
- package/dist/Hilo3d.d.ts +1488 -1189
- package/dist/Hilo3d.d.ts.map +1 -1
- package/dist/Hilo3d.js +13450 -10807
- package/dist/Hilo3d.js.map +1 -1
- package/dist/{web_naga-Du8PpBO_.js → web_naga-Db37BNV9.js} +2 -2
- package/dist/{web_naga-Du8PpBO_.js.map → web_naga-Db37BNV9.js.map} +1 -1
- package/package.json +36 -18
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,148 @@
|
|
|
1
1
|
# Unreleased
|
|
2
2
|
|
|
3
|
+
# 2.0.0-alpha.9 (release candidate)
|
|
4
|
+
|
|
5
|
+
This section describes the prepared release source; npm publication is pending.
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
- Add the standalone Hilo Studio scene editor with a Blender-inspired workspace, shared-engine
|
|
10
|
+
WebGL2/WebGPU viewport, picking, transform gizmos, multi-selection, material and GLB/image asset
|
|
11
|
+
authoring, prefab overrides, isolated script previews and animation timelines. Include durable
|
|
12
|
+
multi-scene projects, undo/redo and recovery, versioned JSON/offline schemas and portable AI
|
|
13
|
+
workspace ZIPs, a self-hosted capability-based collaboration service, and GitHub Pages deployment
|
|
14
|
+
with production checks for root and project-subpath URLs.
|
|
15
|
+
|
|
16
|
+
- Add optional `@hilo/addon-audio`: bounded real/virtual voices, spatial attenuation/cones/Doppler,
|
|
17
|
+
budgeted occlusion, concurrency and weighted cues, hierarchical mixing/snapshots/ducking/reverb,
|
|
18
|
+
pinned decode caching, media streaming and Stage-owned lifecycle. Include real Chromium PCM,
|
|
19
|
+
transport/cache tests and installed-tarball streaming validation.
|
|
20
|
+
|
|
21
|
+
- Add optional `@hilo/addon-assets`: KTX2 ETC1S/UASTC module-worker transcoding, versioned texture
|
|
22
|
+
leases, cancellation/priority, coarse-first mip residency, independent budgets, hidden-resource
|
|
23
|
+
eviction and budgeted recovery replay. This is the initial A0 texture slice; geometry pages and
|
|
24
|
+
sparse HTTP loading remain separate work.
|
|
25
|
+
- Make renderer idle waits snapshot already submitted work so continuous rendering cannot starve
|
|
26
|
+
asset retirement; preserve complete fence settlement on failure.
|
|
27
|
+
- Add `Renderer.uploadTextures()` for graph-validated, submission-fenced texture warming without
|
|
28
|
+
draws.
|
|
29
|
+
- Add a texture residency lab and actual compressed texture/package coverage on both backends.
|
|
30
|
+
- Add portable local specular reflection probes with box parallax correction, bounded per-pixel
|
|
31
|
+
blending and roughness filtering, shared by PBR/clearcoat and SSR fallback composition. Add
|
|
32
|
+
budgeted HDR dynamic captures with atomic publication, failure rollback and device recovery; the
|
|
33
|
+
Adjacent gallery demonstrates connected rooms, moving receivers and lighting updates.
|
|
34
|
+
- Add `RenderPipelineContext.recordView()` for isolated auxiliary cameras in the same graph and
|
|
35
|
+
submission, and runtime-owned `RenderPipelineCreateContext.createRenderTarget()` recipes that
|
|
36
|
+
rebuild after explicit renderer resource release. Parent leases are suspended during callbacks;
|
|
37
|
+
nested/async callbacks and caught callback failures cannot produce partial frame submissions.
|
|
38
|
+
|
|
39
|
+
- Add Live2DModel.load with SDK-independent motion, expression, parameter and effect controls; Stage
|
|
40
|
+
automatically advances and destroys owned sessions/assets. Add abortable complete loading, shared
|
|
41
|
+
bounded runtime initialization and explicit asset versioning. Runtime assets are included in the
|
|
42
|
+
addon and loaded locally on demand; applications need no SDK setup or runtimeUrl configuration.
|
|
43
|
+
- Add portable render-node raster contributions automatically discovered by Forward, and
|
|
44
|
+
hierarchical transparent sorting groups with matching Camera2D pointer selection.
|
|
45
|
+
- Add an official Hatsune Miku Live2D example with pointer tracking, motion controls and head
|
|
46
|
+
close-ups, preserved source/license records and an offline example runtime built from separately
|
|
47
|
+
licensed SDK inputs.
|
|
48
|
+
|
|
49
|
+
- Add the optional `@hilo/addon-live2d` ESM package: application-owned Cubism source adaptation,
|
|
50
|
+
model3 assets, portable deforming meshes, basic blending, soft/inverted masks and explicit
|
|
51
|
+
lifetime. Core/Framework retain their separate licenses; character resources remain external and
|
|
52
|
+
advanced Cubism 5.3 composition is rejected.
|
|
53
|
+
- Add `RenderPipelineContext.createOrderedRendererList()` for explicit ordered mesh membership,
|
|
54
|
+
including hidden mask sources and mixed material queues, through shared draw preparation and RHI.
|
|
55
|
+
|
|
56
|
+
- Expose immutable render-pipeline invocation policies for camera type and per-frame call limits.
|
|
57
|
+
Forward supports arbitrary cameras and multiple invocations; Clustered declares its existing
|
|
58
|
+
single-perspective-camera limit. The shared host validates calls before recording and rejects
|
|
59
|
+
partial-frame submission after a policy violation. Custom factories without a policy retain their
|
|
60
|
+
previous behavior.
|
|
61
|
+
- Add opt-in WebGPU dynamic diffuse global illumination to Clustered Forward+: camera-independent
|
|
62
|
+
rigid PBR BVH tracing, budgeted visibility-aware irradiance probes, dynamic lighting, bounded
|
|
63
|
+
bounce feedback, relocation, transactional history and device recovery. Both indirect and direct
|
|
64
|
+
clustered PBR sample the same field; hybrid SSGI replaces overlapping transport with a signed
|
|
65
|
+
correction. Add validated options, contribution control and submitted resource/coverage
|
|
66
|
+
diagnostics.
|
|
67
|
+
- Add the original Blender-authored Afternoon Atelier, with warm oak and linen furniture, an
|
|
68
|
+
integrated up/down linen floor lamp, visible wall-color reflection across sofa and rug, dynamic
|
|
69
|
+
lamp/door/wall controls, live night/day environment changes, public OrbitControls, stable captures
|
|
70
|
+
and lifecycle-safe teardown.
|
|
71
|
+
|
|
72
|
+
### Documentation
|
|
73
|
+
|
|
74
|
+
- Extend the consumer game skill with exact-version audio, KTX2 residency and Live2D guidance. Check
|
|
75
|
+
synchronized package versions and skill regressions in ordinary CI preflight.
|
|
76
|
+
|
|
77
|
+
- Separate current engineering/rendering contracts and the roadmap from archived implementation
|
|
78
|
+
plans. Correct prerelease installation, exposure, temporal, material ABI and SRP guidance.
|
|
79
|
+
- Publish a concise llms.txt and source Markdown with build provenance; add source/anchor/command
|
|
80
|
+
checks and synchronized public-API recipes verified against packed core/addon packages.
|
|
81
|
+
|
|
82
|
+
### Changes
|
|
83
|
+
|
|
84
|
+
- Reserve uniform-block binding 10 for optional local reflection data; custom block allocation now
|
|
85
|
+
starts at 11. Existing material scalar/texture layouts and material sampler indices are unchanged.
|
|
86
|
+
Applications using explicit custom binding 10 must select an unreserved binding.
|
|
87
|
+
|
|
88
|
+
- Keep Live2D build and package verification tooling inside the addon. Remove its obsolete public
|
|
89
|
+
SDK builder CLI/tools export, optional build-tool peers and unused standalone provider output;
|
|
90
|
+
examples reuse bundler-emitted runtime assets and copy only their license notices.
|
|
91
|
+
|
|
92
|
+
- Separate SRP invocation context, resource/history ownership and pass execution, and register
|
|
93
|
+
built-in preparation adapters at pass construction instead of identifying pass classes in the
|
|
94
|
+
central setup path. Split Clustered shader, layout and parameter modules from frame orchestration
|
|
95
|
+
while preserving shader sources and the shared Render Graph/RHI path.
|
|
96
|
+
- Replace quadratic Render Graph ready-pass scans with stable minimum-index heap scheduling and
|
|
97
|
+
reusable typed-array workspace, preserving existing dependency validation and pass order.
|
|
98
|
+
|
|
99
|
+
### Fixes
|
|
100
|
+
|
|
101
|
+
- Normalize ImageBitmap uploads explicitly on WebGL2, preserving row direction and low/zero-alpha
|
|
102
|
+
RGB bytes through cropping, cube/array uploads and recovery without Canvas2D conversion.
|
|
103
|
+
- Dispatch nested non-Mesh destruction overrides and complete sibling/renderer cleanup after errors.
|
|
104
|
+
|
|
105
|
+
- Detect native WebGL2 context loss before delayed browser notification, preserve lost queue state
|
|
106
|
+
through abort cleanup, and keep restoration enabled by preventing the eventual loss event.
|
|
107
|
+
|
|
108
|
+
- Release final-owner vertex/index and uniform-buffer recipes when meshes are destroyed, while
|
|
109
|
+
preserving shared geometry aliases, custom UBOs and submission-aware native retirement.
|
|
110
|
+
|
|
111
|
+
- Bound completed Render Graph transient-resource retention by idle count, estimated bytes and age
|
|
112
|
+
while preserving in-flight submission ownership and exact-descriptor reuse.
|
|
113
|
+
- Recycle abandoned graph builders after recording/setup failures and reject stale references
|
|
114
|
+
without retaining every failed frame's parameters and resource providers.
|
|
115
|
+
- Separate content liveness from ordering hazards so unused readers and fully overwritten writes are
|
|
116
|
+
culled. Preserve load/read-write/partial-clear dependencies and support complete then partial
|
|
117
|
+
clears of a new transient buffer in one pass.
|
|
118
|
+
- Commit history validity from the final surviving store/discard operations. A discarded current
|
|
119
|
+
slot becomes invalid without replacing the last stored history.
|
|
120
|
+
- Report timeline observer failures after committed GPU work without rolling back runtime/history
|
|
121
|
+
state; observe asynchronous diagnostic and runtime callbacks independently from GPU timestamps.
|
|
122
|
+
- Honor `material-front-to-back` using cached view-space depth within opaque state groups, including
|
|
123
|
+
explicit instance batches. Keep mixed opaque/transparent sorting transitive so opaque entries
|
|
124
|
+
cannot obstruct transparent depth ordering.
|
|
125
|
+
|
|
126
|
+
- Stabilize static DDGI with fixed per-probe quadrature, geometry-stable relocation and exact
|
|
127
|
+
submission-aware light revisions. Correct TAA/TAAU jitter-free history reprojection, neighborhood
|
|
128
|
+
shading-change detection and depth-checked one-pixel silhouette motion coverage, preventing
|
|
129
|
+
repeating edge shimmer while retaining camera-cut and moving-object rejection.
|
|
130
|
+
|
|
131
|
+
- Reject unsupported or rapidly moving SSR missed-hit history, fade confidence-premultiplied
|
|
132
|
+
radiance together with confidence, and honor zero history weight on every resolve path. This
|
|
133
|
+
removes red reflection trails on empty floors during fast camera orbit.
|
|
134
|
+
|
|
135
|
+
- Keep built-in scene vertex positions invariant across depth, motion, material-attributes and color
|
|
136
|
+
variants, eliminating jitter-dependent attribute holes and flickering SSR black speckles. Remove
|
|
137
|
+
the red and blue point fill lights that produced circular floor highlights in Afterimage.
|
|
138
|
+
|
|
139
|
+
- Apply runtime normal-map scale in shared raster shading, restoring smooth Car Concept paint on
|
|
140
|
+
WebGL2 and WebGPU.
|
|
141
|
+
- Traverse SSR Hi-Z cells conservatively and refine thin-surface crossings before rejecting hits.
|
|
142
|
+
Keep integer history counts separate from confidence during packing and bilinear reprojection.
|
|
143
|
+
- Refine the Afterimage studio camera, paint, lighting, and polished floor reflection; fit portrait
|
|
144
|
+
viewports and cap physical rendering dimensions to the declared GPU budget.
|
|
145
|
+
|
|
3
146
|
# 2.0.0-alpha.8 (2026-09-08)
|
|
4
147
|
|
|
5
148
|
### Breaking changes
|
package/README.md
CHANGED
|
@@ -24,7 +24,9 @@
|
|
|
24
24
|
</div>
|
|
25
25
|
|
|
26
26
|
> Hilo3D 2.0 is currently in alpha. Existing projects should review the
|
|
27
|
-
> [breaking changes](./CHANGELOG.md#breaking-changes) before upgrading.
|
|
27
|
+
> [breaking changes](./CHANGELOG.md#breaking-changes) before upgrading. Repository and website
|
|
28
|
+
> documentation may include Unreleased APIs; match [version boundaries](./documentation/VERSIONS.md)
|
|
29
|
+
> to the installed package.
|
|
28
30
|
|
|
29
31
|
## Why Hilo3D
|
|
30
32
|
|
|
@@ -50,9 +52,14 @@ WebGPU path or a production WebGL 2 compatibility path.
|
|
|
50
52
|
## Install
|
|
51
53
|
|
|
52
54
|
```sh
|
|
53
|
-
npm install hilo3d
|
|
55
|
+
npm install --save-exact hilo3d@next
|
|
54
56
|
```
|
|
55
57
|
|
|
58
|
+
`next` selects the 2.0 prerelease; `--save-exact` pins the resolved version. The unqualified
|
|
59
|
+
`latest` channel may still select 1.x. Match optional addon versions to the installed core. See
|
|
60
|
+
[version boundaries](./documentation/VERSIONS.md) and the
|
|
61
|
+
[complete quickstart](./documentation/GETTING_STARTED.md).
|
|
62
|
+
|
|
56
63
|
Hilo3D is ESM-only. It targets modern browsers with WebGPU or WebGL 2; WebGL 1 and legacy global
|
|
57
64
|
builds are outside the 2.0 contract.
|
|
58
65
|
|
|
@@ -85,11 +92,19 @@ const stage = await Hilo3d.Stage.create({
|
|
|
85
92
|
new Hilo3d.Mesh({
|
|
86
93
|
geometry: new Hilo3d.BoxGeometry(),
|
|
87
94
|
material: new Hilo3d.PBRMaterial({
|
|
88
|
-
baseColor: new Hilo3d.Color(0.83, 0.12, 0.09)
|
|
95
|
+
baseColor: new Hilo3d.Color(0.83, 0.12, 0.09),
|
|
96
|
+
metallic: 0.1,
|
|
97
|
+
roughness: 0.6
|
|
89
98
|
})
|
|
90
99
|
}).addTo(stage);
|
|
91
100
|
|
|
92
101
|
stage.addChild(new Hilo3d.AmbientLight({ amount: 1 }));
|
|
102
|
+
stage.addChild(
|
|
103
|
+
new Hilo3d.DirectionalLight({
|
|
104
|
+
amount: 3,
|
|
105
|
+
direction: new Hilo3d.Vector3(-1, -1, -1)
|
|
106
|
+
})
|
|
107
|
+
);
|
|
93
108
|
|
|
94
109
|
const ticker = new Hilo3d.Ticker(60);
|
|
95
110
|
ticker.addTick(stage);
|
|
@@ -188,6 +203,11 @@ resource, shader, and recovery contracts.
|
|
|
188
203
|
|
|
189
204
|
## Documentation
|
|
190
205
|
|
|
206
|
+
- [Getting started](./documentation/GETTING_STARTED.md) and
|
|
207
|
+
[checked recipes](./documentation/RECIPES.md)
|
|
208
|
+
- [AI documentation index](./llms.txt) and [version policy](./documentation/VERSIONS.md)
|
|
209
|
+
- [Roadmap](./documentation/ROADMAP.md)
|
|
210
|
+
|
|
191
211
|
- [Getting started and API documentation](https://hilo3d.js.org/docs/)
|
|
192
212
|
- [Example gallery](https://hilo3d.js.org/examples/list.html)
|
|
193
213
|
- [`hilo3d-game` Agent Skill](https://github.com/hiloteam/Hilo3d/tree/dev/skills/hilo3d-game)
|
|
@@ -195,13 +215,13 @@ resource, shader, and recovery contracts.
|
|
|
195
215
|
- [Rendering architecture](./documentation/RENDERING_ARCHITECTURE.md)
|
|
196
216
|
- [PBR, HDR, and post-processing](./documentation/PBR_AND_POST_PROCESSING.md)
|
|
197
217
|
- [Modern WebGPU rendering roadmap](./documentation/MODERN_WEBGPU_RENDERING_ROADMAP.md)
|
|
198
|
-
- [Material system
|
|
199
|
-
- [Temporal rendering](./documentation/
|
|
218
|
+
- [Material system](./documentation/MATERIAL_SYSTEM.md)
|
|
219
|
+
- [Temporal rendering](./documentation/TEMPORAL_RENDERING.md)
|
|
200
220
|
- [Screen-space global illumination](./documentation/SCREEN_SPACE_GLOBAL_ILLUMINATION.md)
|
|
201
221
|
- [Froxel volumetric lighting](./documentation/VOLUMETRIC_LIGHTING.md)
|
|
202
222
|
- [Physical atmosphere and weather](./documentation/PHYSICAL_ATMOSPHERE_AND_WEATHER.md)
|
|
203
223
|
- [2D rendering and multi-camera composition](./documentation/2D_RENDERING.md)
|
|
204
|
-
- [Scriptable render pipeline](./documentation/
|
|
224
|
+
- [Scriptable render pipeline](./documentation/SCRIPTABLE_RENDER_PIPELINE.md)
|
|
205
225
|
- [Breaking changes](./CHANGELOG.md#breaking-changes)
|
|
206
226
|
|
|
207
227
|
## Develop locally
|
package/README_ZH.md
CHANGED
|
@@ -26,6 +26,9 @@
|
|
|
26
26
|
> Hilo3D 2.0 目前处于 alpha 阶段。现有项目升级前应先查看
|
|
27
27
|
> [破坏性变更](./CHANGELOG.md#breaking-changes)。
|
|
28
28
|
|
|
29
|
+
源码与网站文档可能包含 Unreleased API;请按 [版本边界](./documentation/VERSIONS.md)
|
|
30
|
+
核对已安装包的类型声明。
|
|
31
|
+
|
|
29
32
|
## 为什么选择 Hilo3D
|
|
30
33
|
|
|
31
34
|
Hilo3D 在同一引擎中兼顾高层场景创作和底层 GPU 控制。应用始终使用同一套场景、材质、渲染目标与 shader 契约,渲染器则选择原生 WebGPU 路径或生产级 WebGL
|
|
@@ -49,9 +52,15 @@ Hilo3D 在同一引擎中兼顾高层场景创作和底层 GPU 控制。应用
|
|
|
49
52
|
## 安装
|
|
50
53
|
|
|
51
54
|
```sh
|
|
52
|
-
npm install hilo3d
|
|
55
|
+
npm install --save-exact hilo3d@next
|
|
53
56
|
```
|
|
54
57
|
|
|
58
|
+
`next` 选择 2.0 预发布版本,`--save-exact`
|
|
59
|
+
锁定解析后的版本;不带 tag 的安装可能仍选择 1.x。可选 addon 必须与核心版本一致。参阅
|
|
60
|
+
[版本边界](./documentation/VERSIONS.md)、
|
|
61
|
+
[完整快速开始](./documentation/GETTING_STARTED.md)、[可编译 recipes](./documentation/RECIPES.md) 和
|
|
62
|
+
[AI 文档索引](./llms.txt)。
|
|
63
|
+
|
|
55
64
|
Hilo3D 只提供 ESM。目标环境是支持 WebGPU 或 WebGL 2 的现代浏览器;WebGL
|
|
56
65
|
1 和旧式全局构建不属于 2.0 契约。
|
|
57
66
|
|
|
@@ -82,11 +91,19 @@ const stage = await Hilo3d.Stage.create({
|
|
|
82
91
|
new Hilo3d.Mesh({
|
|
83
92
|
geometry: new Hilo3d.BoxGeometry(),
|
|
84
93
|
material: new Hilo3d.PBRMaterial({
|
|
85
|
-
baseColor: new Hilo3d.Color(0.83, 0.12, 0.09)
|
|
94
|
+
baseColor: new Hilo3d.Color(0.83, 0.12, 0.09),
|
|
95
|
+
metallic: 0.1,
|
|
96
|
+
roughness: 0.6
|
|
86
97
|
})
|
|
87
98
|
}).addTo(stage);
|
|
88
99
|
|
|
89
100
|
stage.addChild(new Hilo3d.AmbientLight({ amount: 1 }));
|
|
101
|
+
stage.addChild(
|
|
102
|
+
new Hilo3d.DirectionalLight({
|
|
103
|
+
amount: 3,
|
|
104
|
+
direction: new Hilo3d.Vector3(-1, -1, -1)
|
|
105
|
+
})
|
|
106
|
+
);
|
|
90
107
|
|
|
91
108
|
const ticker = new Hilo3d.Ticker(60);
|
|
92
109
|
ticker.addTick(stage);
|
|
@@ -187,13 +204,13 @@ compute 使用引擎经过验证的 `ComputeShader` 契约。
|
|
|
187
204
|
- [渲染架构](./documentation/RENDERING_ARCHITECTURE.md)
|
|
188
205
|
- [PBR、HDR 与后处理](./documentation/PBR_AND_POST_PROCESSING.md)
|
|
189
206
|
- [现代 WebGPU 渲染路线图](./documentation/MODERN_WEBGPU_RENDERING_ROADMAP.md)
|
|
190
|
-
- [材质系统现代化](./documentation/
|
|
191
|
-
- [时域渲染](./documentation/
|
|
207
|
+
- [材质系统现代化](./documentation/MATERIAL_SYSTEM.md)
|
|
208
|
+
- [时域渲染](./documentation/TEMPORAL_RENDERING.md)
|
|
192
209
|
- [屏幕空间全局光照](./documentation/SCREEN_SPACE_GLOBAL_ILLUMINATION.md)
|
|
193
210
|
- [Froxel 体积光](./documentation/VOLUMETRIC_LIGHTING.md)
|
|
194
211
|
- [物理大气与天气](./documentation/PHYSICAL_ATMOSPHERE_AND_WEATHER.md)
|
|
195
212
|
- [2D 渲染与多相机合成](./documentation/2D_RENDERING.md)
|
|
196
|
-
- [可脚本化渲染管线](./documentation/
|
|
213
|
+
- [可脚本化渲染管线](./documentation/SCRIPTABLE_RENDER_PIPELINE.md)
|
|
197
214
|
- [破坏性变更](./CHANGELOG.md#breaking-changes)
|
|
198
215
|
|
|
199
216
|
## 本地开发
|