illutions 0.30.0 → 0.31.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 +231 -184
- package/LICENSE +29 -1
- package/README.md +26 -40
- package/dist/main.d.ts +992 -1108
- package/dist/main.min.cjs +1 -1
- package/dist/main.min.js +1 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,186 +1,233 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
## 0.
|
|
4
|
-
|
|
5
|
-
###
|
|
6
|
-
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.31.0
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- Added the optional `recursive` parameter to `Engine.setMaterialProps()` and `Mesh3D.setMaterialProps()` to include all descendant meshes.
|
|
8
|
+
- 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`.
|
|
9
|
+
- Added `Obj3DParams` and the persistent `Obj3D.hidden` state, which hides the rendered object without disabling raycasting and is included in combined visibility events.
|
|
10
|
+
- Added optional `{ class, params }` entries through `SceneEntry` and `WebEntry`; `WebParams` values are assigned to matching custom-element instances during app initialization.
|
|
11
|
+
- Added `CompsInsts` to map Scene Component and Web Component definitions to their runtime instances.
|
|
12
|
+
- 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.
|
|
13
|
+
- Added `cfg.render.adaptiveGfx`, `cfg.render.ecoMode`, and `cfg.render.fpsMin` for adaptive graphics quality and Eco mode configuration.
|
|
14
|
+
- Added the exported `AaMode`, `WebGlAaMode`, `WebGpuAaMode`, `WebGlSslMode`, `WebGpuSslMode`, `DebugLog`, and `MsaaMode` configuration types.
|
|
15
|
+
- Added WebGPU SSGI with AO and GI output, adaptive warm-up, configuration, and Inspector controls.
|
|
16
|
+
|
|
17
|
+
### Renamed
|
|
18
|
+
|
|
19
|
+
- `Engine.setMaterialProperties()` → `Engine.setMaterialProps()` and `Mesh3D.setMaterialProperties()` → `Mesh3D.setMaterialProps()`
|
|
20
|
+
|
|
21
|
+
- `Classes` → `Comps`
|
|
22
|
+
- `Comp` → `Web`
|
|
23
|
+
- `CompEvent` → `WebEvent`
|
|
24
|
+
- `CompOverlapEvent` → `WebOverlapEvent`
|
|
25
|
+
- `CompVisibleEvent` → `WebVisibleEvent`
|
|
26
|
+
- `Comp_Overlap_Changed` → `Web_Overlap_Changed`
|
|
27
|
+
- `Comp_Visible_Changed` → `Web_Visible_Changed`
|
|
28
|
+
- `CompOverlapEvent.comp` → `WebOverlapEvent.web`
|
|
29
|
+
- `CompVisibleEvent.comp` → `WebVisibleEvent.web`
|
|
30
|
+
- `CompClass` → `WebClass`
|
|
31
|
+
- `Obj3DClass` → `SceneClass`
|
|
32
|
+
- `CompInsts` → `WebInsts`
|
|
33
|
+
- `Obj3DInsts` → `SceneInsts`
|
|
34
|
+
- `Comp.comps` → `Web.webs`
|
|
35
|
+
|
|
36
|
+
### Changed
|
|
37
|
+
|
|
38
|
+
- 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`.
|
|
39
|
+
- 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.
|
|
40
|
+
- 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.
|
|
41
|
+
- 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`.
|
|
42
|
+
- Renamed `cfg.post.webgpu.ssao` to `cfg.post.webgpu.gtao` and removed the obsolete `distanceExponent` and `distanceFallOff` settings.
|
|
43
|
+
- Replaced `cfg.render.params.antialias` with renderer-specific `profile.msaa` settings, supporting `'none'`, `'render'`, and `'post'`.
|
|
44
|
+
- Replaced `cfg.render.fpsLimiter` and `cfg.render.fpsMax` with `cfg.render.adaptiveGfx`, `cfg.render.ecoMode`, and `cfg.render.fpsMin`.
|
|
45
|
+
- Changed the default value of `cfg.render.deltaTimesMax` from `10` to `20`.
|
|
46
|
+
- 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
|
+
|
|
7
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.
|
|
8
|
-
- Textures created from unused GLTF images now remain stable across progressive model levels while their image and mipmap data is updated.
|
|
9
|
-
|
|
10
|
-
### Fixed
|
|
11
|
-
|
|
12
|
-
- Fixed the `Obj3D.onStart()` lifecycle so it is called before GLTF model loading begins, as documented.
|
|
13
|
-
|
|
14
|
-
## 0.29.1
|
|
15
|
-
|
|
16
|
-
### Fixed
|
|
17
|
-
|
|
18
|
-
- Fixed progressive model loading so textures belonging to materials not currently assigned to a mesh are updated through all model quality levels.
|
|
19
|
-
|
|
20
|
-
## 0.29.0
|
|
21
|
-
|
|
22
|
-
### Added
|
|
23
|
-
|
|
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
|
+
|
|
24
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.
|
|
25
|
-
- Added the exported `TextureSlot` union for the supported material slots.
|
|
26
|
-
|
|
27
|
-
## 0.28.0
|
|
28
|
-
|
|
29
|
-
### Added
|
|
30
|
-
|
|
31
|
-
- Added `Mesh3D.animMaterialColor()`, `Mesh3D.animMaterialNumeric()`, and `Mesh3D.setMaterialProperties()` as object-bound counterparts to the existing `Engine` material methods.
|
|
32
|
-
- Added the optional `needsUpdate` parameter to `Engine.animMaterialNumeric()`, `Engine.setMaterialProperties()`, `Mesh3D.animMaterialNumeric()`, and `Mesh3D.setMaterialProperties()` to request material recompilation.
|
|
33
|
-
- Added degree-based horizontal orbit constraints through `orbitCtrls.minAzimuthAngle` and `orbitCtrls.maxAzimuthAngle`.
|
|
34
|
-
- Added `ModelLoadedEvent` with `Model_Loaded` for a single model and numbered `Model1_Loaded`, `Model2_Loaded`, etc. events for progressive models.
|
|
35
|
-
- Added the `Model_Ready` event after the final progressive model variant has been applied and rendered.
|
|
36
|
-
- 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.
|
|
37
|
-
|
|
38
|
-
### Changed
|
|
39
|
-
|
|
40
|
-
- Replaced `Raycast.setOccluders()`, `Raycast.resetOccluders()`, `Raycast.trackPickables()`, and `Raycast.untrackPickables()` with the unified collider API.
|
|
41
|
-
- Renamed `Raycast.enable()` and `Raycast.disable()` to `Raycast.enablePickables()` and `Raycast.disablePickables()`.
|
|
42
|
-
- Renamed `raycast.occlInterval` to `raycast.occludeeInterval` and `raycast.occlMoveFactor` to `raycast.occlusionMoveFactor`.
|
|
43
|
-
- Changed progressive `ModelLoadingEvent` and `SceneRenderedEvent` types to numbered `Model1_Loading`, `Scene1_Rendered`, etc. events; unnumbered events remain available for a single model.
|
|
44
|
-
- Removed the `level` property from `ModelLoadingEvent`; the progressive model level is now identified by the event type.
|
|
45
|
-
- Removed the obsolete `fct` property from `ClipEvent`.
|
|
46
|
-
- Changed pointer raycasts so that registered occluders block pickables behind them.
|
|
47
|
-
|
|
48
|
-
### Fixed
|
|
49
|
-
|
|
50
|
-
- Corrected `CanvasPointerEvent` to expose `Canvas_Click`, `Canvas_Pointer_Enter`, and `Canvas_Pointer_Leave`.
|
|
51
|
-
- Added the already emitted `FpvCtrls_Disposed` event to `FpvCtrlsEvent`.
|
|
52
|
-
- Delayed the postprocessing noise check until `Model_Ready` so that postprocessing is not disabled before the final progressive model variant is rendered.
|
|
53
|
-
|
|
54
|
-
## 0.27.0
|
|
55
|
-
|
|
56
|
-
### Added
|
|
57
|
-
|
|
58
|
-
- Added progressive model loading through ordered model levels in `ModelCfg.file`.
|
|
59
|
-
|
|
60
|
-
### Changed
|
|
61
|
-
|
|
62
|
-
- Changed `ModelCfg.file` from `string | null` to `string[]`; use an empty array when no model should be loaded.
|
|
63
|
-
- Added the one-based `level` parameter to `ModelLoadingEvent` to identify the model level currently loading.
|
|
64
|
-
- Changed state names to `snake_case` and event names to `Pascal_Snake_Case`.
|
|
65
|
-
- Updated debug console output to use `State:` and `Event:` labels and the new naming conventions.
|
|
66
|
-
|
|
67
|
-
## 0.26.0
|
|
68
|
-
|
|
69
|
-
### Added
|
|
70
|
-
|
|
71
|
-
- Added TRAA as a WebGPU anti-aliasing mode through `cfg.post.aa.mode = 'traa'`.
|
|
72
|
-
- Added the `raycast.occlInterval` configuration to distribute pending marker occlusion checks evenly over a configurable time interval.
|
|
73
|
-
- Added the `raycast.occlMoveFactor` configuration to trigger new occlusion checks only after the object or camera exceeds a distance-relative movement threshold.
|
|
74
|
-
- Added `Raycast.setOccluders()` and `Raycast.resetOccluders()` to optionally restrict occlusion checks to selected scene objects.
|
|
75
|
-
- Added `Comp.trackOverlap()` and `Comp.untrackOverlap()` to manage component overlaps in screen space through the internal `CompCtrls`.
|
|
76
|
-
- Added `cfg.light.rectArea` to lazily load and initialize renderer-specific LTC data for `RectAreaLight` support.
|
|
77
|
-
|
|
78
|
-
### Changed
|
|
79
|
-
|
|
80
|
-
- Moved the shared SSR settings `maxDistance`, `thickness`, and `resolutionScale` from `cfg.post.webgl.ssr` and `cfg.post.webgpu.ssr` to `cfg.post.ssr`.
|
|
81
|
-
- Renamed the public `Raycast.trackSelectables()` and `Raycast.untrackSelectable()` methods to `Raycast.trackPickables()` and `Raycast.untrackPickables()`.
|
|
82
|
-
|
|
83
|
-
### Fixed
|
|
84
|
-
|
|
85
|
-
- 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'`.
|
|
86
|
-
|
|
87
|
-
## 0.25.0
|
|
88
|
-
|
|
89
|
-
### Added
|
|
90
|
-
|
|
91
|
-
- Added `CanvasPointerLeave` handling to the `Obj3D_Pointer_Leave` event.
|
|
92
|
-
- Added `ActionCtrls` for centralized animation action lifecycle, layer grouping, and interruptible fades.
|
|
93
|
-
- Extended `ClipEvent` with `Clip_Cancel`, `Clip_Fade_Start`, `Clip_Fade_Complete`, `Clip_Speed_Start`, and `Clip_Speed_Complete` events.
|
|
94
|
-
|
|
95
|
-
### Fixed
|
|
96
|
-
|
|
97
|
-
- 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.
|
|
98
|
-
|
|
99
|
-
## 0.24.1
|
|
100
|
-
|
|
101
|
-
### Added
|
|
102
|
-
|
|
103
|
-
- Added the `ProgressBar_Hidden` event.
|
|
104
|
-
|
|
105
|
-
### Changed
|
|
106
|
-
|
|
107
|
-
- Renamed the `aaCfg` interface to `AaCfg`.
|
|
108
|
-
|
|
109
|
-
### Fixed
|
|
110
|
-
|
|
111
|
-
- Fixed an incorrect `objTarget.position` when enabling orbit or FPV controls after setting it in `Cam3D.onReady()`.
|
|
112
|
-
|
|
113
|
-
## 0.24.0
|
|
114
|
-
|
|
115
|
-
### Added
|
|
116
|
-
|
|
117
|
-
- Added animation modes `BlendMode`, `FinishMode`, `LoopMode`, `StopMode`
|
|
118
|
-
- Added `fadeDuration` to `playClip()` and `playClipCam()`.
|
|
119
|
-
- Added `Audio.load()` to load audio without starting playback.
|
|
120
|
-
- Added the `AudioLoadedEvent` (`Audio_Loaded`) event for handling completed audio loading.
|
|
121
|
-
|
|
122
|
-
### Changed
|
|
123
|
-
|
|
124
|
-
- Replaced `pauseActions` with `stopMode` and `infinite` with `loop` in animation clip playback.
|
|
125
|
-
- Renamed `Raycast.trackSelectable()` to `Raycast.trackSelectables()`.
|
|
126
|
-
- Changed the `LightCfg` shadow defaults to match the corresponding Three.js defaults, while keeping `castShadow` enabled by default.
|
|
127
|
-
|
|
128
|
-
### Fixed
|
|
129
|
-
|
|
130
|
-
- Fixed visual stuttering when transitioning from orbit rotation to panning with damping enabled by keeping `OrbitCtrls` in `lookMode = 'target'` for all OrbitControls interactions.
|
|
131
|
-
|
|
132
|
-
## 0.23.1
|
|
133
|
-
|
|
134
|
-
### FIXED
|
|
135
|
-
|
|
136
|
-
- Convert absolute path to the Draco folder to a relative path.
|
|
137
|
-
|
|
138
|
-
## 0.23.0
|
|
139
|
-
|
|
140
|
-
### Added
|
|
141
|
-
|
|
142
|
-
- Added progressive environment map loading.
|
|
143
|
-
- Added `Cam3D` support to `Audio.setListener()` targets.
|
|
144
|
-
- Added support for using the base `Cam3D` class in the `classes.objs3D` registry.
|
|
145
|
-
|
|
146
|
-
### Fixed
|
|
147
|
-
|
|
148
|
-
- Fixed WebGL environment maps so PMREM-generated textures are not used for `THREE.Scene.background`.
|
|
149
|
-
|
|
150
|
-
## 0.22.1
|
|
151
|
-
|
|
152
|
-
### Added
|
|
153
|
-
|
|
154
|
-
- Added `cfg.render.params` for renderer-specific runtime parameters.
|
|
155
|
-
- Added `render.api` output to the infobox.
|
|
156
|
-
- Added `.blend` source files to the public example apps.
|
|
157
|
-
|
|
158
|
-
### Changed
|
|
159
|
-
|
|
160
|
-
- Renamed `cfg.webgl` and `cfg.webgpu` parameter groups to `params`.
|
|
161
|
-
|
|
162
|
-
## 0.22.0
|
|
163
|
-
|
|
164
|
-
### Changed
|
|
165
|
-
|
|
166
|
-
- Updated the framework to Three.js r185.
|
|
167
|
-
- Changed the default renderer selection to `render.api = 'auto'`.
|
|
168
|
-
- Added `envCtrls.dataType` to configure environment texture data handling.
|
|
169
|
-
- Replaced `SsrWebGpuCfg.opacity` with `SsrWebGpuCfg.intensity`.
|
|
170
|
-
|
|
171
|
-
### Fixed
|
|
172
|
-
|
|
173
|
-
- Clarified the WebGL/WebGPU renderer switch behavior.
|
|
174
|
-
- Enabled WebGPU renderer loading even when post-processing is disabled.
|
|
175
|
-
|
|
176
|
-
## 0.21.9
|
|
177
|
-
|
|
178
|
-
### Changed
|
|
179
|
-
|
|
180
|
-
- 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(...)`.
|
|
181
|
-
|
|
182
|
-
## 0.21.8
|
|
183
|
-
|
|
184
|
-
### Changed
|
|
185
|
-
|
|
186
|
-
- Added `cfg.audio.enable` to the configuration.
|
|
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
|
+
- Added `ActionCtrls` for centralized animation action lifecycle, layer grouping, and interruptible fades.
|
|
140
|
+
- Extended `ClipEvent` with `Clip_Cancel`, `Clip_Fade_Start`, `Clip_Fade_Complete`, `Clip_Speed_Start`, and `Clip_Speed_Complete` events.
|
|
141
|
+
|
|
142
|
+
### Fixed
|
|
143
|
+
|
|
144
|
+
- 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.
|
|
145
|
+
|
|
146
|
+
## 0.24.1
|
|
147
|
+
|
|
148
|
+
### Added
|
|
149
|
+
|
|
150
|
+
- Added the `ProgressBar_Hidden` event.
|
|
151
|
+
|
|
152
|
+
### Changed
|
|
153
|
+
|
|
154
|
+
- Renamed the `aaCfg` interface to `AaCfg`.
|
|
155
|
+
|
|
156
|
+
### Fixed
|
|
157
|
+
|
|
158
|
+
- Fixed an incorrect `objTarget.position` when enabling orbit or FPV controls after setting it in `Cam3D.onReady()`.
|
|
159
|
+
|
|
160
|
+
## 0.24.0
|
|
161
|
+
|
|
162
|
+
### Added
|
|
163
|
+
|
|
164
|
+
- Added animation modes `BlendMode`, `FinishMode`, `LoopMode`, `StopMode`
|
|
165
|
+
- Added `fadeDuration` to `playClip()` and `playClipCam()`.
|
|
166
|
+
- Added `Audio.load()` to load audio without starting playback.
|
|
167
|
+
- Added the `AudioLoadedEvent` (`Audio_Loaded`) event for handling completed audio loading.
|
|
168
|
+
|
|
169
|
+
### Changed
|
|
170
|
+
|
|
171
|
+
- Replaced `pauseActions` with `stopMode` and `infinite` with `loop` in animation clip playback.
|
|
172
|
+
- Renamed `Raycast.trackSelectable()` to `Raycast.trackSelectables()`.
|
|
173
|
+
- Changed the `LightCfg` shadow defaults to match the corresponding Three.js defaults, while keeping `castShadow` enabled by default.
|
|
174
|
+
|
|
175
|
+
### Fixed
|
|
176
|
+
|
|
177
|
+
- Fixed visual stuttering when transitioning from orbit rotation to panning with damping enabled by keeping `OrbitCtrls` in `lookMode = 'target'` for all OrbitControls interactions.
|
|
178
|
+
|
|
179
|
+
## 0.23.1
|
|
180
|
+
|
|
181
|
+
### FIXED
|
|
182
|
+
|
|
183
|
+
- Convert absolute path to the Draco folder to a relative path.
|
|
184
|
+
|
|
185
|
+
## 0.23.0
|
|
186
|
+
|
|
187
|
+
### Added
|
|
188
|
+
|
|
189
|
+
- Added progressive environment map loading.
|
|
190
|
+
- Added `Cam3D` support to `Audio.setListener()` targets.
|
|
191
|
+
- Added support for using the base `Cam3D` class in the `classes.objs3D` registry.
|
|
192
|
+
|
|
193
|
+
### Fixed
|
|
194
|
+
|
|
195
|
+
- Fixed WebGL environment maps so PMREM-generated textures are not used for `THREE.Scene.background`.
|
|
196
|
+
|
|
197
|
+
## 0.22.1
|
|
198
|
+
|
|
199
|
+
### Added
|
|
200
|
+
|
|
201
|
+
- Added `cfg.render.params` for renderer-specific runtime parameters.
|
|
202
|
+
- Added `render.api` output to the infobox.
|
|
203
|
+
- Added `.blend` source files to the public example apps.
|
|
204
|
+
|
|
205
|
+
### Changed
|
|
206
|
+
|
|
207
|
+
- Renamed `cfg.webgl` and `cfg.webgpu` parameter groups to `params`.
|
|
208
|
+
|
|
209
|
+
## 0.22.0
|
|
210
|
+
|
|
211
|
+
### Changed
|
|
212
|
+
|
|
213
|
+
- Updated the framework to Three.js r185.
|
|
214
|
+
- Changed the default renderer selection to `render.api = 'auto'`.
|
|
215
|
+
- Added `envCtrls.dataType` to configure environment texture data handling.
|
|
216
|
+
- Replaced `SsrWebGpuCfg.opacity` with `SsrWebGpuCfg.intensity`.
|
|
217
|
+
|
|
218
|
+
### Fixed
|
|
219
|
+
|
|
220
|
+
- Clarified the WebGL/WebGPU renderer switch behavior.
|
|
221
|
+
- Enabled WebGPU renderer loading even when post-processing is disabled.
|
|
222
|
+
|
|
223
|
+
## 0.21.9
|
|
224
|
+
|
|
225
|
+
### Changed
|
|
226
|
+
|
|
227
|
+
- 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(...)`.
|
|
228
|
+
|
|
229
|
+
## 0.21.8
|
|
230
|
+
|
|
231
|
+
### Changed
|
|
232
|
+
|
|
233
|
+
- Added `cfg.audio.enable` to the configuration.
|
package/LICENSE
CHANGED
|
@@ -50,7 +50,8 @@ customization of the illutions branding.
|
|
|
50
50
|
|
|
51
51
|
6. Restrictions
|
|
52
52
|
|
|
53
|
-
Except as expressly permitted
|
|
53
|
+
Except as expressly permitted by this license or mandatory applicable law,
|
|
54
|
+
you may not:
|
|
54
55
|
|
|
55
56
|
- redistribute, resell, or sublicense the illutions Engine as a standalone
|
|
56
57
|
package;
|
|
@@ -77,4 +78,31 @@ Third-party components and assets remain subject to their respective licenses.
|
|
|
77
78
|
The software is provided "as is", without warranties of any kind, to the maximum
|
|
78
79
|
extent permitted by applicable law.
|
|
79
80
|
|
|
81
|
+
10. Public API and Artificial Intelligence
|
|
82
|
+
|
|
83
|
+
The public availability of the minified and partially obfuscated npm package
|
|
84
|
+
confers no additional rights to its internal implementation.
|
|
85
|
+
|
|
86
|
+
Subject to this license, use of the Engine through its public API and
|
|
87
|
+
AI-assisted application development based on the published documentation and
|
|
88
|
+
public type declarations are permitted. Separately published example programs
|
|
89
|
+
remain subject to their respective licenses.
|
|
90
|
+
|
|
91
|
+
Except as permitted by this license or mandatory applicable law, you may not:
|
|
92
|
+
|
|
93
|
+
- distribute or publish the proprietary Engine as a standalone package;
|
|
94
|
+
- deobfuscate or reconstruct its internal implementation;
|
|
95
|
+
- submit proprietary implementation code to AI services for analysis or
|
|
96
|
+
reconstruction;
|
|
97
|
+
- use proprietary implementation code for AI training, model optimization,
|
|
98
|
+
creation of training datasets, or development of competing implementations.
|
|
99
|
+
|
|
100
|
+
These restrictions apply to proprietary implementation code, including
|
|
101
|
+
main.min.js and main.min.cjs, whether obtained from the npm package or delivered
|
|
102
|
+
as part of a website or application.
|
|
103
|
+
|
|
104
|
+
Incorporating and distributing the runtime as part of an application build
|
|
105
|
+
permitted by this license remains allowed. Mandatory statutory rights remain
|
|
106
|
+
unaffected. All rights not expressly granted are reserved.
|
|
107
|
+
|
|
80
108
|
Website: https://illutions.com
|
package/README.md
CHANGED
|
@@ -8,46 +8,32 @@ illutions is a proprietary Web 3D engine for building interactive browser-based
|
|
|
8
8
|
Explore all illutions examples in the GitHub Gallery:
|
|
9
9
|
[https://github.com/illutions](https://github.com/illutions)
|
|
10
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
|
-
**Optimized GLTF/GLB pipeline**
|
|
38
|
-
Load assets with Draco or Meshopt mesh compression and WebP or KTX2 textures.
|
|
39
|
-
|
|
40
|
-
**Built-in interaction and audio**
|
|
41
|
-
Use pointer-based raycasting and distance-aware spatial audio.
|
|
42
|
-
|
|
43
|
-
**Flexible environments**
|
|
44
|
-
Load HDR, EXR and texture environments with configurable rotation, intensity and background controls.
|
|
45
|
-
|
|
46
|
-
**Intelligent web markers**
|
|
47
|
-
Keep screen-space markers responsive with optimized occlusion checks, configurable occluders and movement-aware updates.
|
|
48
|
-
|
|
49
|
-
**Runtime insights and debugging**
|
|
50
|
-
Inspect runtime properties, FPS, CPU and renderer statistics with detailed state, event and console reporting.
|
|
11
|
+
## Why use Illutions?
|
|
12
|
+
|
|
13
|
+
- **Powerful state machine:**<br>
|
|
14
|
+
Use XState to coordinate events, actions, and state transitions.
|
|
15
|
+
- **Precise animation control:**<br>
|
|
16
|
+
Layer and blend clips, control loops and transitions, and use GSAP for fades and speed changes.
|
|
17
|
+
- **Small initial download:**<br>
|
|
18
|
+
Optional modules load only when their features are used.
|
|
19
|
+
- **Modern graphics APIs:**<br>
|
|
20
|
+
Render with WebGPU where supported, with automatic fallback to WebGL.
|
|
21
|
+
- **Enhanced image quality:**<br>
|
|
22
|
+
Post-processing adds anti-aliasing, ambient occlusion with SSAO/GTAO, indirect illumination with WebGPU SSGI, and screen-space reflections.
|
|
23
|
+
- **Individual graphics to each device:**<br>
|
|
24
|
+
Adaptive Graphics adjusts visual quality to the hardware's performance.
|
|
25
|
+
- **Eco Mode:**<br>
|
|
26
|
+
Reduces rendering work to lower power use and help preserve battery life.
|
|
27
|
+
- **Complex 3D scenes:**<br>
|
|
28
|
+
Load GLTF/GLB scenes with geometry, materials, textures, and animation clips.
|
|
29
|
+
- **Fast visual startup:**<br>
|
|
30
|
+
Progressive loading displays the first model level while higher-quality geometry and textures load; background maps update in stages.
|
|
31
|
+
- **Interact with 3D:**<br>
|
|
32
|
+
Users interact with scene objects and Web Components. Raycasting and events connect the scene with the page.
|
|
33
|
+
- **Live engine tuning:**<br>
|
|
34
|
+
The Inspector lets you adjust supported Illutions settings while the application runs.
|
|
35
|
+
- **Performance at a glance:**<br>
|
|
36
|
+
The Info Bar shows the renderer API, FPS, CPU/update time, and rendering statistics in real time.
|
|
51
37
|
|
|
52
38
|
## Installation
|
|
53
39
|
|