v2.11.0

playcanvas/enginev2.11.0Sep 3, 2025by mvaligursky

AI Summary

A major update introducing unified Gaussian Splatting rendering, support for the new SOG v2 format, and various enhancements to camera controls and gizmos.

Key Highlights

  • Support for SOG v2 format
  • Initial implementation of unified gsplat rendering
  • Support for compressed sliced 3D texture formats on WebGPU
  • Updates to Gizmo API and features

New Features

  • Support for SOG v2 format
  • Initial implementation of unified gsplat rendering
  • Support for compressed sliced 3D texture formats on WebGPU
  • Gizmo API changes

Full Release Notes

## Changes
* Support SOG v2 format by @slimbuck in https://github.com/playcanvas/engine/pull/7929
* Initial implementation of unified gsplat rendering by @mvaligursky in https://github.com/playcanvas/engine/pull/7825
* Unified gsplat architecture is available to GSplatComponent by @mvaligursky in https://github.com/playcanvas/engine/pull/7861
* Unified gsplat rendering - changes to sorter job scheduling by @mvaligursky in https://github.com/playcanvas/engine/pull/7864
* Add progress for img loads by @slimbuck in https://github.com/playcanvas/engine/pull/7867
* Unified splats - do not generate global centers array on main thread due to cost by @mvaligursky in https://github.com/playcanvas/engine/pull/7868
* Generate intervals texture for unified splat copying on GPU by @mvaligursky in https://github.com/playcanvas/engine/pull/7881
* Initial implementaion of octree for unified GSplat rendering by @mvaligursky in https://github.com/playcanvas/engine/pull/7893
* Further work on LOD system for gaussian splatting by @mvaligursky in https://github.com/playcanvas/engine/pull/7911
* Unified gsplat - use render pass to update work buffer by @mvaligursky in https://github.com/playcanvas/engine/pull/7913 and https://github.com/playcanvas/engine/pull/7914
* Small cleanup in unified gsplat codebase by @mvaligursky in https://github.com/playcanvas/engine/pull/7934
* Unified splats - replaced temporary hardcoded distance ranged by proper evaluation by @mvaligursky in https://github.com/playcanvas/engine/pull/7936
* Tweak contributing guide and PR template by @willeastcott in https://github.com/playcanvas/engine/pull/7883
* Gizmo updates by @kpal81xd in https://github.com/playcanvas/engine/pull/7887
* Don’t destroy SOGS packing shader by @mvaligursky in https://github.com/playcanvas/engine/pull/7905
* Support for compressed sliced 3d texture formats on WebGPU by @mvaligursky in https://github.com/playcanvas/engine/pull/7904
* chore(deps): update actions/checkout action to v5 by @renovate[bot] in https://github.com/playcanvas/engine/pull/7902
* Gizmo features & fixes by @kpal81xd in https://github.com/playcanvas/engine/pull/7907
* Gizmo API changes by @kpal81xd in https://github.com/playcanvas/engine/pull/7910
* Gizmo style updates by @kpal81xd in https://github.com/playcanvas/engine/pull/7935

## Bugfixes
* Camera controls default attribute fix by @kpal81xd in https://github.com/playcanvas/engine/pull/7859
* Add backwards compatibility function by @slimbuck in https://github.com/playcanvas/engine/pull/7860
* Fixes ESM template clone issue by @marklundin in https://github.com/playcanvas/engine/pull/7863
* Fixed manual docs link to a valid url for shader migration by @mvaligursky in https://github.com/playcanvas/engine/pull/7866
* Android sogs fix by @slimbuck in https://github.com/playcanvas/engine/pull/7870
* [Fix] Fixed hight texture shader compilation by @mvaligursky in https://github.com/playcanvas/engine/pull/7885
* First Person Controller script fixes by @kpal81xd in https://github.com/playcanvas/engine/pull/7891
* Input source pointer fixes by @kpal81xd in https://github.com/playcanvas/engine/pull/7898
* Camera controls pan drift fix by @kpal81xd in https://github.com/playcanvas/engine/pull/7899
* Don’t allocate default clustered lighting textures when clustered lighting is disabled by @mvaligursky in https://github.com/playcanvas/engine/pull/7894
* Fix to particle alignment fix on WebGPU by @mvaligursky in https://github.com/playcanvas/engine/pull/7895
* Examples browser version fixes by @kpal81xd in https://github.com/playcanvas/engine/pull/7900
* Gizmo span line fix by @kpal81xd in https://github.com/playcanvas/engine/pull/7908
* Removed passing obsolete parameter to an internal function by @mvaligursky in https://github.com/playcanvas/engine/pull/7912
* [Fix] Changes to ParticleEmitter to properly destroy the meshInstance by @mvaligursky in https://github.com/playcanvas/engine/pull/7901
* Gizmo camera overlap fix by @kpal81xd in https://github.com/playcanvas/engine/pull/7916
* Gizmo infinity fix by @kpal81xd in https://github.com/playcanvas/engine/pull/7918
* Gizmo scale fixes by @kpal81xd in https://github.com/playcanvas/engine/pull/7919
* [Fix] ScreenComponent now copies screen.priority and scaleBlend properties by @mvaligursky in https://github.com/playcanvas/engine/pull/7931
* [Fix] - Fix related to behavior change where texture array no longer needs manual upload by @mvaligursky in https://github.com/playcanvas/engine/pull/7939
* Fix to CameraFrame script to not allow blurLevel of 0 by @mvaligursky in https://github.com/playcanvas/engine/pull/7941
* [Fix] Picker on WebGPU no longer creates a resource inside its render pass by @mvaligursky in https://github.com/playcanvas/engine/pull/7940

## Examples
* Global sorting gaussian splatting example using unified gsplat by @mvaligursky in https://github.com/playcanvas/engine/pull/7937
* Small fix for example shader by @slimbuck in https://github.com/playcanvas/engine/pull/7938

**Full Changelog**: https://github.com/playcanvas/engine/compare/v2.10.6...v2.11.0