Summary
There's a brand new method of rendering environment lighting, check out the details here: #3783
The clustered lighting has had an API changes to its final form (still in a preview), please update your code if you're testing it: #3763
What's New
- Refactor environment lighting #3783 #3789 #3810
- Implementation of the final API for clustered lighting, shadowType support #3763
- Improvement to clustered lighting shader loop #3738
- Clustered lighting uses single light texture on devices with small number of texture units #3793
- Clustered lighting uses textureLod to sample data textures to improve dynamic branching #3794
- Add support for DDS rgba16 #3743
- Remove left handed cubemap sampling #3751
- Make text-element color and opacity setter consistent with image-element. #3766
- Small refactor to ForwardRenderer.updateShaders #3757
- Add SHADOWPASS #define to shader #3746 (@Maksims)
- Internal Debug logging functionality #3754 #3775 #3777 #3802
- Create examples for the proper use of world-space screens and world to screen coordinates. #3771
- Update the assignAnimation function signature and documentation with blend tree support #3774
- Simplify NodeGraph.path and NodeGraph.root #3792
- Refactored gpu markers using Debug module #3801
- Improved DefaultMaterial to avoid circular dependency #3791
- Camera onPreRender and onPostRender callbacks #3818
Documentation
- Properly deprecated MeshInstance.syncAabb #3797
Examples Browser
- Revamp User Interface examples. #3753
- Updated cluster spot light example to add controls to add/remove light #3796
- RenderCubemap example switched from model to render component #3816
- New Box reflection example #3800 #3819
Bug Fixes
- Update the examples browser build process to correctly copy static files and clear the static folder each build (#3737)
- Correctly enable textureLod extension on webgl1 #3744
- Fix semantics string in documentation #3747
- Corrected aabb computation for morphed meshes #3750
- Remove deprecated shader chunks #3752
- Fixed standard shader generation when GGX is enabled but there are no lights #3764
- AnimComponent - First frame bug fix #3770
- Fix to the way createMesh handles blend indices #3779
- AnimComponent - fix a bug with the assignAnimation function
- fix to shader chunk naming related to skybox #3785
- Resolve animation nodes correctly and uniquify sibling node names #3787
- Search correctly when resolving nodes in default anim binder #3798 #3799
- Load vox without palette correctly #3803
- Fix aligned array buffer access on vox models #3806
- Fix embedded ktx2 loading #3812
- Fix material emissive logic #3822