Releases: playcanvas/engine
Releases · playcanvas/engine
v2.6.0
Breaking changes
- some internal shader chunks have changed, this could be a breaking change for you if you have overwritten those.
Changes
- More configurable order for mesh rendering by @mvaligursky in #7422
- Skybox shaders on WebGPU use native WGSL chunks by @mvaligursky in #7343
- Refactor fragment shader generation of lit-material for few passes by @mvaligursky in #7344
- Processor handles loop of includes by @mvaligursky in #7346
- Add visibility conditions for SSAO, Bloom, Grading, Vignette, Fringin… by @marklundin in #7347
- Preprocessor handles || and && in the expressions by @mvaligursky in #7350
- Immediate line rendering on WebGPU uses native WGSL shader by @mvaligursky in #7355
- Ministats rendering shader uses WGSL on WebGPU by @mvaligursky in #7356
- Changes canvas to optional dependency by @kpal81xd in #7358
- OutlineRenderer meshInstances null check by @kpal81xd in #7360
- Partially refactored the lighting / shadowing part of the lit-shader generation by @mvaligursky in #7352
- Moved zero render target checked to a better place by @mvaligursky in #7354
- Avoid using __ in defines to avoid GLSL warning by @mvaligursky in #7373
- Shader allocation tracing now logs the language used (GLSL / WGSL) by @mvaligursky in #7376
- Improvements to Preprocessor - spaces after #else, comments in #include blocks by @mvaligursky in #7377
- Use a Vogel spiral in the sampling method of PCSS for directional light by @querielo in #7371
- Lit/Standard material vertex shader is now a chunk driven by defines by @mvaligursky in #7381
- A step towards converting lit-shader fragment generator to be define driven by @mvaligursky in #7385
- Adjusted syntax of variables the preprocessor uses for injection by @mvaligursky in #7386
- Futher refactoring of fragment part of the lit-shader by @mvaligursky in #7387
- Refactor the way lit-shader integrates lightmapping by @mvaligursky in #7388
- Refactoring of TBN shader part of lit-shader by @mvaligursky in #7389
- LitShader generator refactoring - the main is a single string now by @mvaligursky in #7390
- Further litShader refactoring by @mvaligursky in #7393
- Update to the way we strip unused MRT outputs by @mvaligursky in #7395
- Further lit-shader refactoring by @mvaligursky in #7396
- Refactoring fo envMultiply and envConst chunks by @mvaligursky in #7399
- Refactor specular occlusions shader chunks by @mvaligursky in #7400
- Refactor reflection-source related chunk and code by @mvaligursky in #7401
- Refactor of lit-shader generator, mostly related to the ambient lighting by @mvaligursky in #7408
- Preprocessor reports errors in mismatched #ifdef #endif by @mvaligursky in #7409
- Refactoring the lighting code from lit-shader to defines driven chunks by @mvaligursky in #7414
- Finalizing the lit-shader refactoring by moving shader code to chunks by @mvaligursky in #7416
- Pin dependencies by @renovate in #7419
- Update all npm dependencies by @renovate in #7420
- Refactor new and existing internal lighting related chunks to avoid globals by @mvaligursky in #7418
- Update dependency node to v22 by @renovate in #7423
- Improved code formatting of defines for reproject texture shader by @mvaligursky in #7428
- Outline renderer prepares even disabled entities by @mvaligursky in #7427
- Small refactor of internal reproject code / shader by @mvaligursky in #7429
- Validate shader vertex attributes are available in vertex buffers by @mvaligursky in #7431
- Reproject texture functionality uses native WGSL shaders on WebGPU by @mvaligursky in #7434
- Improved WebGPU error reporting, main focus on shader compilation issues by @mvaligursky in #7435
- When the light uses unsupported shadow type, remap it to PCF3 by @mvaligursky in #7441
- Use less memory loading compressed.ply by @slimbuck in #7442
- Small internal refactor of ShaderProcessor by @mvaligursky in #7446
- Convert internal morph target blending shader to WGSL on WebGPU by @mvaligursky in #7445
- GS sorter speedup by @slimbuck in #7447
- Improved validation of vertex attributes required by the shader by @mvaligursky in #7448
Fixes
- Image Element mask fix by @kpal81xd in #7341
- [Fix] Fixes to processing WGSL shader by @mvaligursky in #7342
- [Fix] Generate valid shader when multiple lights with cascades are used at the same time by @mvaligursky in #7369
- [Fix] Fixed incorrect 2D texture array setup with compressed format by @mvaligursky in #7372
- ensure postrender callback is cleaned up in outline renderer by @MAG-AdrianMeredith in #7367
- [Fix] Fix to texture upload issue on WebGPU by @mvaligursky in #7375
- Fixed grid enabled/disabled by @kpal81xd in #7374
- Fix gsplat blending by @slimbuck in #7379
- Fix gsplat rounding issues by @slimbuck in #7380
- Fix gsplat discoloration by @slimbuck in #7383
- Grid render component fix by @kpal81xd in #7384
- [Fix] Create a dummy framebuffer on NullDevice to avoid undefined access by @mvaligursky in #7382
- [Fix] StandardMaterial.useTonemap parameter is no longer ignored by @mvaligursky in #7405
- [Fix] Fix reversed face culling when rendering shadows on WebGPU by @mvaligursky in #7407
- Gsplat viewport size fix by @slimbuck in #7425
- Fix to Lightmapper’s ambient baking when clustered lighting is enabled by @mvaligursky in #7433
- Fixes to VSM shadow sampling by @mvaligursky in #7436
- [FIX] Allow
GSplatComponent#clone
to handle null instance by @willeastcott in #7437 - [Fix] Dummy texture used by the default Sprite material uses sRGB format by @mvaligursky in #7440
- Fix for recent change by @slimbuck in #7443
- [Fix] NullGraphicsDevice initializes device caps by @mvaligursky in #7444
- [FIX] Ensure base URL is correctly when origin is null by @marklundin in #7439
Examples
- Shadow catcher shader support + script + example by @mvaligursky in #7426
- 9-Sliced UI rendering engine example + related shader fix by @mvaligursky in #7391
- Examples disable user selection by @kpal81xd in #7362
- Pin monaco version to 0.33.0 by @kpal81xd in #7424
- Gizmo doc example update by @kpal81xd in #7432
- Moved ShaderCompile example to test folder by @mvaligursky in #7449
- Updated HDR example to not allow control for UI tonemapping by @mvaligursky in #7452
Full Changelog: v2.5.2...v2.6.0
v2.5.2
Fixes
- [Fix] StandardMaterial.useTonemap parameter is no longer ignored by @mvaligursky in #7405
- [Fix] Fix reversed face culling when rendering shadows on WebGPU by @mvaligursky in #7407
- Gsplat viewport size fix by @slimbuck in #7425
- [FIX] Allow GSplatComponent#clone to handle null instance by @willeastcott in #7437
- [Fix] Dummy texture used by the default Sprite material uses sRGB format by @mvaligursky in #7440
Full Changelog: v2.5.1...v2.5.2
v2.5.1
Fixes
- Image Element mask fix by @kpal81xd in #7341
- Fixes to processing WGSL shader by @mvaligursky in #7342
- Outline renderer null check for meshInstances by @kpal81xd in #7360
- Moved zero render target check to a better place by @mvaligursky in #7354
- Generate valid shader when multiple lights with cascades are used at the same time by @mvaligursky in #7369
- Fixed incorrect 2D texture array setup with compressed format by @mvaligursky in #7372
- Ensure postrender callback is cleaned up in outline renderer by @MAG-AdrianMeredith in #7367
- Fix to texture upload issue on WebGPU by @mvaligursky in #7375
- Fixed grid enabled/disabled by @kpal81xd in #7374
- Fix gsplat blending by @slimbuck in #7379
- Fix gsplat rounding issues by @slimbuck in #7380
- Fix gsplat discoloration by @slimbuck in #7383
- Grid render component fix by @kpal81xd in #7384
Full Changelog: v2.5.0...v2.5.1
v2.5.0
Breaking changes
- [BREAKING] ShaderMaterial no longer auto includes gamma, tonemapping and fog code by @mvaligursky in #7331
Other changes
- Updates to material chunks override functionality by @mvaligursky in #7284
- Small gsplat init update by @slimbuck in #7286
- Moved CameraFrame script to ESM folder by @mvaligursky in #7285
- Script Types & ESLint by @kpal81xd in #7288
- Refactor Grid class initialization and set initial values by @marklundin in #7287
- Refactor first-person controller script by @marklundin in #7289
- Refactor Camera controls by @kpal81xd in #7291
- Unified handling of core shader generation defines by @mvaligursky in #7298
- Replace skybox shader generator with a ShaderMaterial using few defines by @mvaligursky in #7301
- GsplatMaterial interally uses ShaderMaterial to generate variants by @mvaligursky in #7302
- WarnOnce in debug mode if material parameter is being set to undefined by @mvaligursky in #7305
- Do not log warning when material data contains sheenGlossTint, which was removed by @mvaligursky in #7306
- Shader WGSL example - split single shader into vertex and fragment by @mvaligursky in #7310
- Improve preprocessor to allow for define value injection by @mvaligursky in #7309
- View Cube extra by @kpal81xd in #7081
- Examples build rework by @kpal81xd in #7314
- Script Destroy by @kpal81xd in #7315
- VecN/Color array conversion support by @kpal81xd in #7312
- Examples build static file optimisation by @kpal81xd in #7317
- Camera controls focus damping by @kpal81xd in #7313
- Editor example updates by @kpal81xd in #7319
- Easier to override render pass used by the CameraFrame by @mvaligursky in #7321
- Improvements to sRGB support by the Texture by @mvaligursky in #7323
- Gizmo rotate updates by @kpal81xd in #7327
- Improved support for WGSL shaders. by @mvaligursky in #7320
- Improvement to internal WGSL shader processing to only replace whole words by @mvaligursky in #7329
- Outline renderer supports morphed models by @mvaligursky in #7333
- When Texture.srgb is changed, shaders are reevaluated to be recreated by @mvaligursky in #7336
- Adds
@enableif
to Camera Controls Script by @marklundin in #7330 - Gsplat material creation no longer set undefined parameters on the material by @mvaligursky in #7339
- Make Batch.destroy public as it’s useful for destroying manually created batch groups by @mvaligursky in #7340
Fixes
- [Fix] Handle CameraFrame script changing enabled state by @mvaligursky in #7282
- GSplat shader fixes by @slimbuck in #7283
- [Fix] Splat shader didn’t have gamma decode functions when gamma output is disabled by @mvaligursky in #7290
- Gsplat chunk fix by @slimbuck in #7292
- [Fix] Fix frequent shader variant invalidation by @mvaligursky in #7294
- First Person Controller fixes by @kpal81xd in #7293
- [Fix] Texture created by TextureAtlas respects its initial settings by @mvaligursky in #7300
- [Fix] Preprocessor correctly updates position for text replacement by @mvaligursky in #7303
- Fix some issues with CameraFrame.enabled not working correctly by @mvaligursky in #7311
- Packaged ESM Scripts fixes by @kpal81xd in #7316
- toArray/fromArray fixes by @kpal81xd in #7318
- [Fix] When CameraFrame is disabled, disable SSAO being applied during forward pass by @mvaligursky in #7322
- Fix to msdf chunk to handle gamma space correctly by @mvaligursky in #7325
- [Fix] Multiple changes and fixed related to the way UI system handles srgb by @mvaligursky in #7335
- Camera controls fixes by @kpal81xd in #7337
Full Changelog: v2.4.3...v2.5.0
v1.76.3
Fixes
- ScriptAttribute fix by @marklundin in #7192
- Refactor script loading logic in ScriptHandler by @marklundin in #7161
- ESM Preload Fix by @marklundin in #7161
Full Changelog: v1.76.2...v1.76.3
v2.4.3
Fixes
- Fix some issues with CameraFrame.enabled not working correctly by @mvaligursky in #7311
Full Changelog: v2.4.2...v2.4.3
v2.4.2
Fixes
- Fix frequent shader variant invalidation by @mvaligursky in #7294
- First Person Controller fixes by @kpal81xd in #7293
- Texture created by TextureAtlas respects its initial settings by @mvaligursky in #7300
- Preprocessor correctly updates position for text replacement by @mvaligursky in #7303
- WarnOnce in debug mode if material parameter is set to undefined by @mvaligursky in #7305
- Do not log warning for material data containing sheenGlossTint by @mvaligursky in #7306
Full Changelog: v2.4.1...v2.4.2
v2.4.1
##Fixes
- Handle CameraFrame script changing enabled state by @mvaligursky in #7282
- GSplat shader fixes by @slimbuck in #7283
- Updates to material chunks override functionality by @mvaligursky in #7284
- Small GSplat initialization update by @slimbuck in #7286
- Moved CameraFrame script to ESM folder by @mvaligursky in #7285
- Fixed typing and ESLint for ESM scripts by @kpal81xd in #7288
- Refactor Grid class initialization and set initial values by @marklundin in #7287
- Fixed splat shader gamma decode issues when gamma output is disabled by @mvaligursky in #7290
- Refactor first-person controller script by @marklundin and @kpal81xd in #7289
- Refactor Camera controls by @kpal81xd and @marklundin in #7291
- GSplat chunk fix by @slimbuck in #7292
Full Changelog: v2.4.0...v2.4.1
v2.4.0
Breaking changes
- [BREAKING] A few shader chunks available to
ShaderMaterial
use their original names by @mvaligursky in #7277 - [BREAKING] Rename
skinTex
andskinBatchTex
chunk names toskin
andskinBatch
by @mvaligursky in #7278 - [BREAKING] Deprecate WebGL1 based texture sampling names with
_EXT
by @mvaligursky in #7221
Other changes
- Depth of Field implementation using render passes by @mvaligursky in #7210
- Small change to the default level of
blurLevel
for the HDR Bloom by @mvaligursky in #7166 - Gsplat shader chunk updates by @slimbuck in #7169
- Export internal
CameraShaderParams
class which is currently required by the Editor by @mvaligursky in #7168 - Speed up gsplat sh packaging by @slimbuck in #7170
- Add basic XR navigation ESM script by @willeastcott in #7171
- Updated the way shaders include tonemapping chunks by @mvaligursky in #7174 #7176
- Update to render passes - generate scene half sized texture by @mvaligursky in #7175
- Further gsplat shader refinements by @slimbuck in #7185
- Texture tracing log contains its pixel format by @mvaligursky in #7190
- Clamp GS SH coefficients correctly by @slimbuck in #7193
- Add skinning support to glTF exporter by @willeastcott in #7197
- Hide component constructors by @willeastcott in #7203
- Delete unused import by @willeastcott in #7207
- Remove
CameraComponentSystem
onUpdate
handler by @willeastcott in #7208 - [Fix] Change gloss default value to 1 by @mvaligursky in #7216
- Migrate
TextElement
tests from Karma to Node by @willeastcott in #7217 - Migrate
ImageElement
tests from Karma to Node by @willeastcott in #7219 - DOF support for WebGPU by @mvaligursky in #7218
- Update NPM depenedencies by @willeastcott in #7222
- DOF - near blur is optional by @mvaligursky in #7220
- Switch to
node-canvas
for running unit tests by @willeastcott in #7223 - Move unit test assets to a new folder by @willeastcott in #7224
- Updated preprocessor to optionally remove defines from source by @mvaligursky in #7226
- Minor refactor to unit tests by @willeastcott in #7227
- Migrate
ScriptComponent
tests from Karma to Node by @willeastcott in #7228 - Migrate
BundleRegistry
tests from Karma to Node by @willeastcott in #7229 - Optimized shadow cascade matrix selector shader function by @mvaligursky in #7230
- Tweak
jsdom
and server for unit tests by @willeastcott in #7231 - Migrate
SpriteComponent
tests from Karma to Node by @willeastcott in #7232 - Address PCSS softness by @GSterbrant in #5483
- Shadow cascades can be cross-blended using dithering by @mvaligursky in #7233
- Migrate
BundleHandler
tests from Karma to Node by @willeastcott in #7235 - Migrate
Http
tests from Karma to Node by @willeastcott in #7236 - [ImgBot] Optimize images by @imgbot in #7225
- Migrate
ElementDragHelper
tests from Karma to Node by @willeastcott in #7237 - Remove Karma by @willeastcott in #7238
- Render pass tracing now logs values used to clear color/depth/stencil buffer by @mvaligursky in #7239
- Bun build support by @kpal81xd in #7242
- Handle NaNs in GSplat data by @slimbuck in #7243
- Store PLY header comments by @slimbuck in #7246
- Support 1 and 2 bands of SH in uncompressed gsplat data by @slimbuck in #7248
- ESM Preload Fix by @marklundin in #7161
- ESM Script clone fix by @marklundin in #7251
- Use Dependabot to update NPM dependencies by @willeastcott in #7254
- Migrate from Terser and Babel to SWC by @marklundin in #6920
- Added DOF support to
CameraFrame
script by @mvaligursky in #7272 - Add arrow key controls to
camera-controls.mjs
by @vincentwoo in #7270 - Support chunks to be included by VS of
ShaderMaterial
by @mvaligursky in #7276 - ESM First Person Controller by @kpal81xd in #7252
- ESM Grid Mesh Script by @kpal81xd in #7147
ShaderMaterial
shader generator - remove manually specified chunk includes by @mvaligursky in #7279ShaderMaterial
generator providesGAMMA
andTONEMAPPING
defines to VS by @mvaligursky in #7280- Remove obsolete deprecated functionality for
litShaderArgs
by @mvaligursky in #7281 - Camera controls updates by @kpal81xd in #7205
Fixes
- [Fix] The material loading do not print validation warnings for few unsupported properties by @mvaligursky in #7167
- [WebglGraphicsDevice] Catch and return async error in readTextureAsync by @liamdon in #7173
- [Fix] Fix to just introduced tonemapping issue with HDR by @mvaligursky in #7176
- [Fix] Exposed
PIXELFORMAT_R8
format for locking by @mvaligursky in #7177 #7178 - Fix negative tonemapped values by @slimbuck in #7179
- Fixes for gsplat spherical harmonics by @slimbuck in #7182
- [Fix] Correctly handle VSM not being supported by clustered lighting by @mvaligursky in #7184
- Shader fix by @slimbuck in #7187
- Add missing early-out in gsplat shader by @slimbuck in #7189
- [FIX] Allow sphere maps to work when an envAtlas is set by @willeastcott in #7201
- [FIX] Correctly set texture dimensions from video source by @willeastcott in #7200
- [FIX] Ensure enabled property is cloned for all components by @willeastcott in #7199
- [FIX] Handle case where
pbrMetallicRoughness
is not present by @willeastcott in #7198 - Minor refactor of
CameraComponent
by @willeastcott in #7209 - Eliminate all imports in JSDoc blocks by @willeastcott in #7212
- Delete unused unit test assets by @willeastcott in #7213
- Migrate
AssetReference
tests from Karma to Node by @willeastcott in #7214 - [Fix] HDR lightmap baking is working by @mvaligursky in #7247
- Fix Apple Silicon Tests by @marklundin in #7253
- [Fix] Remove PVRT texture formats with sRGB encoding as not supported on any platform by @mvaligursky in #7256
- Expose PLY load progress by @slimbuck in #7259
- Overhaul of directional PCSS shadows by @mvaligursky in #7258
- Configure Renovate by @renovate in #7260
- Migrate renovate config by @renovate in #7264
- Renovate: Pin
devDependencies
by @willeastcott in #7265 - Pin dependencies by @renovate in #7263
- Update all npm dependencies by @renovate in #7266
- Remove Dependabot by @willeastcott in #7268
- Move renovate.json to .github folder by @willeastcott in #7269
- Request new feature "float32-blendable" for WebGPU device by @mvaligursky in #7271
- Added PCSS option to ShadowCascades example by @mvaligursky in https://github...