Add numeric literal support to shader preprocessor by @mvaligursky in https://github.com/playcanvas/engine/pull/8402
Implement deferred destruction for WebGPU textures by @mvaligursky in https://github.com/playcanvas/engine/pull/8403
Add 2D Gaussian Splatting (2DGS) Rendering Support by @slimbuck in https://github.com/playcanvas/engine/pull/8416
Improve XrSession script documentation and consistency by @willeastcott in https://github.com/playcanvas/engine/pull/8417
feat: add snap vertical movement to XrNavigation script by @willeastcott in https://github.com/playcanvas/engine/pull/8420
Unified GSplat Picking Support by @mvaligursky in https://github.com/playcanvas/engine/pull/8421
Document ColorLUT texture format in CameraFrame JSDoc by @mvaligursky in https://github.com/playcanvas/engine/pull/8424
Remove deprecated gsplatCustomizeVS shader chunk by @mvaligursky in https://github.com/playcanvas/engine/pull/8422
Rename GSplatParams.id to enableIds by @mvaligursky in https://github.com/playcanvas/engine/pull/8423
Add support for WGSL subgroup_uniformity and subgroup_id language extensions by @mvaligursky in https://github.com/playcanvas/engine/pull/8426
GSplatProcessor: Add numSplats uniforms and automatic padding skip by @mvaligursky in https://github.com/playcanvas/engine/pull/8430
Fixes
ES2020 compatibility for GSplatSortBinWeights worker injection by @mvaligursky in https://github.com/playcanvas/engine/pull/8373
Fix preprocessor numeric literal parsing to avoid incorrect partial matches by @mvaligursky in https://github.com/playcanvas/engine/pull/8404
Fix unified gsplat work buffer extra streams for octrees and color-only updates by @mvaligursky in https://github.com/playcanvas/engine/pull/8405
Fix WebGL texture.read() for R8/RG8/RGB8 formats and add UNPACK_ALIGNMENT state caching by @mvaligursky in https://github.com/playcanvas/engine/pull/8406
Revert "[FIX] Fix ElementComponent 'mousemove' event firing outside element" by @willeastcott in https://github.com/playcanvas/engine/pull/8413
[Fix] ClusteredOmniShadows example - avoid debug render texture when destroyed by @mvaligursky in https://github.com/playcanvas/engine/pull/8433
Fix material-refraction example to use correct IOR value by @mvaligursky in https://github.com/playcanvas/engine/pull/8434
[Fix] GSplatComponent.customAabb to fall back to resource AABB by @mvaligursky in https://github.com/playcanvas/engine/pull/8435
Fix WebGPU uniform warnings in RenderPassPicker by @mvaligursky in https://github.com/playcanvas/engine/pull/8436
Examples
Flipbook engine example by @mvaligursky in https://github.com/playcanvas/engine/pull/8384
GSplat Editor Example and Gsplat Shader / GsplatProcessor API Refactoring by @mvaligursky in https://github.com/playcanvas/engine/pull/8412
Exposed the color band width parameter for radial reveal effect by @mvaligursky in https://github.com/playcanvas/engine/pull/8414
Add GSplat procedural shape scripts and example, other fixes and imrovements by @mvaligursky in https://github.com/playcanvas/engine/pull/8415
Add GsplatMesh script and example for converting meshes to gaussian splats by @mvaligursky in https://github.com/playcanvas/engine/pull/8419
Add LOD Instances Gaussian Splat example by @mvaligursky in https://github.com/playcanvas/engine/pull/8429
Full Changelog: https://github.com/playcanvas/engine/compare/v2.15.3...v2.16.0