Releases: playcanvas/engine
Releases · playcanvas/engine
v1.66.0
Breaking changes
- EventHandle and option to disable EventHandler chaining. by @Maksims in #5481 breaks compatibility with Tween, see playcanvas/playcanvas-tween#42
Changes
- Refactor the internals of antialiasing / backbuffer on WebGL device by @mvaligursky in #5628
- NullGraphicsDevice implementation allowing to run the application without rendering by @mvaligursky in #5563
- GltfExporter supports BasicMaterial by @mvaligursky in #5562
- Refactor LayerComposition to avoid its update when mesh transparency changes / mesh is added by @mvaligursky in #5536
- Mat3 and Mat4 updates by @slimbuck in #5567
- chore(examples): address eslint warnings by @epreston in #5532
- chore(examples): rollup type completion - lint warnings by @epreston in #5539
- chore: update package-lock.json by @epreston in #5543
- chore: include localised readmes in npm package by @epreston in #5544
- Simplify some shadow penumbra math / avoid divide by zero by @mvaligursky in #5551
- Add WebXR types by @willeastcott in #5556
- WebXR Anchors by @Maksims in #3091
- Layer composition does not maintain list of shadow casters per light by @mvaligursky in #5540
- JSDoc: Remove redundant default param values by @willeastcott in #5566
- JSDoc: Modernize some blocks by @willeastcott in #5568
- WorldClusters allocation is now dynamic, removed from composition update by @mvaligursky in #5569
- Refactored and fixed the lightcube lighting for particle emitters by @mvaligursky in #5570
- Remove unneeded indirection using light indices by @mvaligursky in #5571
- Shader generators are converted to modules by @mvaligursky in #5552
- Cookie renderer refactored to use a single render pass by @mvaligursky in #5572
- Improvement to light sorting when layer light hash is generated by @mvaligursky in #5576
- Refactor shader caching to handle mesh instance on layers with different lights by @mvaligursky in #5582
- Vec and Quat source args by @slimbuck in #5575
- chore: speed up and clean up CI by @epreston in #5590
- Refactored the way LightComponent changes notify the LayerComposition by @mvaligursky in #5592
- Refactored shadow casting directional lights collection by @mvaligursky in #5593
- chore(examples): update playcanvas-spine.3.8.js by @epreston in #5600
- refactor(build): update rollup shaderChunks by @epreston in #5602
- chore(build): create .eslintrc.json in karma tests by @epreston in #5603
- Layer composition no longer handles lights by @mvaligursky in #5604
- Converted Picker to use render pass internally by @mvaligursky in #5608
- Added function: RenderTarget.resize by @mvaligursky in #5611
- Remove private Texture.getDds function that is no longer needed by @mvaligursky in #5612
- rollup-shader-chunks.mjs: simplify + fix template string bug by @kungfooman in #5613
- Add setAttribute to standard material by @LeXXik in #5607
- Refactor rendering in MiniStats by @mvaligursky in #5616
- Minor update to instancing example by @LeXXik in #5618
- Don't drop newline of single line comments by @kungfooman in #5617
- Added width and height to sprite component clone by @OlegGedzjuns in #5625
- Easy ES5 ES6 Distinguishability via file extension only by @kungfooman in #5623
- Renaming of internal variable to backBufferFormat by @mvaligursky in #5630
- MiniStats render on UI layer by @mvaligursky in #5631
- chore: update jsdoc comment by @epreston in #5634
- Vec2.rotate(degrees), Vec2.angle, Vec2.angleTo methods by @Maksims in #5622
- Refactor - do not create cookies render pass each time but reuse one by @mvaligursky in #5645
- Small internal refator to RenderPass to allow simpler override implementation by @mvaligursky in #5652
- Extracted generic render pass for a cookie renderer and picker to a new modules by @mvaligursky in #5653
- Adding glsl tags to internal shaders for syntax highlighting to work by @mvaligursky in #5654
- Extract the color grab functionality to a render pass by @mvaligursky in #5655
- Small internal refactor of the way camera is passed around for rendering by @mvaligursky in #5656
- Removed CookieRenderer by making it fully integrated into cookie render pass by @mvaligursky in #5658
- Renamed internal render pass function for consistency by @mvaligursky in #5660
- Compressed texture formats working on webgpu by @slimbuck in #5659
- Enable WebGPU support for TextureBasis engine example by @mvaligursky in #5661
- Internal variable renamed for consistency with next updates by @mvaligursky in #5666
- Fallback Webgl1 solution for depth grab is replaced by a RenderPassDepth by @mvaligursky in #5671
- Update basis binaries by @slimbuck in #5674
- Convert depth grabbing functionality on WebGL2/WebGPU to a render pass by @mvaligursky in #5673
- Add equalsApprox to vec2, vec3, vec4 (and tests) by @querielo in #5662
- Latest ammo module by @slimbuck in #5676
- Deprecate device.webgl2 in favor of device.isWebGL2 by @mvaligursky in #5678
- Small cleanup to the way antialiasing set up is handled by @mvaligursky in #5679
- Validate and enforce valid texture dimensions by @mvaligursky in #5683
- Improved handling of VSM32 on WebGPU by @mvaligursky in #5684
- chore(deps): update chai to ^4.3.10 by @epreston in #5696
- Fix scroll view touch events by @LeXXik in #5703
- Bump actions/checkout from 3 to 4 by @dependabot in #5701
- Better handling of gltf blend materials by @slimbuck in #5705
- feat(build): clean build folder before rebuilding all targets by @epreston in #5695
- Fire destroy event in AppBase#destroy by @kungfooman in #5693
- Add RenderTarget|null typing + remove dead code by @kungfooman in #5704
- New API: add a scaled vector by @LeXXik in #5702
- Ministats render size by @slimbuck in #5718
Bug fixes
- Fix to the LitShader compatibility handling by @mvaligursky in #5533
- Set ior when metalness is used by @slimbuck in #5534
- fix: jsdoc typo by @epreston in #5537
- fix(examples): update react app code by @epreston in #5545
- fix(examples): undefined imageEntity by @epreston in #5547
- [Fix] Avoid additional shaders creation caused by out of order lights by @mvaligursky in #5550
- Fix some consistent-return lint errors by @willeastcott in #5557
- fix(test): vec3.test.mjs by @epreston in #5559
- fix(examples): remove duplicate npm parameter by @epreston in #5560
- [Fix] Fix few shader chunks using removed IridescenceArgs struct by @mvaligursky in #5564
- Fix to lightmapper when no baking lights by @mvaligursky in https://github.com/playcanvas...
v1.65.5
Bug fixes
- (iOS 17) When the context is lost, silently ignore failed shader compilation by @mvaligursky in #5644
- (iOS 17) Handle basis wasm regression by @slimbuck in #5657
- Material prefiltered cubemap fix by @slimbuck in #5627
- handle null gl.getContextAttributes by jbromberg in #5667
Full Changelog: v1.65.4...v1.65.5
v1.65.4
Bug fixes
- [Fix] avoid null/undefined access on iOS when the context is lost by @mvaligursky in #5610
Full Changelog: v1.65.3...v1.65.4
v1.65.3
Bug fixes
- Handle case of gl.getSupportedExtrentions returning null by @mvaligursky in #5583
Full Changelog: v1.65.2...v1.65.3
v1.65.2
Bug Fixes
- [Fix] Null / undefined access to script loader and xr fix by @mvaligursky in #5580
- Refactor shader caching to handle mesh instance on layers with different lights by @mvaligursky in #5582
Full Changelog: v1.65.1...v1.65.2
v1.65.1
Bug Fixes
[Fix] Avoid additional shaders creation caused by out of order lights by @mvaligursky in #5550
[Fix] Fix few shader chunks using removed IridescenceArgs struc by @mvaligursky in #5564
Fix to lightmapper when no baking lights @mvaligursky in #5565
Full Changelog: v1.65.0...v1.65.1
v1.65.0
Breaking changes
- [BREAKING] Removed support for static lights by @mvaligursky in #5502
- [BREAKING] Layer.cullingMask and Camera.cullingMask has been removed as not needed by @mvaligursky in #5506
Changes
- Simple GpuProfiler implementation for WebGL and WebGPU by @mvaligursky in #5470
- Custom material type by @GSterbrant in #5445
- Optimize
AssetRegistry
class by @willeastcott in #5457 - Optimize AssetRegistry.find and findAll by @Maksims in #5480
- Optimization of the render pipeline cache access on WebGPU by @mvaligursky in #5490
- Optimized the key generation for StencilParameters by @mvaligursky in #5491
- Optimize LayerComposition layer lookup by name and id using Maps by @mvaligursky in #5514
- EventHandler: refactor, comment and optimize by @Maksims in #5501
- Support for powerPreference option for WebGPU by @mvaligursky in #5418
- Updated the way WebGPU submits command buffers for rendering by @mvaligursky in #5423
- Custom shader based multisampled depth resolve for WebGPU by @mvaligursky in #5485
- Bump allocation for Uniform Buffers on WebGPU by @mvaligursky in #5438
- Additional per camera uniforms added to the view bind group by @mvaligursky in #5416
- Improved the contact hardening shadows example by @GSterbrant in #5411
- Handle anim events during reverse playback by @ellthompson in #5413
- Change behaviour of lightSize by @GSterbrant in #5421
- Simplify the normal offset shadow coordinate method for clustered point lights by @GSterbrant in #5425
- Removed no longer needed temporarily WebGPU test code by @mvaligursky in #5427
- Compensate PCSS kernel with depth range for directional lights by @GSterbrant in #5441
- Export TextureUtils. by @slimbuck in #5448
- Update webgpu types package to latest version by @mvaligursky in #5449
- Update lightmapper chunks to 1_65 by @GSterbrant in #5465
- Implement/use
GraphNode#remove
by @kungfooman in #5469 - Updated eslint-config to 1.50 by @mvaligursky in #5472
- Improves PCSS with directional light by @GSterbrant in #5456
- Only rebuild shaders on sky rotation change if changing away from identity by @mvaligursky in #5467
- Don't try to normalize depth by @GSterbrant in #5476
- VSM shadows work on WebGPU by @mvaligursky in #5475
- Keep clustered lighting always enabled on WebGPU by @mvaligursky in #5477
- Initialize basis using WasmModule by @slimbuck in #5489
- Remove string.toBool function by @mvaligursky in #5493
- Typedoc: assign categories to classes by @willeastcott in #5495
- Typedoc: Ensure both setters and getters appear in docs by @willeastcott in #5496
- Update time.js by @epreston in #5498
- Improve some JSDoc blocks by @willeastcott in #5499
- Lit material by @slimbuck in #5488
- Update README.md by @epreston in #5503
- Remove obsolete code comment by @mvaligursky in #5504
- Very small cleanup in Layers by @mvaligursky in #5505
- Light hash generation does not use strings by @mvaligursky in #5508
- Add MeshInstance.transparent to optimize access to it by @mvaligursky in #5516 @5517
- Update tsconfig.json by @epreston in #5518
- Chore JSDoc cleanup by @epreston in #5519
- Refactor string.format by @willeastcott in #5520
- Fire ‘shader:generate’ when a shader code gets generated by @mvaligursky in #5524
- Tint shader compiler updated to more up to date version (mid May) by @mvaligursky in #5527
- chore: update examples build by @epreston in #5523
- Update puppeteer by @epreston in #5529
- chore: update eslint for examples by @epreston in #5530
- Provide
litArgs
backwards compatibility by @kungfooman in #5494
Bug fixes
- Fix to recently introduced error related to postprocessing on a camera with RT by @mvaligursky in #5396
- AnimBlendTree fix by @ellthompson in #5401
- Fix to depth-grab pass on WebGl1 by @mvaligursky in #5402
- Fix PCSS with WebGL1 by @GSterbrant in #5403
- [Fix] Define pc_fragColor in all cases by @mvaligursky in #5404
- Env bugfix by @slimbuck in #5405
- Fix to window resizing on WebGPU when post-effects are used by @mvaligursky in #5406
- Additional envAtlas fixes by @slimbuck in #5412
- Disable normal bias with VSM by @GSterbrant in #5417
- Delete cache entry when setting null value by @slimbuck in #5419
- Fix to broken omni shadows on WebGL2 with clustered lighting by @GSterbrant in #5424
- Fix
Entity#destroy
by @kungfooman in #5414 - [Anim Component] Fix exit time conditions for non looping animations by @ellthompson in #5426
- Fix directional light not fading out with only a single cascade. by @GSterbrant in #5429
- Fix point light shadows missing float packing by @GSterbrant in #5432
- Fix comment for cascaded shadows by @GSterbrant in #5430
- Fix float unpacking by @GSterbrant in #5433
- Correctly render textures using drawTexture by @mvaligursky in #5434
- Fix to drawDepthTexture to not rendered flipped by @mvaligursky in #5435
- [Fix] Do not dispatch local lights when clustered lighting is enabled by @mvaligursky in #5443
- Morph: fix options handling and targets validation by @kungfooman in #5442
- Fix omni light shadows with PCSS and clustered by @GSterbrant in #5446
- Don't write to FragDepth unless depth value is modified by @GSterbrant in #5451
- Order draco vertex normals correctly by @slimbuck in #5453
- Don't assume MRT extension is available on webgl1 by @slimbuck in #5454
- [Fix] Workaround for shader compile issue on iOS 15 related to MRT by @mvaligursky in #5459
- Fix AssetRegistry#get to support string ids by @willeastcott in #5461
- Fix script hotreload by @slimbuck in #5462
- Fixes Adreno 610 and 618 bugs by @GSterbrant in #5463
- [Fix] Depth grab-pass wasn’t working correctly on WebGL1 in some cases by @mvaligursky in #5464
- Add missing types to StandardMaterial by @jbromberg in #5466
- Ignore undefined lighting params when applying scene settings by @mvaligursky in #5478
- Add .js to three import's by @kungfooman in #5482
- Instancing fix by @slimbuck in #5486
- Fix up Typedocs with missing properties by @willeastcott in #5487
- Fix WebGL depth texture support by @liamdon in #5497
- Small fix to Meshinstance’s cache of shaders for passes by @mvaligursky in #5507
- Fix flipY handling for WebGPU engine examples by @mvaligursky in #5500
- fix: example thumbnail build...
v1.64.4
Fixes
- Fix script hotreload by @slimbuck in #5462
- Fix Depth grab-pass wasn’t working correctly on WebGL1 in some cases by @mvaligursky in #5464
- Add missing types to
StandardMaterial
by @jbromberg in #5466 - Only rebuild shaders on sky rotation change if changing away from identity by @mvaligursky in #5467
Full Changelog: v1.64.3...v1.64.4
v1.64.3
Fixes
- Order draco vertex normals correctly by @slimbuck in #5453
- Optimize AssetRegistry class by @willeastcott in #5457, #5461
- Don't assume MRT extension is available webgl1 by @slimbuck in #5454
- [Fix] Workaround for shader compile issue on iOS 15 related to MRT by @mvaligursky in #5459
Full Changelog: v1.64.2...v1.64.3
v1.64.2
Bug Fixes
- [Examples Browser] Thumbnail generation fix by @ellthompson in #5439
- Compensate PCSS kernel with depth range for directional lights by @GSterbrant in #5441
- [Fix] Do not dispatch local lights when clustered lighting is enabled by @mvaligursky in #5443
- Morph: fix options handling and targets validation by @kungfooman in #5442
- fix for PlayCanvas engine sourcemaps in the examples browser by @ellthompson in #5447
- Export TextureUtils by @slimbuck in #5448
- Fix omni light shadows with PCSS and clustered by @GSterbrant in #5446
- Don't write to FragDepth unless depth value is modified by @GSterbrant in #5451
Full Changelog: v1.64.1...v1.64.2