Changes
- Procedural GSplat Container API by @mvaligursky in #8352
- GSplat Extra Streams and Work Buffer Customization by @mvaligursky in #8383
- GsplatProcessor and extra data streams for gaussian splats by @mvaligursky in #8395
- GSplat Work Buffer Custom Streams Support by @mvaligursky in #8396
- Unify GSplat format shader architecture by @mvaligursky in #8377
- GSplat: Centralize texture management with GSplatStreams class by @mvaligursky in #8379
- Clarify gamma correction docs by @mvaligursky in #8386
- Modernize legacy posteffect scripts to ES6 classes and fix FXAA offset bug by @mvaligursky in #8397
- Update jsdocs of QuadRender by @mvaligursky in #8398
- Add BatchManager.getGroupById method by @mvaligursky in #8399
- Destroy WebGPU texture immediately instead of letting garbage collection do it by @mvaligursky in #8401
- Add numeric literal support to shader preprocessor by @mvaligursky in #8402
- Implement deferred destruction for WebGPU textures by @mvaligursky in #8403
- Add 2D Gaussian Splatting (2DGS) Rendering Support by @slimbuck in #8416
- Improve XrSession script documentation and consistency by @willeastcott in #8417
- feat: add snap vertical movement to XrNavigation script by @willeastcott in #8420
- Unified GSplat Picking Support by @mvaligursky in #8421
- Document ColorLUT texture format in CameraFrame JSDoc by @mvaligursky in #8424
- Remove deprecated gsplatCustomizeVS shader chunk by @mvaligursky in #8422
- Rename GSplatParams.id to enableIds by @mvaligursky in #8423
- Add support for WGSL subgroup_uniformity and subgroup_id language extensions by @mvaligursky in #8426
- GSplatProcessor: Add numSplats uniforms and automatic padding skip by @mvaligursky in #8430
Fixes
- ES2020 compatibility for GSplatSortBinWeights worker injection by @mvaligursky in #8373
- Fix preprocessor numeric literal parsing to avoid incorrect partial matches by @mvaligursky in #8404
- Fix unified gsplat work buffer extra streams for octrees and color-only updates by @mvaligursky in #8405
- Fix WebGL texture.read() for R8/RG8/RGB8 formats and add UNPACK_ALIGNMENT state caching by @mvaligursky in #8406
- Revert "[FIX] Fix ElementComponent 'mousemove' event firing outside element" by @willeastcott in #8413
- [Fix] ClusteredOmniShadows example - avoid debug render texture when destroyed by @mvaligursky in #8433
- Fix material-refraction example to use correct IOR value by @mvaligursky in #8434
- [Fix] GSplatComponent.customAabb to fall back to resource AABB by @mvaligursky in #8435
- Fix WebGPU uniform warnings in RenderPassPicker by @mvaligursky in #8436
Examples
- Flipbook engine example by @mvaligursky in #8384
- GSplat Editor Example and Gsplat Shader / GsplatProcessor API Refactoring by @mvaligursky in #8412
- Exposed the color band width parameter for radial reveal effect by @mvaligursky in #8414
- Add GSplat procedural shape scripts and example, other fixes and imrovements by @mvaligursky in #8415
- Add GsplatMesh script and example for converting meshes to gaussian splats by @mvaligursky in #8419
- Add LOD Instances Gaussian Splat example by @mvaligursky in #8429
Full Changelog: v2.15.3...v2.16.0