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#cloneto 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