v2.5.0
playcanvas/enginev2.5.0Feb 10, 2025by mvaligursky
AI Summary
ShaderMaterial refactoring that removes auto-inclusion of standard effects and improves WGSL shader support.
Key Highlights
- ShaderMaterial no longer auto includes gamma, tonemapping and fog code
- Updates to material chunks override functionality
- Improved support for WGSL shaders
- GSplatMaterial internally uses ShaderMaterial to generate variants
Breaking Changes
- ShaderMaterial no longer auto includes gamma, tonemapping and fog code
New Features
- View Cube extra example
- Refactor first-person controller script
- Easier to override render pass used by CameraFrame
Full Release Notes
## Breaking changes * [BREAKING] ShaderMaterial no longer auto includes gamma, tonemapping and fog code by @mvaligursky in https://github.com/playcanvas/engine/pull/7331 ## Other changes * Updates to material chunks override functionality by @mvaligursky in https://github.com/playcanvas/engine/pull/7284 * Small gsplat init update by @slimbuck in https://github.com/playcanvas/engine/pull/7286 * Moved CameraFrame script to ESM folder by @mvaligursky in https://github.com/playcanvas/engine/pull/7285 * Script Types & ESLint by @kpal81xd in https://github.com/playcanvas/engine/pull/7288 * Refactor Grid class initialization and set initial values by @marklundin in https://github.com/playcanvas/engine/pull/7287 * Refactor first-person controller script by @marklundin in https://github.com/playcanvas/engine/pull/7289 * Refactor Camera controls by @kpal81xd in https://github.com/playcanvas/engine/pull/7291 * Unified handling of core shader generation defines by @mvaligursky in https://github.com/playcanvas/engine/pull/7298 * Replace skybox shader generator with a ShaderMaterial using few defines by @mvaligursky in https://github.com/playcanvas/engine/pull/7301 * GsplatMaterial interally uses ShaderMaterial to generate variants by @mvaligursky in https://github.com/playcanvas/engine/pull/7302 * WarnOnce in debug mode if material parameter is being set to undefined by @mvaligursky in https://github.com/playcanvas/engine/pull/7305 * Do not log warning when material data contains sheenGlossTint, which was removed by @mvaligursky in https://github.com/playcanvas/engine/pull/7306 * Shader WGSL example - split single shader into vertex and fragment by @mvaligursky in https://github.com/playcanvas/engine/pull/7310 * Improve preprocessor to allow for define value injection by @mvaligursky in https://github.com/playcanvas/engine/pull/7309 * View Cube extra by @kpal81xd in https://github.com/playcanvas/engine/pull/7081 * Examples build rework by @kpal81xd in https://github.com/playcanvas/engine/pull/7314 * Script Destroy by @kpal81xd in https://github.com/playcanvas/engine/pull/7315 * VecN/Color array conversion support by @kpal81xd in https://github.com/playcanvas/engine/pull/7312 * Examples build static file optimisation by @kpal81xd in https://github.com/playcanvas/engine/pull/7317 * Camera controls focus damping by @kpal81xd in https://github.com/playcanvas/engine/pull/7313 * Editor example updates by @kpal81xd in https://github.com/playcanvas/engine/pull/7319 * Easier to override render pass used by the CameraFrame by @mvaligursky in https://github.com/playcanvas/engine/pull/7321 * Improvements to sRGB support by the Texture by @mvaligursky in https://github.com/playcanvas/engine/pull/7323 * Gizmo rotate updates by @kpal81xd in https://github.com/playcanvas/engine/pull/7327 * Improved support for WGSL shaders. by @mvaligursky in https://github.com/playcanvas/engine/pull/7320 * Improvement to internal WGSL shader processing to only replace whole words by @mvaligursky in https://github.com/playcanvas/engine/pull/7329 * Outline renderer supports morphed models by @mvaligursky in https://github.com/playcanvas/engine/pull/7333 * When Texture.srgb is changed, shaders are reevaluated to be recreated by @mvaligursky in https://github.com/playcanvas/engine/pull/7336 * Adds `@enableif` to Camera Controls Script by @marklundin in https://github.com/playcanvas/engine/pull/7330 * Gsplat material creation no longer set undefined parameters on the material by @mvaligursky in https://github.com/playcanvas/engine/pull/7339 * Make Batch.destroy public as it’s useful for destroying manually created batch groups by @mvaligursky in https://github.com/playcanvas/engine/pull/7340 ## Fixes * [Fix] Handle CameraFrame script changing enabled state by @mvaligursky in https://github.com/playcanvas/engine/pull/7282 * GSplat shader fixes by @slimbuck in https://github.com/playcanvas/engine/pull/7283 * [Fix] Splat shader didn’t have gamma decode functions when gamma output is disabled by @mvaligursky in https://github.com/playcanvas/engine/pull/7290 * Gsplat chunk fix by @slimbuck in https://github.com/playcanvas/engine/pull/7292 * [Fix] Fix frequent shader variant invalidation by @mvaligursky in https://github.com/playcanvas/engine/pull/7294 * First Person Controller fixes by @kpal81xd in https://github.com/playcanvas/engine/pull/7293 * [Fix] Texture created by TextureAtlas respects its initial settings by @mvaligursky in https://github.com/playcanvas/engine/pull/7300 * [Fix] Preprocessor correctly updates position for text replacement by @mvaligursky in https://github.com/playcanvas/engine/pull/7303 * Fix some issues with CameraFrame.enabled not working correctly by @mvaligursky in https://github.com/playcanvas/engine/pull/7311 * Packaged ESM Scripts fixes by @kpal81xd in https://github.com/playcanvas/engine/pull/7316 * toArray/fromArray fixes by @kpal81xd in https://github.com/playcanvas/engine/pull/7318 * [Fix] When CameraFrame is disabled, disable SSAO being applied during forward pass by @mvaligursky in https://github.com/playcanvas/engine/pull/7322 * Fix to msdf chunk to handle gamma space correctly by @mvaligursky in https://github.com/playcanvas/engine/pull/7325 * [Fix] Multiple changes and fixed related to the way UI system handles srgb by @mvaligursky in https://github.com/playcanvas/engine/pull/7335 * Camera controls fixes by @kpal81xd in https://github.com/playcanvas/engine/pull/7337 **Full Changelog**: https://github.com/playcanvas/engine/compare/v2.4.3...v2.5.0