v2.9.0
playcanvas/enginev2.9.0Jul 3, 2025by mvaligursky
AI Summary
Significant release introducing GSplat optimizations, WebGPU indirect drawing, compute shaders, and Node.js support for GSplat.
Key Highlights
- GSplat optimizations (limit large gaussians, fastExp)
- WebGPU indirect draw calls
- Compute shader support
- GSplat worker on Node.js
New Features
- Limit large gaussians
- Support for indirect draw calls for WebGPU
- Add support for texture async write
- Compute shaders preprocess the provided source code
- fastExp implementation for gsplat rendering
- Support gsplat worker on nodejs
- Implementation of baseVertex support
- Inputs overhaul (CameraControls updated)
- First Person Script & InputSource updates
- Beta builds (manual trigger)
- Add asset load event
- Add fast render path for SOGS spherical harmonics
- Gizmo WGSL shaders
- Grids script WGSL Shader
- Quat tests
- toArray type overloading
- Slightly expanded functionality of Texture.resize
- Adds export conditions
- Updated jsdocs for Material class
- Split sorter code
Full Release Notes
## What's Changed * Limit large gaussians by @slimbuck in https://github.com/playcanvas/engine/pull/7781 * Support for indirect draw calls for WebGPU by @mvaligursky in https://github.com/playcanvas/engine/pull/7777 * Add support for texture async write by @slimbuck in https://github.com/playcanvas/engine/pull/7782 * Additional frustum culling events in order to better support indirect drawing by @mvaligursky in https://github.com/playcanvas/engine/pull/7778 * Compute shaders preprocess the provided source code by @mvaligursky in https://github.com/playcanvas/engine/pull/7783 * fastExp implementation for gsplat rendering by @slimbuck in https://github.com/playcanvas/engine/pull/7784 * Remove platform/audio by @willeastcott in https://github.com/playcanvas/engine/pull/7774 * Support gsplat worker on nodejs by @slimbuck in https://github.com/playcanvas/engine/pull/7770 * Implementation of baseVertex support by @AlexAPPi in https://github.com/playcanvas/engine/pull/7765 * Inputs overhaul (CameraControls updated) by @kpal81xd in https://github.com/playcanvas/engine/pull/7779 * First Person Script & InputSource updates by @kpal81xd in https://github.com/playcanvas/engine/pull/7792 * Beta builds (manual trigger) by @kpal81xd in https://github.com/playcanvas/engine/pull/7798 * Add asset load event by @slimbuck in https://github.com/playcanvas/engine/pull/7803 * Add fast render path for SOGS spherical harmonics by @slimbuck in https://github.com/playcanvas/engine/pull/7796 * Gizmo WGSL shaders by @kpal81xd in https://github.com/playcanvas/engine/pull/7804 * Grids script WGSL Shader by @kpal81xd in https://github.com/playcanvas/engine/pull/7805 * Quat tests by @kpal81xd in https://github.com/playcanvas/engine/pull/7806 * toArray type overloading by @kpal81xd in https://github.com/playcanvas/engine/pull/7808 * Slightly expanded functionality of Texture.resize by @mvaligursky in https://github.com/playcanvas/engine/pull/7807 * Adds export conditions by @marklundin in https://github.com/playcanvas/engine/pull/7810 * Updated jsdocs for Material class by @mvaligursky in https://github.com/playcanvas/engine/pull/7813 * Split sorter code by @slimbuck in https://github.com/playcanvas/engine/pull/7814 ## Fixes * Hide PrimitiveMode example which is only for internal testing by @mvaligursky in https://github.com/playcanvas/engine/pull/7768 * Fix doc types in rigidbody system by @AlexAPPi in https://github.com/playcanvas/engine/pull/7773 * Fix to anisotropy-lamp example - layer order changed for sky to be captured by grab pass by @mvaligursky in https://github.com/playcanvas/engine/pull/7775 * Sogs decompress fix by @slimbuck in https://github.com/playcanvas/engine/pull/7786 * Fix shaderParticle assignment (#7787) by @michaelfranzl in https://github.com/playcanvas/engine/pull/7788 * Fix WebGPU profiler by @slimbuck in https://github.com/playcanvas/engine/pull/7793 * First Person Controller fixes by @kpal81xd in https://github.com/playcanvas/engine/pull/7794 * Workflow Publishing fix by @marklundin in https://github.com/playcanvas/engine/pull/7797 * ESM Template instantiate fix by @marklundin in https://github.com/playcanvas/engine/pull/7809 * screenToWorld & worldToScreen camera rect by @kpal81xd in https://github.com/playcanvas/engine/pull/7816 **Full Changelog**: https://github.com/playcanvas/engine/compare/v2.8.2...v2.9.0