New features
- Updated few gsplat examples to use compressed version of the splat asset by @mvaligursky in #7823
- First Person script updates by @kpal81xd in #7829
- OrbitController zoom ownership by @kpal81xd in #7833
- Add support for baseVertex in index buffer creation within wireframe generator by @AlexAPPi in #7834
- Removing redundant checks in ShadowRendererDirectional by @AlexAPPi in #7827
- Add control mesh shadow in individual cascade. by @AlexAPPi in #7837
- Add immediate flag to storage buffer read by @slimbuck in #7843
- Preprocessor: simple support for precedence parentheses in #if evaluation by @liamdon in #7790
- Enable highQualitySH by default by @slimbuck in #7846
- SOGS progress events by @slimbuck in #7847
- Support for fragmentOutputTypes for WebGPU by @mvaligursky in #7852
- Pack sogs data at load by @slimbuck in #7851
Bug fixes
- Fix grading issue by @slimbuck in #7818
- Fix mesh instance sort key when using drawBucket by @mvaligursky in #7819
- Default engine export fix by @kpal81xd in #7831
- Engine & Examples build fixes by @kpal81xd in #7830
- Sogs fix by @slimbuck in #7832
- Bunde load omit include credentials by @kpal81xd in #7836
- Input source codes fixes by @kpal81xd in #7842
- [Fix] Fixed particle shader generation for cpu based particles by @mvaligursky in #7845
- [Fix] Fix to morphing using incorrect shader when multiple morph meshes are used by @mvaligursky in #7848
- [Fix] Change the default semantic to a different slot which does not map to tangents by @mvaligursky in #7849
- [Fix] CameraFrame preserves settings when handling layer being added or removed by @mvaligursky in #7850
- Fix for loading sogs without sh by @slimbuck in #7854
Full Changelog: v2.9.2...v2.10.0