illutions 0.32.0 → 0.34.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 +247 -209
- package/dist/main.d.ts +324 -176
- package/dist/main.min.cjs +1 -1
- package/dist/main.min.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,44 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.34.0
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- Added object-bound `Obj3D.animRotTo()`, `Obj3D.animScaleTo()`, and `Obj3D.animTranslTo()` counterparts to the Scene transformation methods.
|
|
8
|
+
- Added `Obj3D.animVelRotTo()`, `Obj3D.animVelScaleTo()`, and `Obj3D.animVelTranslTo()` with optional `vx`, `vy`, and `vz` targets; omitted axes retain their velocities. Angular velocity uses radians per second and defaults to local space; translation uses coordinate units per second and defaults to parent space; scale velocity is additive in local scale units per second. Defaults are `time: 0` (immediate) and `ease: 'none'` (linear), with `ease` typed as `string`. World-space angular velocity requires uniformly scaled parents. Velocity is applied before `onUpdate()`; `Cam3D.animVelRotTo()` automatically lets angular velocity control camera orientation. Callers coordinate simultaneous transformation and velocity animations affecting the same values.
|
|
9
|
+
- Velocity animations emit `Anim_Start`, `Anim_Complete`, and `Anim_Cancel` when replaced, with the component name in `objName` and the method in `fct`. Completion means the target velocity is reached; motion continues unless the target is zero. Immediate changes emit start and completion synchronously. A new call replaces only the previous animation of the same velocity channel.
|
|
10
|
+
- Exported `CoordinateSpace` with `'parent'`, `'local'`, and `'world'`, plus `degToRad()` and `radToDeg()` through `illutions`.
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- Replaced `Scene.animTransformTo()` with `Scene.animTranslTo()`, `Scene.animRotTo()`, and `Scene.animScaleTo()`. Each accepts optional `x`, `y`, and `z` targets and has independent duration, easing, and cancellation; a new call cancels only the previous animation of the same transform channel. Defaults are `time: 1` and `ease: 'power2.inOut'`. Rotation uses radians, `path: 'euler'` or `'quat'` (default `'euler'`), and `order: 'XYZ'` by default. Euler interpolation supports full turns; quaternion interpolation follows the shortest orientation path. Rotation and translation support parent/world targets through `space` (default `'parent'`); scale uses local values.
|
|
15
|
+
- Environment rotation and rotation speed now use radians and radians per second in `cfg.envCtrls`, `EnvCtrls.set()`, and `EnvCtrls.get()`. Orbit azimuth and polar limits now use radians in `cfg.orbitCtrls`, `OrbitCtrls.set()`, and `OrbitCtrls.get()`; the default `maxPolarAngle` is `Math.PI` instead of `180`. Convert existing degree values with `degToRad()`. First-Person limits already use radians; camera field of view and audio cone angles remain in degrees, and control speed factors are unchanged.
|
|
16
|
+
- The Inspector displays Orbit and First-Person angle limits and environment rotation in degrees while converting edits to radians. It also provides an environment rotation speed field in degrees per second.
|
|
17
|
+
|
|
18
|
+
## 0.33.0
|
|
19
|
+
|
|
20
|
+
### Added
|
|
21
|
+
|
|
22
|
+
- 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.
|
|
23
|
+
|
|
24
|
+
### Renamed
|
|
25
|
+
|
|
26
|
+
- `Scene.animMaterialNumeric()` → `Scene.animMaterialTo()`
|
|
27
|
+
- `AnimFadeEvent` → `AnimMaterialEvent`, `Anim_Fade_Start` → `Anim_Material_Start`, `Anim_Fade_Complete` → `Anim_Material_Complete`, and `objName` → `materialName` for material animation events.
|
|
28
|
+
- `Scene.stopAnimClip()` → `Scene.stopClip()`; `fadeOut` → `speedTime` and `ease` → `speedEase`.
|
|
29
|
+
- 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`.
|
|
30
|
+
- `duration` → `time` in `Scene.animCamTo()`, `Scene.animCamCurveTo()`, and `Scene.animTransformTo()`; material animation methods now also use `time`.
|
|
31
|
+
- `fade` → `time` in `Audio.loadAndPlay()`, `Audio.play()`, `Audio.pause()`, and `Audio.stop()`.
|
|
32
|
+
|
|
33
|
+
### Changed
|
|
34
|
+
|
|
35
|
+
- Removed the optional `startValue` parameter from `Scene.animMaterialTo()`; it always animates from the current material value to the target value.
|
|
36
|
+
- Changed `Scene.animMaterialTo()` to accept only a material name through `name` instead of `mesh`; assigned materials are resolved by name, including material slots.
|
|
37
|
+
- 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()`.
|
|
38
|
+
- 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.
|
|
39
|
+
- 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.
|
|
40
|
+
- 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.
|
|
41
|
+
|
|
3
42
|
## 0.32.0
|
|
4
43
|
|
|
5
44
|
### Added
|
|
@@ -28,234 +67,233 @@
|
|
|
28
67
|
|
|
29
68
|
- Fixed `Audio.play()` and `Audio.resume()` to resume interrupted audio contexts in addition to suspended contexts.
|
|
30
69
|
|
|
31
|
-
## 0.31.0
|
|
32
|
-
|
|
33
|
-
### Added
|
|
34
|
-
|
|
35
|
-
- Added the optional `recursive` parameter to `Engine.setMaterialProps()` and `Mesh3D.setMaterialProps()` to include all descendant meshes.
|
|
36
|
-
- 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`.
|
|
37
|
-
- Added `Obj3DParams` and the persistent `Obj3D.hidden` state, which hides the rendered object without disabling raycasting and is included in combined visibility events.
|
|
38
|
-
- Added optional `{ class, params }` entries through `SceneEntry` and `WebEntry`; `WebParams` values are assigned to matching custom-element instances during app initialization.
|
|
39
|
-
- Added `CompsInsts` to map Scene Component and Web Component definitions to their runtime instances.
|
|
40
|
-
- 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.
|
|
41
|
-
- Added `cfg.render.adaptiveGfx`, `cfg.render.ecoMode`, and `cfg.render.fpsMin` for adaptive graphics quality and Eco mode configuration.
|
|
42
|
-
- Added the exported `AaMode`, `WebGlAaMode`, `WebGpuAaMode`, `WebGlSslMode`, `WebGpuSslMode`, `DebugLog`, and `MsaaMode` configuration types.
|
|
43
|
-
- Added WebGPU SSGI with AO and GI output, adaptive warm-up, configuration, and Inspector controls.
|
|
44
|
-
|
|
45
|
-
### Renamed
|
|
46
|
-
|
|
47
|
-
- `Engine.setMaterialProperties()` → `Engine.setMaterialProps()` and `Mesh3D.setMaterialProperties()` → `Mesh3D.setMaterialProps()`
|
|
48
|
-
|
|
49
|
-
- `Classes` → `Comps`
|
|
50
|
-
- `Comp` → `Web`
|
|
51
|
-
- `CompEvent` → `WebEvent`
|
|
52
|
-
- `CompOverlapEvent` → `WebOverlapEvent`
|
|
53
|
-
- `CompVisibleEvent` → `WebVisibleEvent`
|
|
54
|
-
- `Comp_Overlap_Changed` → `Web_Overlap_Changed`
|
|
55
|
-
- `Comp_Visible_Changed` → `Web_Visible_Changed`
|
|
56
|
-
- `CompOverlapEvent.comp` → `WebOverlapEvent.web`
|
|
57
|
-
- `CompVisibleEvent.comp` → `WebVisibleEvent.web`
|
|
58
|
-
- `CompClass` → `WebClass`
|
|
59
|
-
- `Obj3DClass` → `SceneClass`
|
|
60
|
-
- `CompInsts` → `WebInsts`
|
|
61
|
-
- `Obj3DInsts` → `SceneInsts`
|
|
62
|
-
- `Comp.comps` → `Web.webs`
|
|
63
|
-
|
|
70
|
+
## 0.31.0
|
|
71
|
+
|
|
72
|
+
### Added
|
|
73
|
+
|
|
74
|
+
- Added the optional `recursive` parameter to `Engine.setMaterialProps()` and `Mesh3D.setMaterialProps()` to include all descendant meshes.
|
|
75
|
+
- 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`.
|
|
76
|
+
- Added `Obj3DParams` and the persistent `Obj3D.hidden` state, which hides the rendered object without disabling raycasting and is included in combined visibility events.
|
|
77
|
+
- Added optional `{ class, params }` entries through `SceneEntry` and `WebEntry`; `WebParams` values are assigned to matching custom-element instances during app initialization.
|
|
78
|
+
- Added `CompsInsts` to map Scene Component and Web Component definitions to their runtime instances.
|
|
79
|
+
- 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.
|
|
80
|
+
- Added `cfg.render.adaptiveGfx`, `cfg.render.ecoMode`, and `cfg.render.fpsMin` for adaptive graphics quality and Eco mode configuration.
|
|
81
|
+
- Added the exported `AaMode`, `WebGlAaMode`, `WebGpuAaMode`, `WebGlSslMode`, `WebGpuSslMode`, `DebugLog`, and `MsaaMode` configuration types.
|
|
82
|
+
- Added WebGPU SSGI with AO and GI output, adaptive warm-up, configuration, and Inspector controls.
|
|
83
|
+
|
|
84
|
+
### Renamed
|
|
85
|
+
|
|
86
|
+
- `Engine.setMaterialProperties()` → `Engine.setMaterialProps()` and `Mesh3D.setMaterialProperties()` → `Mesh3D.setMaterialProps()`
|
|
87
|
+
|
|
88
|
+
- `Classes` → `Comps`
|
|
89
|
+
- `Comp` → `Web`
|
|
90
|
+
- `CompEvent` → `WebEvent`
|
|
91
|
+
- `CompOverlapEvent` → `WebOverlapEvent`
|
|
92
|
+
- `CompVisibleEvent` → `WebVisibleEvent`
|
|
93
|
+
- `Comp_Overlap_Changed` → `Web_Overlap_Changed`
|
|
94
|
+
- `Comp_Visible_Changed` → `Web_Visible_Changed`
|
|
95
|
+
- `CompOverlapEvent.comp` → `WebOverlapEvent.web`
|
|
96
|
+
- `CompVisibleEvent.comp` → `WebVisibleEvent.web`
|
|
97
|
+
- `CompClass` → `WebClass`
|
|
98
|
+
- `Obj3DClass` → `SceneClass`
|
|
99
|
+
- `CompInsts` → `WebInsts`
|
|
100
|
+
- `Obj3DInsts` → `SceneInsts`
|
|
101
|
+
- `Comp.comps` → `Web.webs`
|
|
102
|
+
|
|
64
103
|
### Changed
|
|
65
104
|
|
|
66
|
-
- 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`.
|
|
67
|
-
- 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.
|
|
68
|
-
- 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.
|
|
69
|
-
- 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`.
|
|
70
|
-
- Renamed `cfg.post.webgpu.ssao` to `cfg.post.webgpu.gtao` and removed the obsolete `distanceExponent` and `distanceFallOff` settings.
|
|
71
|
-
- Replaced `cfg.render.params.antialias` with renderer-specific `profile.msaa` settings, supporting `'none'`, `'render'`, and `'post'`.
|
|
72
|
-
- Replaced `cfg.render.fpsLimiter` and `cfg.render.fpsMax` with `cfg.render.adaptiveGfx`, `cfg.render.ecoMode`, and `cfg.render.fpsMin`.
|
|
105
|
+
- 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`.
|
|
106
|
+
- 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.
|
|
107
|
+
- 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.
|
|
108
|
+
- 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`.
|
|
109
|
+
- Renamed `cfg.post.webgpu.ssao` to `cfg.post.webgpu.gtao` and removed the obsolete `distanceExponent` and `distanceFallOff` settings.
|
|
110
|
+
- Replaced `cfg.render.params.antialias` with renderer-specific `profile.msaa` settings, supporting `'none'`, `'render'`, and `'post'`.
|
|
111
|
+
- Replaced `cfg.render.fpsLimiter` and `cfg.render.fpsMax` with `cfg.render.adaptiveGfx`, `cfg.render.ecoMode`, and `cfg.render.fpsMin`.
|
|
73
112
|
- Changed the default value of `cfg.render.deltaTimesMax` from `10` to `20`.
|
|
74
113
|
- Updated the peer dependencies to Three.js r186 (`~0.186.0`) and XState 5.33 (`~5.33.2`).
|
|
75
|
-
- Removed the `detect-gpu` runtime dependency.
|
|
76
|
-
- `Model_Loading` and numbered progressive loading events now fire only when the rounded percentage changes within each model load.
|
|
77
|
-
|
|
78
|
-
## 0.30.0
|
|
79
|
-
|
|
114
|
+
- Removed the `detect-gpu` runtime dependency.
|
|
115
|
+
- `Model_Loading` and numbered progressive loading events now fire only when the rounded percentage changes within each model load.
|
|
116
|
+
|
|
117
|
+
## 0.30.0
|
|
118
|
+
|
|
80
119
|
### Changed
|
|
81
120
|
|
|
82
|
-
- 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.
|
|
83
|
-
- Textures created from unused GLTF images now remain stable across progressive model levels while their image and mipmap data is updated.
|
|
84
|
-
|
|
85
|
-
### Fixed
|
|
86
|
-
|
|
87
|
-
- Fixed the `Obj3D.onStart()` lifecycle so it is called before GLTF model loading begins, as documented.
|
|
88
|
-
|
|
89
|
-
## 0.29.1
|
|
90
|
-
|
|
91
|
-
### Fixed
|
|
92
|
-
|
|
93
|
-
- Fixed progressive model loading so textures belonging to materials not currently assigned to a mesh are updated through all model quality levels.
|
|
94
|
-
|
|
95
|
-
## 0.29.0
|
|
96
|
-
|
|
97
|
-
### Added
|
|
98
|
-
|
|
99
|
-
- 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.
|
|
100
|
-
- Added the exported `TextureSlot` union for the supported material slots.
|
|
101
|
-
|
|
102
|
-
## 0.28.0
|
|
103
|
-
|
|
104
|
-
### Added
|
|
105
|
-
|
|
106
|
-
- Added `Mesh3D.animMaterialColor()`, `Mesh3D.animMaterialNumeric()`, and `Mesh3D.setMaterialProperties()` as object-bound counterparts to the existing `Engine` material methods.
|
|
107
|
-
- Added the optional `needsUpdate` parameter to `Engine.animMaterialNumeric()`, `Engine.setMaterialProperties()`, `Mesh3D.animMaterialNumeric()`, and `Mesh3D.setMaterialProperties()` to request material recompilation.
|
|
108
|
-
- Added degree-based horizontal orbit constraints through `orbitCtrls.minAzimuthAngle` and `orbitCtrls.maxAzimuthAngle`.
|
|
109
|
-
- Added `ModelLoadedEvent` with `Model_Loaded` for a single model and numbered `Model1_Loaded`, `Model2_Loaded`, etc. events for progressive models.
|
|
110
|
-
- Added the `Model_Ready` event after the final progressive model variant has been applied and rendered.
|
|
111
|
-
- 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.
|
|
112
|
-
|
|
121
|
+
- 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.
|
|
122
|
+
- Textures created from unused GLTF images now remain stable across progressive model levels while their image and mipmap data is updated.
|
|
123
|
+
|
|
124
|
+
### Fixed
|
|
125
|
+
|
|
126
|
+
- Fixed the `Obj3D.onStart()` lifecycle so it is called before GLTF model loading begins, as documented.
|
|
127
|
+
|
|
128
|
+
## 0.29.1
|
|
129
|
+
|
|
130
|
+
### Fixed
|
|
131
|
+
|
|
132
|
+
- Fixed progressive model loading so textures belonging to materials not currently assigned to a mesh are updated through all model quality levels.
|
|
133
|
+
|
|
134
|
+
## 0.29.0
|
|
135
|
+
|
|
136
|
+
### Added
|
|
137
|
+
|
|
138
|
+
- 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.
|
|
139
|
+
- Added the exported `TextureSlot` union for the supported material slots.
|
|
140
|
+
|
|
141
|
+
## 0.28.0
|
|
142
|
+
|
|
143
|
+
### Added
|
|
144
|
+
|
|
145
|
+
- Added `Mesh3D.animMaterialColor()`, `Mesh3D.animMaterialNumeric()`, and `Mesh3D.setMaterialProperties()` as object-bound counterparts to the existing `Engine` material methods.
|
|
146
|
+
- Added the optional `needsUpdate` parameter to `Engine.animMaterialNumeric()`, `Engine.setMaterialProperties()`, `Mesh3D.animMaterialNumeric()`, and `Mesh3D.setMaterialProperties()` to request material recompilation.
|
|
147
|
+
- Added degree-based horizontal orbit constraints through `orbitCtrls.minAzimuthAngle` and `orbitCtrls.maxAzimuthAngle`.
|
|
148
|
+
- Added `ModelLoadedEvent` with `Model_Loaded` for a single model and numbered `Model1_Loaded`, `Model2_Loaded`, etc. events for progressive models.
|
|
149
|
+
- Added the `Model_Ready` event after the final progressive model variant has been applied and rendered.
|
|
150
|
+
- 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.
|
|
151
|
+
|
|
113
152
|
### Changed
|
|
114
153
|
|
|
115
|
-
- Replaced `Raycast.setOccluders()`, `Raycast.resetOccluders()`, `Raycast.trackPickables()`, and `Raycast.untrackPickables()` with the unified collider API.
|
|
116
|
-
- Renamed `Raycast.enable()` and `Raycast.disable()` to `Raycast.enablePickables()` and `Raycast.disablePickables()`.
|
|
117
|
-
- Renamed `raycast.occlInterval` to `raycast.occludeeInterval` and `raycast.occlMoveFactor` to `raycast.occlusionMoveFactor`.
|
|
118
|
-
- Changed progressive `ModelLoadingEvent` and `SceneRenderedEvent` types to numbered `Model1_Loading`, `Scene1_Rendered`, etc. events; unnumbered events remain available for a single model.
|
|
119
|
-
- Removed the `level` property from `ModelLoadingEvent`; the progressive model level is now identified by the event type.
|
|
120
|
-
- Removed the obsolete `fct` property from `ClipEvent`.
|
|
121
|
-
- Changed pointer raycasts so that registered occluders block pickables behind them.
|
|
122
|
-
|
|
123
|
-
### Fixed
|
|
124
|
-
|
|
125
|
-
- Corrected `CanvasPointerEvent` to expose `Canvas_Click`, `Canvas_Pointer_Enter`, and `Canvas_Pointer_Leave`.
|
|
126
|
-
- Added the already emitted `FpvCtrls_Disposed` event to `FpvCtrlsEvent`.
|
|
127
|
-
- Delayed the postprocessing noise check until `Model_Ready` so that postprocessing is not disabled before the final progressive model variant is rendered.
|
|
128
|
-
|
|
129
|
-
## 0.27.0
|
|
130
|
-
|
|
131
|
-
### Added
|
|
132
|
-
|
|
133
|
-
- Added progressive model loading through ordered model levels in `ModelCfg.file`.
|
|
134
|
-
|
|
154
|
+
- Replaced `Raycast.setOccluders()`, `Raycast.resetOccluders()`, `Raycast.trackPickables()`, and `Raycast.untrackPickables()` with the unified collider API.
|
|
155
|
+
- Renamed `Raycast.enable()` and `Raycast.disable()` to `Raycast.enablePickables()` and `Raycast.disablePickables()`.
|
|
156
|
+
- Renamed `raycast.occlInterval` to `raycast.occludeeInterval` and `raycast.occlMoveFactor` to `raycast.occlusionMoveFactor`.
|
|
157
|
+
- Changed progressive `ModelLoadingEvent` and `SceneRenderedEvent` types to numbered `Model1_Loading`, `Scene1_Rendered`, etc. events; unnumbered events remain available for a single model.
|
|
158
|
+
- Removed the `level` property from `ModelLoadingEvent`; the progressive model level is now identified by the event type.
|
|
159
|
+
- Removed the obsolete `fct` property from `ClipEvent`.
|
|
160
|
+
- Changed pointer raycasts so that registered occluders block pickables behind them.
|
|
161
|
+
|
|
162
|
+
### Fixed
|
|
163
|
+
|
|
164
|
+
- Corrected `CanvasPointerEvent` to expose `Canvas_Click`, `Canvas_Pointer_Enter`, and `Canvas_Pointer_Leave`.
|
|
165
|
+
- Added the already emitted `FpvCtrls_Disposed` event to `FpvCtrlsEvent`.
|
|
166
|
+
- Delayed the postprocessing noise check until `Model_Ready` so that postprocessing is not disabled before the final progressive model variant is rendered.
|
|
167
|
+
|
|
168
|
+
## 0.27.0
|
|
169
|
+
|
|
170
|
+
### Added
|
|
171
|
+
|
|
172
|
+
- Added progressive model loading through ordered model levels in `ModelCfg.file`.
|
|
173
|
+
|
|
135
174
|
### Changed
|
|
136
175
|
|
|
137
|
-
- Changed `ModelCfg.file` from `string | null` to `string[]`; use an empty array when no model should be loaded.
|
|
138
|
-
- Added the one-based `level` parameter to `ModelLoadingEvent` to identify the model level currently loading.
|
|
139
|
-
- Changed state names to `snake_case` and event names to `Pascal_Snake_Case`.
|
|
140
|
-
- Updated debug console output to use `State:` and `Event:` labels and the new naming conventions.
|
|
141
|
-
|
|
142
|
-
## 0.26.0
|
|
143
|
-
|
|
144
|
-
### Added
|
|
145
|
-
|
|
146
|
-
- Added TRAA as a WebGPU anti-aliasing mode through `cfg.post.aa.mode = 'traa'`.
|
|
147
|
-
- Added the `raycast.occlInterval` configuration to distribute pending marker occlusion checks evenly over a configurable time interval.
|
|
148
|
-
- Added the `raycast.occlMoveFactor` configuration to trigger new occlusion checks only after the object or camera exceeds a distance-relative movement threshold.
|
|
149
|
-
- Added `Raycast.setOccluders()` and `Raycast.resetOccluders()` to optionally restrict occlusion checks to selected scene objects.
|
|
150
|
-
- Added `Comp.trackOverlap()` and `Comp.untrackOverlap()` to manage component overlaps in screen space through the internal `CompCtrls`.
|
|
151
|
-
- Added `cfg.light.rectArea` to lazily load and initialize renderer-specific LTC data for `RectAreaLight` support.
|
|
152
|
-
|
|
176
|
+
- Changed `ModelCfg.file` from `string | null` to `string[]`; use an empty array when no model should be loaded.
|
|
177
|
+
- Added the one-based `level` parameter to `ModelLoadingEvent` to identify the model level currently loading.
|
|
178
|
+
- Changed state names to `snake_case` and event names to `Pascal_Snake_Case`.
|
|
179
|
+
- Updated debug console output to use `State:` and `Event:` labels and the new naming conventions.
|
|
180
|
+
|
|
181
|
+
## 0.26.0
|
|
182
|
+
|
|
183
|
+
### Added
|
|
184
|
+
|
|
185
|
+
- Added TRAA as a WebGPU anti-aliasing mode through `cfg.post.aa.mode = 'traa'`.
|
|
186
|
+
- Added the `raycast.occlInterval` configuration to distribute pending marker occlusion checks evenly over a configurable time interval.
|
|
187
|
+
- Added the `raycast.occlMoveFactor` configuration to trigger new occlusion checks only after the object or camera exceeds a distance-relative movement threshold.
|
|
188
|
+
- Added `Raycast.setOccluders()` and `Raycast.resetOccluders()` to optionally restrict occlusion checks to selected scene objects.
|
|
189
|
+
- Added `Comp.trackOverlap()` and `Comp.untrackOverlap()` to manage component overlaps in screen space through the internal `CompCtrls`.
|
|
190
|
+
- Added `cfg.light.rectArea` to lazily load and initialize renderer-specific LTC data for `RectAreaLight` support.
|
|
191
|
+
|
|
153
192
|
### Changed
|
|
154
193
|
|
|
155
|
-
- Moved the shared SSR settings `maxDistance`, `thickness`, and `resolutionScale` from `cfg.post.webgl.ssr` and `cfg.post.webgpu.ssr` to `cfg.post.ssr`.
|
|
156
|
-
- Renamed the public `Raycast.trackSelectables()` and `Raycast.untrackSelectable()` methods to `Raycast.trackPickables()` and `Raycast.untrackPickables()`.
|
|
157
|
-
|
|
158
|
-
### Fixed
|
|
159
|
-
|
|
160
|
-
- 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'`.
|
|
161
|
-
|
|
162
|
-
## 0.25.0
|
|
163
|
-
|
|
164
|
-
### Added
|
|
165
|
-
|
|
166
|
-
- Added `CanvasPointerLeave` handling to the `Obj3D_Pointer_Leave` event.
|
|
167
|
-
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
194
|
+
- Moved the shared SSR settings `maxDistance`, `thickness`, and `resolutionScale` from `cfg.post.webgl.ssr` and `cfg.post.webgpu.ssr` to `cfg.post.ssr`.
|
|
195
|
+
- Renamed the public `Raycast.trackSelectables()` and `Raycast.untrackSelectable()` methods to `Raycast.trackPickables()` and `Raycast.untrackPickables()`.
|
|
196
|
+
|
|
197
|
+
### Fixed
|
|
198
|
+
|
|
199
|
+
- 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'`.
|
|
200
|
+
|
|
201
|
+
## 0.25.0
|
|
202
|
+
|
|
203
|
+
### Added
|
|
204
|
+
|
|
205
|
+
- Added `CanvasPointerLeave` handling to the `Obj3D_Pointer_Leave` event.
|
|
206
|
+
- Extended `ClipEvent` with `Clip_Cancel`, `Clip_Fade_Start`, `Clip_Fade_Complete`, `Clip_Speed_Start`, and `Clip_Speed_Complete` events.
|
|
207
|
+
|
|
208
|
+
### Fixed
|
|
209
|
+
|
|
210
|
+
- 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.
|
|
211
|
+
|
|
212
|
+
## 0.24.1
|
|
213
|
+
|
|
214
|
+
### Added
|
|
215
|
+
|
|
216
|
+
- Added the `ProgressBar_Hidden` event.
|
|
217
|
+
|
|
180
218
|
### Changed
|
|
181
219
|
|
|
182
|
-
- Renamed the `aaCfg` interface to `AaCfg`.
|
|
183
|
-
|
|
184
|
-
### Fixed
|
|
185
|
-
|
|
186
|
-
- Fixed an incorrect `objTarget.position` when enabling orbit or FPV controls after setting it in `Cam3D.onReady()`.
|
|
187
|
-
|
|
188
|
-
## 0.24.0
|
|
189
|
-
|
|
190
|
-
### Added
|
|
191
|
-
|
|
192
|
-
- Added animation modes `BlendMode`, `FinishMode`, `LoopMode`, `StopMode`
|
|
193
|
-
- Added `fadeDuration` to `playClip()` and `playClipCam()`.
|
|
194
|
-
- Added `Audio.load()` to load audio without starting playback.
|
|
195
|
-
- Added the `AudioLoadedEvent` (`Audio_Loaded`) event for handling completed audio loading.
|
|
196
|
-
|
|
220
|
+
- Renamed the `aaCfg` interface to `AaCfg`.
|
|
221
|
+
|
|
222
|
+
### Fixed
|
|
223
|
+
|
|
224
|
+
- Fixed an incorrect `objTarget.position` when enabling orbit or FPV controls after setting it in `Cam3D.onReady()`.
|
|
225
|
+
|
|
226
|
+
## 0.24.0
|
|
227
|
+
|
|
228
|
+
### Added
|
|
229
|
+
|
|
230
|
+
- Added animation modes `BlendMode`, `FinishMode`, `LoopMode`, `StopMode`
|
|
231
|
+
- Added `fadeDuration` to `playClip()` and `playClipCam()`.
|
|
232
|
+
- Added `Audio.load()` to load audio without starting playback.
|
|
233
|
+
- Added the `AudioLoadedEvent` (`Audio_Loaded`) event for handling completed audio loading.
|
|
234
|
+
|
|
197
235
|
### Changed
|
|
198
236
|
|
|
199
|
-
- Replaced `pauseActions` with `stopMode` and `infinite` with `loop` in animation clip playback.
|
|
200
|
-
- Renamed `Raycast.trackSelectable()` to `Raycast.trackSelectables()`.
|
|
201
|
-
- Changed the `LightCfg` shadow defaults to match the corresponding Three.js defaults, while keeping `castShadow` enabled by default.
|
|
202
|
-
|
|
203
|
-
### Fixed
|
|
204
|
-
|
|
205
|
-
- Fixed visual stuttering when transitioning from orbit rotation to panning with damping enabled by keeping `OrbitCtrls` in `lookMode = 'target'` for all OrbitControls interactions.
|
|
206
|
-
|
|
207
|
-
## 0.23.1
|
|
208
|
-
|
|
209
|
-
### FIXED
|
|
210
|
-
|
|
211
|
-
- Convert absolute path to the Draco folder to a relative path.
|
|
212
|
-
|
|
213
|
-
## 0.23.0
|
|
214
|
-
|
|
215
|
-
### Added
|
|
216
|
-
|
|
217
|
-
- Added progressive environment map loading.
|
|
218
|
-
- Added `Cam3D` support to `Audio.setListener()` targets.
|
|
219
|
-
- Added support for using the base `Cam3D` class in the `classes.objs3D` registry.
|
|
220
|
-
|
|
221
|
-
### Fixed
|
|
222
|
-
|
|
223
|
-
- Fixed WebGL environment maps so PMREM-generated textures are not used for `THREE.Scene.background`.
|
|
224
|
-
|
|
225
|
-
## 0.22.1
|
|
226
|
-
|
|
227
|
-
### Added
|
|
228
|
-
|
|
229
|
-
- Added `cfg.render.params` for renderer-specific runtime parameters.
|
|
230
|
-
- Added `render.api` output to the infobox.
|
|
231
|
-
- Added `.blend` source files to the public example apps.
|
|
232
|
-
|
|
237
|
+
- Replaced `pauseActions` with `stopMode` and `infinite` with `loop` in animation clip playback.
|
|
238
|
+
- Renamed `Raycast.trackSelectable()` to `Raycast.trackSelectables()`.
|
|
239
|
+
- Changed the `LightCfg` shadow defaults to match the corresponding Three.js defaults, while keeping `castShadow` enabled by default.
|
|
240
|
+
|
|
241
|
+
### Fixed
|
|
242
|
+
|
|
243
|
+
- Fixed visual stuttering when transitioning from orbit rotation to panning with damping enabled by keeping `OrbitCtrls` in `lookMode = 'target'` for all OrbitControls interactions.
|
|
244
|
+
|
|
245
|
+
## 0.23.1
|
|
246
|
+
|
|
247
|
+
### FIXED
|
|
248
|
+
|
|
249
|
+
- Convert absolute path to the Draco folder to a relative path.
|
|
250
|
+
|
|
251
|
+
## 0.23.0
|
|
252
|
+
|
|
253
|
+
### Added
|
|
254
|
+
|
|
255
|
+
- Added progressive environment map loading.
|
|
256
|
+
- Added `Cam3D` support to `Audio.setListener()` targets.
|
|
257
|
+
- Added support for using the base `Cam3D` class in the `classes.objs3D` registry.
|
|
258
|
+
|
|
259
|
+
### Fixed
|
|
260
|
+
|
|
261
|
+
- Fixed WebGL environment maps so PMREM-generated textures are not used for `THREE.Scene.background`.
|
|
262
|
+
|
|
263
|
+
## 0.22.1
|
|
264
|
+
|
|
265
|
+
### Added
|
|
266
|
+
|
|
267
|
+
- Added `cfg.render.params` for renderer-specific runtime parameters.
|
|
268
|
+
- Added `render.api` output to the infobox.
|
|
269
|
+
- Added `.blend` source files to the public example apps.
|
|
270
|
+
|
|
233
271
|
### Changed
|
|
234
272
|
|
|
235
|
-
- Renamed `cfg.webgl` and `cfg.webgpu` parameter groups to `params`.
|
|
236
|
-
|
|
237
|
-
## 0.22.0
|
|
238
|
-
|
|
273
|
+
- Renamed `cfg.webgl` and `cfg.webgpu` parameter groups to `params`.
|
|
274
|
+
|
|
275
|
+
## 0.22.0
|
|
276
|
+
|
|
239
277
|
### Changed
|
|
240
278
|
|
|
241
|
-
- Updated the framework to Three.js r185.
|
|
242
|
-
- Changed the default renderer selection to `render.api = 'auto'`.
|
|
243
|
-
- Added `envCtrls.dataType` to configure environment texture data handling.
|
|
244
|
-
- Replaced `SsrWebGpuCfg.opacity` with `SsrWebGpuCfg.intensity`.
|
|
245
|
-
|
|
246
|
-
### Fixed
|
|
247
|
-
|
|
248
|
-
- Clarified the WebGL/WebGPU renderer switch behavior.
|
|
249
|
-
- Enabled WebGPU renderer loading even when post-processing is disabled.
|
|
250
|
-
|
|
251
|
-
## 0.21.9
|
|
252
|
-
|
|
279
|
+
- Updated the framework to Three.js r185.
|
|
280
|
+
- Changed the default renderer selection to `render.api = 'auto'`.
|
|
281
|
+
- Added `envCtrls.dataType` to configure environment texture data handling.
|
|
282
|
+
- Replaced `SsrWebGpuCfg.opacity` with `SsrWebGpuCfg.intensity`.
|
|
283
|
+
|
|
284
|
+
### Fixed
|
|
285
|
+
|
|
286
|
+
- Clarified the WebGL/WebGPU renderer switch behavior.
|
|
287
|
+
- Enabled WebGPU renderer loading even when post-processing is disabled.
|
|
288
|
+
|
|
289
|
+
## 0.21.9
|
|
290
|
+
|
|
253
291
|
### Changed
|
|
254
292
|
|
|
255
|
-
- 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(...)`.
|
|
256
|
-
|
|
257
|
-
## 0.21.8
|
|
258
|
-
|
|
293
|
+
- 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(...)`.
|
|
294
|
+
|
|
295
|
+
## 0.21.8
|
|
296
|
+
|
|
259
297
|
### Changed
|
|
260
298
|
|
|
261
|
-
- Added `cfg.audio.enable` to the configuration.
|
|
299
|
+
- Added `cfg.audio.enable` to the configuration.
|