illutions 0.31.0 → 0.33.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 +282 -231
- package/dist/main.d.ts +292 -190
- package/dist/main.min.cjs +1 -1
- package/dist/main.min.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,233 +1,284 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
## 0.
|
|
4
|
-
|
|
5
|
-
### Added
|
|
6
|
-
|
|
7
|
-
- Added
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
- `
|
|
22
|
-
- `
|
|
23
|
-
- `
|
|
24
|
-
- `
|
|
25
|
-
- `
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
- `
|
|
32
|
-
- `
|
|
33
|
-
- `
|
|
34
|
-
- `
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
-
|
|
40
|
-
-
|
|
41
|
-
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.33.0
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- Added `Scene.setMaterialsProps()` and `Scene.animMaterialsTo()` with `obj` and optional `recursive` to update or animate all assigned material slots once per material; `Mesh3D` provides object-bound counterparts. Animation events remain per material.
|
|
8
|
+
|
|
9
|
+
### Renamed
|
|
10
|
+
|
|
11
|
+
- `Scene.animMaterialNumeric()` → `Scene.animMaterialTo()`
|
|
12
|
+
- `AnimFadeEvent` → `AnimMaterialEvent`, `Anim_Fade_Start` → `Anim_Material_Start`, `Anim_Fade_Complete` → `Anim_Material_Complete`, and `objName` → `materialName` for material animation events.
|
|
13
|
+
- `Scene.stopAnimClip()` → `Scene.stopClip()`; `fadeOut` → `speedTime` and `ease` → `speedEase`.
|
|
14
|
+
- Renamed parameters in `Scene.playClip()` and `Scene.playClipCam()`: `blendMode` → `modeBlend`, `loopMode` → `modeLoop`, `stopMode` → `modeStop`, `fadeDuration` → `fadeTime`, `startSpeed` → `speedStart`, `endSpeed` → `speedEnd`, `duration` → `speedTime`, and `ease` → `speedEase`. For `Scene.playClip()`, also renamed `finishMode` → `modeFinish` and `fadeDurationFinish` → `fadeTimeFinish`.
|
|
15
|
+
- `duration` → `time` in `Scene.animCamTo()`, `Scene.animCamCurveTo()`, and `Scene.animTransformTo()`; material animation methods now also use `time`.
|
|
16
|
+
- `fade` → `time` in `Audio.loadAndPlay()`, `Audio.play()`, `Audio.pause()`, and `Audio.stop()`.
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- Removed the optional `startValue` parameter from `Scene.animMaterialTo()`; it always animates from the current material value to the target value.
|
|
21
|
+
- Changed `Scene.animMaterialTo()` to accept only a material name through `name` instead of `mesh`; assigned materials are resolved by name, including material slots.
|
|
22
|
+
- Changed `Scene.setMaterialProps()` to accept `name` instead of `obj` and removed its `recursive` option; use `Scene.setMaterialsProps()` for object-wide updates. Renamed `Mesh3D.setMaterialProps()` to `Mesh3D.setMaterialsProps()`.
|
|
23
|
+
- Merged numeric and color material animation into `Scene.animMaterialTo()` and removed the singular material animation methods from `Mesh3D`; components use `this.scene.animMaterialTo()` for one named material. Multiple properties share one tween, duration, easing, and repeat setting.
|
|
24
|
+
- Material animations now emit one `AnimMaterialEvent` per start, completion, or cancellation with a `values` snapshot instead of individual `property` and `value` fields; colors are hex strings.
|
|
25
|
+
- Added `Anim_Material_Cancel`: a new valid material animation cancels the entire previous animation of the same material. Unknown materials, unknown easing functions, and empty property lists leave the current tween unchanged; property names and target values are the caller's responsibility; zero duration applies values immediately, and infinite repeats do not emit completion.
|
|
26
|
+
|
|
27
|
+
## 0.32.0
|
|
28
|
+
|
|
29
|
+
### Added
|
|
30
|
+
|
|
31
|
+
- Added `Scene.animTransformTo({ obj, pos?, rot?, scale?, duration?, ease? })` for local transformations with rotation in degrees; new calls replace the previous transformation of the same object.
|
|
32
|
+
- Added `Audio.pause({ name, fade?, ease? })` to pause a sound while preserving its playback position; `Audio.play()` resumes it, while `Audio.stop()` resets playing or paused sounds to the beginning.
|
|
33
|
+
- Added the exported `AudioEvent` with `Audio_Start`, `Audio_Complete`, and `Audio_Stop`, each carrying `soundName`; completion indicates a natural playback end, and stopping emits its event immediately or after fade-out finishes.
|
|
34
|
+
- Added the exported `SoundParamsPos` and optional per-sound distance attenuation and directional cone overrides in `SoundParams`; omitted settings inherit the shared audio defaults.
|
|
35
|
+
- Added `Audio.setSoundParams()` to update a loaded sound's volume and positional overrides; volume changes during a fade are stored for subsequent playback without interrupting the fade.
|
|
36
|
+
|
|
37
|
+
### Renamed
|
|
38
|
+
|
|
39
|
+
- `cfg.audio.delayPlaySound` → `cfg.audio.delayLoadSound`
|
|
40
|
+
- `SoundParams.object` → `SoundParams.obj`
|
|
41
|
+
- `Audio.setListener({ object })` → `Audio.setListener({ obj })`
|
|
42
|
+
|
|
43
|
+
### Changed
|
|
44
|
+
|
|
45
|
+
- Added `Anim_Cancel` to `AnimEvent` for transformations replaced by `Scene.animTransformTo()`.
|
|
46
|
+
- Merged `AudioLoadedEvent` into `AudioEvent`, which now also includes `Audio_Loaded`; removed the separate `AudioLoadedEvent` interface.
|
|
47
|
+
- Extended `SoundParams.obj` to accept a scene object name or an `Obj3D` instance; an empty string still selects global audio. Positional settings are rejected for global sounds during loading and ignored when updating them.
|
|
48
|
+
- Removed `fade` from `SoundParams` and `Audio.load()`; `Audio.loadAndPlay()`, `Audio.play()`, and `Audio.stop()` now accept per-call `fade` and GSAP `ease` options. Fades default to `0` (no fade), with linear easing (`'none'`), instead of a stored two-second fade.
|
|
49
|
+
- Changed `Audio.get()` to return `SoundParamsPos` and `Audio.set()` to accept `Partial<SoundParamsPos>`; loading delay is no longer exposed through these methods, and shared default updates preserve per-sound overrides.
|
|
50
|
+
|
|
51
|
+
### Fixed
|
|
52
|
+
|
|
53
|
+
- Fixed `Audio.play()` and `Audio.resume()` to resume interrupted audio contexts in addition to suspended contexts.
|
|
54
|
+
|
|
55
|
+
## 0.31.0
|
|
56
|
+
|
|
57
|
+
### Added
|
|
58
|
+
|
|
59
|
+
- Added the optional `recursive` parameter to `Engine.setMaterialProps()` and `Mesh3D.setMaterialProps()` to include all descendant meshes.
|
|
60
|
+
- Added `Coll3D` and `Coll3DParams` for persistent mesh-based raycast colliders with `hidden`, `pickable`, and `occluder` roles and an optional `target` that maps raycast events to another `Mesh3D`.
|
|
61
|
+
- Added `Obj3DParams` and the persistent `Obj3D.hidden` state, which hides the rendered object without disabling raycasting and is included in combined visibility events.
|
|
62
|
+
- Added optional `{ class, params }` entries through `SceneEntry` and `WebEntry`; `WebParams` values are assigned to matching custom-element instances during app initialization.
|
|
63
|
+
- Added `CompsInsts` to map Scene Component and Web Component definitions to their runtime instances.
|
|
64
|
+
- Added `EnvLoadedEvent` with `Env_Loaded` after the initial environment is applied and all progressive background loading attempts complete; failed background maps may be skipped, and canceled or superseded loads do not emit the event.
|
|
65
|
+
- Added `cfg.render.adaptiveGfx`, `cfg.render.ecoMode`, and `cfg.render.fpsMin` for adaptive graphics quality and Eco mode configuration.
|
|
66
|
+
- Added the exported `AaMode`, `WebGlAaMode`, `WebGpuAaMode`, `WebGlSslMode`, `WebGpuSslMode`, `DebugLog`, and `MsaaMode` configuration types.
|
|
67
|
+
- Added WebGPU SSGI with AO and GI output, adaptive warm-up, configuration, and Inspector controls.
|
|
68
|
+
|
|
69
|
+
### Renamed
|
|
70
|
+
|
|
71
|
+
- `Engine.setMaterialProperties()` → `Engine.setMaterialProps()` and `Mesh3D.setMaterialProperties()` → `Mesh3D.setMaterialProps()`
|
|
72
|
+
|
|
73
|
+
- `Classes` → `Comps`
|
|
74
|
+
- `Comp` → `Web`
|
|
75
|
+
- `CompEvent` → `WebEvent`
|
|
76
|
+
- `CompOverlapEvent` → `WebOverlapEvent`
|
|
77
|
+
- `CompVisibleEvent` → `WebVisibleEvent`
|
|
78
|
+
- `Comp_Overlap_Changed` → `Web_Overlap_Changed`
|
|
79
|
+
- `Comp_Visible_Changed` → `Web_Visible_Changed`
|
|
80
|
+
- `CompOverlapEvent.comp` → `WebOverlapEvent.web`
|
|
81
|
+
- `CompVisibleEvent.comp` → `WebVisibleEvent.web`
|
|
82
|
+
- `CompClass` → `WebClass`
|
|
83
|
+
- `Obj3DClass` → `SceneClass`
|
|
84
|
+
- `CompInsts` → `WebInsts`
|
|
85
|
+
- `Obj3DInsts` → `SceneInsts`
|
|
86
|
+
- `Comp.comps` → `Web.webs`
|
|
87
|
+
|
|
88
|
+
### Changed
|
|
89
|
+
|
|
90
|
+
- Replaced the `objs3D` and `comps` registry groups with `comps.scene` and `comps.web`; initialized instances are now exposed through `app.comps.scene` and `app.comps.web`.
|
|
91
|
+
- Changed `Raycast.setColliders()` and `Raycast.clearColliders()` to accept arrays of registered `Coll3D` instances and use or reset their persistent collider roles; removed the exported `Collider` interface.
|
|
92
|
+
- Replaced the individual post-processing enable settings with typed `cfg.render.profile.webgl` and `cfg.render.profile.webgpu` settings for MSAA, AA, SSL, and SSR.
|
|
93
|
+
- Renamed `cfg.post.ssao` to `cfg.post.ssl` and simplified the exported post-processing config type names to `SslCfg`, `SsaoCfg`, `GtaoCfg`, `SsgiCfg`, `WebGlSsrCfg`, and `WebGpuSsrCfg`.
|
|
94
|
+
- Renamed `cfg.post.webgpu.ssao` to `cfg.post.webgpu.gtao` and removed the obsolete `distanceExponent` and `distanceFallOff` settings.
|
|
95
|
+
- Replaced `cfg.render.params.antialias` with renderer-specific `profile.msaa` settings, supporting `'none'`, `'render'`, and `'post'`.
|
|
96
|
+
- Replaced `cfg.render.fpsLimiter` and `cfg.render.fpsMax` with `cfg.render.adaptiveGfx`, `cfg.render.ecoMode`, and `cfg.render.fpsMin`.
|
|
45
97
|
- Changed the default value of `cfg.render.deltaTimesMax` from `10` to `20`.
|
|
46
98
|
- Updated the peer dependencies to Three.js r186 (`~0.186.0`) and XState 5.33 (`~5.33.2`).
|
|
47
|
-
- Removed the `detect-gpu` runtime dependency.
|
|
48
|
-
- `Model_Loading` and numbered progressive loading events now fire only when the rounded percentage changes within each model load.
|
|
49
|
-
|
|
50
|
-
## 0.30.0
|
|
51
|
-
|
|
52
|
-
### Changed
|
|
53
|
-
|
|
54
|
-
- Replaced `Mesh3D.setTexture()` and `TextureSlot` with `requestImageTexture()` and `getImageTexture()` to separate requesting unused GLTF images from accessing their initialized Three.js textures and assigning them directly to material slots.
|
|
55
|
-
- Textures created from unused GLTF images now remain stable across progressive model levels while their image and mipmap data is updated.
|
|
56
|
-
|
|
57
|
-
### Fixed
|
|
58
|
-
|
|
59
|
-
- Fixed the `Obj3D.onStart()` lifecycle so it is called before GLTF model loading begins, as documented.
|
|
60
|
-
|
|
61
|
-
## 0.29.1
|
|
62
|
-
|
|
63
|
-
### Fixed
|
|
64
|
-
|
|
65
|
-
- Fixed progressive model loading so textures belonging to materials not currently assigned to a mesh are updated through all model quality levels.
|
|
66
|
-
|
|
67
|
-
## 0.29.0
|
|
68
|
-
|
|
69
|
-
### Added
|
|
70
|
-
|
|
71
|
-
- Added protected `Mesh3D.setTexture()` to assign unused GLTF images by name to the `ColorMap`, `LightMap`, or `AlphaMap` material slot, with optional UV channel and light map intensity settings; registered textures are updated across progressive model levels.
|
|
72
|
-
- Added the exported `TextureSlot` union for the supported material slots.
|
|
73
|
-
|
|
74
|
-
## 0.28.0
|
|
75
|
-
|
|
76
|
-
### Added
|
|
77
|
-
|
|
78
|
-
- Added `Mesh3D.animMaterialColor()`, `Mesh3D.animMaterialNumeric()`, and `Mesh3D.setMaterialProperties()` as object-bound counterparts to the existing `Engine` material methods.
|
|
79
|
-
- Added the optional `needsUpdate` parameter to `Engine.animMaterialNumeric()`, `Engine.setMaterialProperties()`, `Mesh3D.animMaterialNumeric()`, and `Mesh3D.setMaterialProperties()` to request material recompilation.
|
|
80
|
-
- Added degree-based horizontal orbit constraints through `orbitCtrls.minAzimuthAngle` and `orbitCtrls.maxAzimuthAngle`.
|
|
81
|
-
- Added `ModelLoadedEvent` with `Model_Loaded` for a single model and numbered `Model1_Loaded`, `Model2_Loaded`, etc. events for progressive models.
|
|
82
|
-
- Added the `Model_Ready` event after the final progressive model variant has been applied and rendered.
|
|
83
|
-
- Added the exported `Collider` configuration and `Raycast.setColliders()` and `Raycast.clearColliders()` to configure named scene objects or `Obj3D` instances as occluders, pickables, or hidden colliders.
|
|
84
|
-
|
|
85
|
-
### Changed
|
|
86
|
-
|
|
87
|
-
- Replaced `Raycast.setOccluders()`, `Raycast.resetOccluders()`, `Raycast.trackPickables()`, and `Raycast.untrackPickables()` with the unified collider API.
|
|
88
|
-
- Renamed `Raycast.enable()` and `Raycast.disable()` to `Raycast.enablePickables()` and `Raycast.disablePickables()`.
|
|
89
|
-
- Renamed `raycast.occlInterval` to `raycast.occludeeInterval` and `raycast.occlMoveFactor` to `raycast.occlusionMoveFactor`.
|
|
90
|
-
- Changed progressive `ModelLoadingEvent` and `SceneRenderedEvent` types to numbered `Model1_Loading`, `Scene1_Rendered`, etc. events; unnumbered events remain available for a single model.
|
|
91
|
-
- Removed the `level` property from `ModelLoadingEvent`; the progressive model level is now identified by the event type.
|
|
92
|
-
- Removed the obsolete `fct` property from `ClipEvent`.
|
|
93
|
-
- Changed pointer raycasts so that registered occluders block pickables behind them.
|
|
94
|
-
|
|
95
|
-
### Fixed
|
|
96
|
-
|
|
97
|
-
- Corrected `CanvasPointerEvent` to expose `Canvas_Click`, `Canvas_Pointer_Enter`, and `Canvas_Pointer_Leave`.
|
|
98
|
-
- Added the already emitted `FpvCtrls_Disposed` event to `FpvCtrlsEvent`.
|
|
99
|
-
- Delayed the postprocessing noise check until `Model_Ready` so that postprocessing is not disabled before the final progressive model variant is rendered.
|
|
100
|
-
|
|
101
|
-
## 0.27.0
|
|
102
|
-
|
|
103
|
-
### Added
|
|
104
|
-
|
|
105
|
-
- Added progressive model loading through ordered model levels in `ModelCfg.file`.
|
|
106
|
-
|
|
107
|
-
### Changed
|
|
108
|
-
|
|
109
|
-
- Changed `ModelCfg.file` from `string | null` to `string[]`; use an empty array when no model should be loaded.
|
|
110
|
-
- Added the one-based `level` parameter to `ModelLoadingEvent` to identify the model level currently loading.
|
|
111
|
-
- Changed state names to `snake_case` and event names to `Pascal_Snake_Case`.
|
|
112
|
-
- Updated debug console output to use `State:` and `Event:` labels and the new naming conventions.
|
|
113
|
-
|
|
114
|
-
## 0.26.0
|
|
115
|
-
|
|
116
|
-
### Added
|
|
117
|
-
|
|
118
|
-
- Added TRAA as a WebGPU anti-aliasing mode through `cfg.post.aa.mode = 'traa'`.
|
|
119
|
-
- Added the `raycast.occlInterval` configuration to distribute pending marker occlusion checks evenly over a configurable time interval.
|
|
120
|
-
- Added the `raycast.occlMoveFactor` configuration to trigger new occlusion checks only after the object or camera exceeds a distance-relative movement threshold.
|
|
121
|
-
- Added `Raycast.setOccluders()` and `Raycast.resetOccluders()` to optionally restrict occlusion checks to selected scene objects.
|
|
122
|
-
- Added `Comp.trackOverlap()` and `Comp.untrackOverlap()` to manage component overlaps in screen space through the internal `CompCtrls`.
|
|
123
|
-
- Added `cfg.light.rectArea` to lazily load and initialize renderer-specific LTC data for `RectAreaLight` support.
|
|
124
|
-
|
|
125
|
-
### Changed
|
|
126
|
-
|
|
127
|
-
- Moved the shared SSR settings `maxDistance`, `thickness`, and `resolutionScale` from `cfg.post.webgl.ssr` and `cfg.post.webgpu.ssr` to `cfg.post.ssr`.
|
|
128
|
-
- Renamed the public `Raycast.trackSelectables()` and `Raycast.untrackSelectable()` methods to `Raycast.trackPickables()` and `Raycast.untrackPickables()`.
|
|
129
|
-
|
|
130
|
-
### Fixed
|
|
131
|
-
|
|
132
|
-
- Fixed the Inspector showing TRAA or an empty anti-aliasing mode for WebGL by falling back to FXAA when `cfg.post.aa.mode` is set to `'traa'`.
|
|
133
|
-
|
|
134
|
-
## 0.25.0
|
|
135
|
-
|
|
136
|
-
### Added
|
|
137
|
-
|
|
138
|
-
- Added `CanvasPointerLeave` handling to the `Obj3D_Pointer_Leave` event.
|
|
139
|
-
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
- Added
|
|
165
|
-
- Added `
|
|
166
|
-
- Added `
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
-
|
|
172
|
-
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
- Added
|
|
190
|
-
- Added `Cam3D`
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
- Added `
|
|
202
|
-
- Added `
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
-
|
|
214
|
-
-
|
|
215
|
-
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
- Added `cfg.audio.enable` to the configuration.
|
|
99
|
+
- Removed the `detect-gpu` runtime dependency.
|
|
100
|
+
- `Model_Loading` and numbered progressive loading events now fire only when the rounded percentage changes within each model load.
|
|
101
|
+
|
|
102
|
+
## 0.30.0
|
|
103
|
+
|
|
104
|
+
### Changed
|
|
105
|
+
|
|
106
|
+
- Replaced `Mesh3D.setTexture()` and `TextureSlot` with `requestImageTexture()` and `getImageTexture()` to separate requesting unused GLTF images from accessing their initialized Three.js textures and assigning them directly to material slots.
|
|
107
|
+
- Textures created from unused GLTF images now remain stable across progressive model levels while their image and mipmap data is updated.
|
|
108
|
+
|
|
109
|
+
### Fixed
|
|
110
|
+
|
|
111
|
+
- Fixed the `Obj3D.onStart()` lifecycle so it is called before GLTF model loading begins, as documented.
|
|
112
|
+
|
|
113
|
+
## 0.29.1
|
|
114
|
+
|
|
115
|
+
### Fixed
|
|
116
|
+
|
|
117
|
+
- Fixed progressive model loading so textures belonging to materials not currently assigned to a mesh are updated through all model quality levels.
|
|
118
|
+
|
|
119
|
+
## 0.29.0
|
|
120
|
+
|
|
121
|
+
### Added
|
|
122
|
+
|
|
123
|
+
- Added protected `Mesh3D.setTexture()` to assign unused GLTF images by name to the `ColorMap`, `LightMap`, or `AlphaMap` material slot, with optional UV channel and light map intensity settings; registered textures are updated across progressive model levels.
|
|
124
|
+
- Added the exported `TextureSlot` union for the supported material slots.
|
|
125
|
+
|
|
126
|
+
## 0.28.0
|
|
127
|
+
|
|
128
|
+
### Added
|
|
129
|
+
|
|
130
|
+
- Added `Mesh3D.animMaterialColor()`, `Mesh3D.animMaterialNumeric()`, and `Mesh3D.setMaterialProperties()` as object-bound counterparts to the existing `Engine` material methods.
|
|
131
|
+
- Added the optional `needsUpdate` parameter to `Engine.animMaterialNumeric()`, `Engine.setMaterialProperties()`, `Mesh3D.animMaterialNumeric()`, and `Mesh3D.setMaterialProperties()` to request material recompilation.
|
|
132
|
+
- Added degree-based horizontal orbit constraints through `orbitCtrls.minAzimuthAngle` and `orbitCtrls.maxAzimuthAngle`.
|
|
133
|
+
- Added `ModelLoadedEvent` with `Model_Loaded` for a single model and numbered `Model1_Loaded`, `Model2_Loaded`, etc. events for progressive models.
|
|
134
|
+
- Added the `Model_Ready` event after the final progressive model variant has been applied and rendered.
|
|
135
|
+
- Added the exported `Collider` configuration and `Raycast.setColliders()` and `Raycast.clearColliders()` to configure named scene objects or `Obj3D` instances as occluders, pickables, or hidden colliders.
|
|
136
|
+
|
|
137
|
+
### Changed
|
|
138
|
+
|
|
139
|
+
- Replaced `Raycast.setOccluders()`, `Raycast.resetOccluders()`, `Raycast.trackPickables()`, and `Raycast.untrackPickables()` with the unified collider API.
|
|
140
|
+
- Renamed `Raycast.enable()` and `Raycast.disable()` to `Raycast.enablePickables()` and `Raycast.disablePickables()`.
|
|
141
|
+
- Renamed `raycast.occlInterval` to `raycast.occludeeInterval` and `raycast.occlMoveFactor` to `raycast.occlusionMoveFactor`.
|
|
142
|
+
- Changed progressive `ModelLoadingEvent` and `SceneRenderedEvent` types to numbered `Model1_Loading`, `Scene1_Rendered`, etc. events; unnumbered events remain available for a single model.
|
|
143
|
+
- Removed the `level` property from `ModelLoadingEvent`; the progressive model level is now identified by the event type.
|
|
144
|
+
- Removed the obsolete `fct` property from `ClipEvent`.
|
|
145
|
+
- Changed pointer raycasts so that registered occluders block pickables behind them.
|
|
146
|
+
|
|
147
|
+
### Fixed
|
|
148
|
+
|
|
149
|
+
- Corrected `CanvasPointerEvent` to expose `Canvas_Click`, `Canvas_Pointer_Enter`, and `Canvas_Pointer_Leave`.
|
|
150
|
+
- Added the already emitted `FpvCtrls_Disposed` event to `FpvCtrlsEvent`.
|
|
151
|
+
- Delayed the postprocessing noise check until `Model_Ready` so that postprocessing is not disabled before the final progressive model variant is rendered.
|
|
152
|
+
|
|
153
|
+
## 0.27.0
|
|
154
|
+
|
|
155
|
+
### Added
|
|
156
|
+
|
|
157
|
+
- Added progressive model loading through ordered model levels in `ModelCfg.file`.
|
|
158
|
+
|
|
159
|
+
### Changed
|
|
160
|
+
|
|
161
|
+
- Changed `ModelCfg.file` from `string | null` to `string[]`; use an empty array when no model should be loaded.
|
|
162
|
+
- Added the one-based `level` parameter to `ModelLoadingEvent` to identify the model level currently loading.
|
|
163
|
+
- Changed state names to `snake_case` and event names to `Pascal_Snake_Case`.
|
|
164
|
+
- Updated debug console output to use `State:` and `Event:` labels and the new naming conventions.
|
|
165
|
+
|
|
166
|
+
## 0.26.0
|
|
167
|
+
|
|
168
|
+
### Added
|
|
169
|
+
|
|
170
|
+
- Added TRAA as a WebGPU anti-aliasing mode through `cfg.post.aa.mode = 'traa'`.
|
|
171
|
+
- Added the `raycast.occlInterval` configuration to distribute pending marker occlusion checks evenly over a configurable time interval.
|
|
172
|
+
- Added the `raycast.occlMoveFactor` configuration to trigger new occlusion checks only after the object or camera exceeds a distance-relative movement threshold.
|
|
173
|
+
- Added `Raycast.setOccluders()` and `Raycast.resetOccluders()` to optionally restrict occlusion checks to selected scene objects.
|
|
174
|
+
- Added `Comp.trackOverlap()` and `Comp.untrackOverlap()` to manage component overlaps in screen space through the internal `CompCtrls`.
|
|
175
|
+
- Added `cfg.light.rectArea` to lazily load and initialize renderer-specific LTC data for `RectAreaLight` support.
|
|
176
|
+
|
|
177
|
+
### Changed
|
|
178
|
+
|
|
179
|
+
- Moved the shared SSR settings `maxDistance`, `thickness`, and `resolutionScale` from `cfg.post.webgl.ssr` and `cfg.post.webgpu.ssr` to `cfg.post.ssr`.
|
|
180
|
+
- Renamed the public `Raycast.trackSelectables()` and `Raycast.untrackSelectable()` methods to `Raycast.trackPickables()` and `Raycast.untrackPickables()`.
|
|
181
|
+
|
|
182
|
+
### Fixed
|
|
183
|
+
|
|
184
|
+
- Fixed the Inspector showing TRAA or an empty anti-aliasing mode for WebGL by falling back to FXAA when `cfg.post.aa.mode` is set to `'traa'`.
|
|
185
|
+
|
|
186
|
+
## 0.25.0
|
|
187
|
+
|
|
188
|
+
### Added
|
|
189
|
+
|
|
190
|
+
- Added `CanvasPointerLeave` handling to the `Obj3D_Pointer_Leave` event.
|
|
191
|
+
- Extended `ClipEvent` with `Clip_Cancel`, `Clip_Fade_Start`, `Clip_Fade_Complete`, `Clip_Speed_Start`, and `Clip_Speed_Complete` events.
|
|
192
|
+
|
|
193
|
+
### Fixed
|
|
194
|
+
|
|
195
|
+
- Fixed `Obj3D_Pointer_Leave` being emitted during pointer movement with a pressed mouse button and ensured touch pointers emit it after `Obj3D_Pointer_Up` when contact ends.
|
|
196
|
+
|
|
197
|
+
## 0.24.1
|
|
198
|
+
|
|
199
|
+
### Added
|
|
200
|
+
|
|
201
|
+
- Added the `ProgressBar_Hidden` event.
|
|
202
|
+
|
|
203
|
+
### Changed
|
|
204
|
+
|
|
205
|
+
- Renamed the `aaCfg` interface to `AaCfg`.
|
|
206
|
+
|
|
207
|
+
### Fixed
|
|
208
|
+
|
|
209
|
+
- Fixed an incorrect `objTarget.position` when enabling orbit or FPV controls after setting it in `Cam3D.onReady()`.
|
|
210
|
+
|
|
211
|
+
## 0.24.0
|
|
212
|
+
|
|
213
|
+
### Added
|
|
214
|
+
|
|
215
|
+
- Added animation modes `BlendMode`, `FinishMode`, `LoopMode`, `StopMode`
|
|
216
|
+
- Added `fadeDuration` to `playClip()` and `playClipCam()`.
|
|
217
|
+
- Added `Audio.load()` to load audio without starting playback.
|
|
218
|
+
- Added the `AudioLoadedEvent` (`Audio_Loaded`) event for handling completed audio loading.
|
|
219
|
+
|
|
220
|
+
### Changed
|
|
221
|
+
|
|
222
|
+
- Replaced `pauseActions` with `stopMode` and `infinite` with `loop` in animation clip playback.
|
|
223
|
+
- Renamed `Raycast.trackSelectable()` to `Raycast.trackSelectables()`.
|
|
224
|
+
- Changed the `LightCfg` shadow defaults to match the corresponding Three.js defaults, while keeping `castShadow` enabled by default.
|
|
225
|
+
|
|
226
|
+
### Fixed
|
|
227
|
+
|
|
228
|
+
- Fixed visual stuttering when transitioning from orbit rotation to panning with damping enabled by keeping `OrbitCtrls` in `lookMode = 'target'` for all OrbitControls interactions.
|
|
229
|
+
|
|
230
|
+
## 0.23.1
|
|
231
|
+
|
|
232
|
+
### FIXED
|
|
233
|
+
|
|
234
|
+
- Convert absolute path to the Draco folder to a relative path.
|
|
235
|
+
|
|
236
|
+
## 0.23.0
|
|
237
|
+
|
|
238
|
+
### Added
|
|
239
|
+
|
|
240
|
+
- Added progressive environment map loading.
|
|
241
|
+
- Added `Cam3D` support to `Audio.setListener()` targets.
|
|
242
|
+
- Added support for using the base `Cam3D` class in the `classes.objs3D` registry.
|
|
243
|
+
|
|
244
|
+
### Fixed
|
|
245
|
+
|
|
246
|
+
- Fixed WebGL environment maps so PMREM-generated textures are not used for `THREE.Scene.background`.
|
|
247
|
+
|
|
248
|
+
## 0.22.1
|
|
249
|
+
|
|
250
|
+
### Added
|
|
251
|
+
|
|
252
|
+
- Added `cfg.render.params` for renderer-specific runtime parameters.
|
|
253
|
+
- Added `render.api` output to the infobox.
|
|
254
|
+
- Added `.blend` source files to the public example apps.
|
|
255
|
+
|
|
256
|
+
### Changed
|
|
257
|
+
|
|
258
|
+
- Renamed `cfg.webgl` and `cfg.webgpu` parameter groups to `params`.
|
|
259
|
+
|
|
260
|
+
## 0.22.0
|
|
261
|
+
|
|
262
|
+
### Changed
|
|
263
|
+
|
|
264
|
+
- Updated the framework to Three.js r185.
|
|
265
|
+
- Changed the default renderer selection to `render.api = 'auto'`.
|
|
266
|
+
- Added `envCtrls.dataType` to configure environment texture data handling.
|
|
267
|
+
- Replaced `SsrWebGpuCfg.opacity` with `SsrWebGpuCfg.intensity`.
|
|
268
|
+
|
|
269
|
+
### Fixed
|
|
270
|
+
|
|
271
|
+
- Clarified the WebGL/WebGPU renderer switch behavior.
|
|
272
|
+
- Enabled WebGPU renderer loading even when post-processing is disabled.
|
|
273
|
+
|
|
274
|
+
## 0.21.9
|
|
275
|
+
|
|
276
|
+
### Changed
|
|
277
|
+
|
|
278
|
+
- Removed the `CfgCtrl` class and the related `app.cfgCtrl` access point. Runtime parameters are now updated through the responsible feature APIs, such as `app.audio.set(...)`.
|
|
279
|
+
|
|
280
|
+
## 0.21.8
|
|
281
|
+
|
|
282
|
+
### Changed
|
|
283
|
+
|
|
284
|
+
- Added `cfg.audio.enable` to the configuration.
|