Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning
[1.5.1] - 2025-07-22
Added
-
Post-processing pipeline in ThreeJSViewer using EffectComposer, adding Unreal Bloom, Gamma Correction, and SMAA effects for enhanced visual quality.
-
Utility function to build viewer URLs with query parameters such as fov, reflection, useNoShadows, and filename.
-
Interactive cursor styles in ThreeJSViewer to improve user feedback during model interaction.
-
Global flag window.isSceneReady to indicate when the scene is fully initialized, enabling server-side rendering automation.
-
Support for dynamic scene configuration via templateConfig in Renderer, with the ability to trigger image rendering using window.triggerServerRender.
-
Close button for mobile modal in ARShadesDemo with custom styling and improved accessibility.
-
Dynamic support for fieldOfView as a URL parameter in ARShadesDemo, enabling viewer customization on the fly.
-
ARShadesDemo page, to dynamically manage the single and multiple 3DViewer.
Changed
-
Refactored all Three.js imports in ThreeJSViewer, ARScene, Scene, Model, MaterialController, MaterialPresets, and Renderer to use named imports, improving clarity and tree-shaking performance.
-
Updated useModelLoader logic in ThreeJSViewer to handle conditional caching based on the environment.
-
Comprehensive refactor of material management in Model and MaterialPresets:
-
Introduced helpers like getClonedModel, getClonedMaterial, getMaterialWithPreset, and getRestoredMaterial.
-
Added internal maps: originalMaterialsMap, adjustedMaterialsMap, clonedMaterialsMap, and materialsWithPreset to streamline material cloning and restoration.
-
-
Updated lastUpdate field formatting to use ISO strings in MaterialPresets and Renderer for consistency.
-
Default fieldOfView changed from 15° to 23° in ThreeJSViewer for a wider model view.
-
Scene preset updated from 'city' to 'apartment' in Scene.js for more realistic reflections, if the viewer has not a default one.
-
Tweaked reflective material parameters: adjusted blur, mixBlur, mixStrength, mirror, color, and opacity for a better visual outcome.
-
Reduced orbitControls.maxDistance to 0.65 for more focused user interactions with the model.
-
Enhanced menus and mobile/desktop toggle behavior in ARShadesDemo, improving layout and responsiveness.
-
Changes to the fetching of the Catologues, Products, and Variants from Firebase Firestore.
Fixed
-
Properly reset model state and clear GLTF cache when exiting AR sessions (Model, ARScene).
-
Fixed issues when restoring materials after GLB export by using cloned model logic to prevent side effects.
-
Resolved transparency and depthWrite issues for transmissive materials (Model, MaterialController).
-
Correctly handled sheenColor scaling during GLB export to reflect the actual preset value.
-
Eliminated duplicated materials and ensured correct naming consistency in exported .glb models.
-
Improved iframe URL validation and construction in ARShadesDemo.
[1.5.0] - 2025-05-26
Added
-
New ThreeJSViewer, Scene, and Model components to replace the legacy viewer based on Google's ModelViewer.
-
Use of Threejs to improve real-time rendering of 3D viewer.
-
MaterialController components to enhance dynamic material configuration.
-
Improvements in handling realistic materials (reflective, transmissive, lenses).
-
Edit the 3D scene with a reflective plane under the glasses.
-
Redux system to manage material names and presets application (now globalized via MaterialConfigsState).
-
High-resolution screenshot feature in the ThreeJSViewer component.
-
Geometric parameters (size, center) to improve rendering adaptation.
-
Advanced AR support: scale, rotation, initial positioning, visual feedback, and shadow plane.
-
AR session exit overlay and improved session control.
-
GLB/USDZ fallback support for cross-platform AR compatibility.
-
GLB export with applied material presets, using a scene reference passed to MaterialPresets.js.
-
Ability to create a material preset from a material current configuration and store or update it in Firebase.
-
MaterialPresets page to apply or remove presets dynamically to model materials.
Changed
-
Refactored material management logic and improved the Model component.
-
Updated scene rendering for better reflections and lighting (e.g., Scene.js, calculateOptimalFOV).
-
Optimized material map handling and preset logic when presets are added or removed.
Fixed
-
Error handling fixes when loading models (ErrorScreen, Model, ThreeJSViewer).
-
Resolved transparency and blending issues in transmissive materials.