v2.10.0

playcanvas/enginev2.10.0Jul 24, 2025by mvaligursky

AI Summary

A major feature release focusing on GSplat (Gaussian Splatting) improvements, WebGPU enhancements, and camera/script updates.

Key Highlights

  • GSplat asset compression
  • WebGPU fragment output support
  • OrbitController zoom ownership
  • ShadowRenderer cascade improvements
  • Immediate storage buffer reads

New Features

  • Updated few gsplat examples to use compressed version of the splat asset
  • First Person script updates
  • OrbitController zoom ownership
  • Add support for baseVertex in index buffer creation within wireframe generator
  • Removing redundant checks in ShadowRendererDirectional
  • Add control mesh shadow in individual cascade
  • Add immediate flag to storage buffer read
  • Preprocessor: simple support for precedence parentheses in #if evaluation
  • Enable highQualitySH by default
  • SOGS progress events
  • Support for fragmentOutputTypes for WebGPU
  • Pack sogs data at load

Full Release Notes

## New features
* Updated few gsplat examples to use compressed version of the splat asset by @mvaligursky in https://github.com/playcanvas/engine/pull/7823
* First Person script updates by @kpal81xd in https://github.com/playcanvas/engine/pull/7829
* OrbitController zoom ownership by @kpal81xd in https://github.com/playcanvas/engine/pull/7833
* Add support for baseVertex in index buffer creation within wireframe generator by @AlexAPPi in https://github.com/playcanvas/engine/pull/7834
* Removing redundant checks in ShadowRendererDirectional by @AlexAPPi in https://github.com/playcanvas/engine/pull/7827
* Add control mesh shadow in individual cascade. by @AlexAPPi in https://github.com/playcanvas/engine/pull/7837
* Add immediate flag to storage buffer read by @slimbuck in https://github.com/playcanvas/engine/pull/7843
* Preprocessor: simple support for precedence parentheses in #if evaluation by @liamdon in https://github.com/playcanvas/engine/pull/7790
* Enable highQualitySH by default by @slimbuck in https://github.com/playcanvas/engine/pull/7846
* SOGS progress events by @slimbuck in https://github.com/playcanvas/engine/pull/7847
* Support for fragmentOutputTypes for WebGPU by @mvaligursky in https://github.com/playcanvas/engine/pull/7852
* Pack sogs data at load by @slimbuck in https://github.com/playcanvas/engine/pull/7851

## Bug fixes
* Fix grading issue by @slimbuck in https://github.com/playcanvas/engine/pull/7818
* Fix mesh instance sort key when using drawBucket by @mvaligursky in https://github.com/playcanvas/engine/pull/7819
* Default engine export fix by @kpal81xd in https://github.com/playcanvas/engine/pull/7831
* Engine & Examples build fixes by @kpal81xd in https://github.com/playcanvas/engine/pull/7830
* Sogs fix by @slimbuck in https://github.com/playcanvas/engine/pull/7832
* Bunde load omit include credentials by @kpal81xd in https://github.com/playcanvas/engine/pull/7836
* Input source codes fixes by @kpal81xd in https://github.com/playcanvas/engine/pull/7842
* [Fix] Fixed particle shader generation for cpu based particles by @mvaligursky in https://github.com/playcanvas/engine/pull/7845
* [Fix] Fix to morphing using incorrect shader when multiple morph meshes are used by @mvaligursky in https://github.com/playcanvas/engine/pull/7848
* [Fix] Change the default semantic to a different slot which does not map to tangents by @mvaligursky in https://github.com/playcanvas/engine/pull/7849
* [Fix] CameraFrame preserves settings when handling layer being added or removed by @mvaligursky in https://github.com/playcanvas/engine/pull/7850
* Fix for loading sogs without sh by @slimbuck in https://github.com/playcanvas/engine/pull/7854

**Full Changelog**: https://github.com/playcanvas/engine/compare/v2.9.2...v2.10.0