Releases: playcanvas/engine
Releases · playcanvas/engine
v1.70.3
Bug fixes
- Fix: Clean up lines for rendering even when the Layer is disabled by @mvaligursky in #6353
- Fix buildUrl relative path support for WebGPU by @erikdubbelboer in #6354
- Add webpack ignore by @marklundin in #6359
- Removed umd polyfill for pcx by @kpal81xd in#6289
- Build fixes for 1.70 by @kpal81xd in #6360
Full Changelog: v1.70.2...v1.70.3
v1.70.2
Fixes
- Remove references to pcx namespace by @willeastcott in #6304
- Custom plugin to disable treeshaking on polyfill modules by @kpal81xd in #6332
Full Changelog: v1.70.1...v1.70.2
v1.70.1
##Fixes
- Workaround for Firefox WebGPU device creation fail by @mvaligursky in #6273
- Fix to WebGPU vertex buffer setup by @mvaligursky in #6274
- Fixes to Geometry classes JSDocs @mvaligursky in #6282
- Small fixups for JSDocs by @mvaligursky in #6283
- Fix to skydomeIntensity handling - Standard materials do not use it in some cases by @mvaligursky in #6308
- Added unbundled engine source to published package by kpal81xd in #6310
Full Changelog: v1.70.0...v1.70.1
v1.70.0
New Features
- WebGPU Compute shader support by @mvaligursky in #6258, #6226, #6268, #6186 and #6201
- Khronos PBR Neutral tone mapper for e-commerce by @mvaligursky in #6271 and #6272
- Add convex hull support to CollisionComponent by @willeastcott in #6267
- Support for KHR_materials_dispersion glTF extension by @mvaligursky in #6151
- Support for sharpening inside the compose render pass, needed for TAA by @mvaligursky in #6144
- Support for dithering using interleaved gradient noise by @mvaligursky in #6166
- Tri class to core engine by @kpal81xd in #6203
- Mesh can be created and used without vertex attributes by @mvaligursky in #6232
Other changes
- Refactored VertexBuffer constructor to hide more params into options by @mvaligursky in #6240
- LightComponent properties port to get/set by @kpal81xd in #6114
- Migrate input unit tests from Karma to Node by @willeastcott in #6133
- Remove JSDoc by @willeastcott in #6132
- Refactor input-related code by @willeastcott in #6134
- Removed class replacement typefix by @kpal81xd in #6140
- Component properties port to get/set by @kpal81xd in #6145
- Add extras.mjs to exported files by @marklundin in #6153
- Add publint by @marklundin in #6154
- Appbase Callbacks JSDoc by @kpal81xd in #6149
- WIP - dither transparency with TAA by @mvaligursky in #6159
- Typedoc hide exported classes by @kpal81xd in #6161
- ParticleSystemComponent properties port to get/set by @kpal81xd in #6141
- Hide data getter overrides in LightComponent and ParticleSystemComponent by @kpal81xd in #6162
- ButtonComponent properties port to get/set by @kpal81xd in #6163
- CollisionComponent properties port to get/set by @kpal81xd in #6164
- Removes vertex-format type fix by @kpal81xd in #6124
- Small refactor in preparation of context lost handling for WebGPU by @mvaligursky in #6170
- ElementComponent properties port to get/set by @kpal81xd in #6169
- removed excess tsignores by @kpal81xd in #6173
- Update package-lock.json by @willeastcott in #6174
- Tidy up Karma tests by @willeastcott in #6175
- Remove @Augments JSDoc tag by @willeastcott in #6176
- Use @ignore over @hideconstructor by @willeastcott in #6177
- Misc type fixes by @willeastcott in #6178
- Improve typing for Anim APIs by @willeastcott in #6179
- Improve docs for Entity#destroy by @willeastcott in #6180
- ScrollViewComponent & ScrollbarComponent properties port to get/set by @kpal81xd in #6182
- More docs and types improvements by @willeastcott in #6185
- Remove json model mesh splitting to work around uniform limits by @mvaligursky in #6188
- Dispatch multiple compute shaders in a single compute pass by @mvaligursky in #6187
- Update mesh.js by @IRobot1 in #6194
- Upgrade Chai to 5.x by @willeastcott in #6197
- Regenerate package-lock.json by @willeastcott in #6198
- Simplify jsdocs types for the Mesh and VertexIterators API by @mvaligursky in #6202
- Use indexed rendering for gplats by @mvaligursky in #6204
- Removed VoxParser by @kpal81xd in #6207
- Update createTree to use correct parameters by @benbean303 in #6211
- GSplat rendering no longer uses instancing by @mvaligursky in #6213
- Compute shader bind group can specify textures without samplers by @mvaligursky in #6216
- Simplified BindGroup constructor by @mvaligursky in #6221
- Renamed BindBufferFormat to BindUniformBufferFormat by @mvaligursky in #6222
- Engine build rework by @kpal81xd in #6219
- Sourcemap revert to inline by @kpal81xd in #6227
- ESM attributes rename by @marklundin in #6229
- Build wrapper by @kpal81xd in #6239
- Add CORS header by @marklundin in #6243
- ESM Attributes check by @marklundin in #6245
- The Preprocessor class now handles includes by @mvaligursky in #6242
- ESM Scripts lower camel case by @marklundin in #6251
- Basic shader generation refactoring by @mvaligursky in #6250
- Add Script alias by @marklundin in #6237
- Updated handling of defines specified by a shader definition by @mvaligursky in #6253
- Do not create a sky shader variant based on skyIntensity being equal to 1 by @mvaligursky in #6254
- Exposed gizmo color alpha by @kpal81xd in #6249
- Extras merged into engine by @kpal81xd in #6228
- ES6 createScript by @kpal81xd in #6147
- Split primitives.js into separate modules by @mvaligursky in #6259
- Procedural geometry refactoring, createMesh and similar deprecation by @mvaligursky in #6261
- WebGPU - skip unsupported device limits when creating device by @mvaligursky in #6263
- DomeGeometry for the skydome rendering - refactor by @mvaligursky in #6266
- Converted skydome shader generator to use defines and includes by @mvaligursky in #6269
Fixes
- WebXR XRSession.enabledFeatures missing workaround by @Maksims in #6181
- Fix omni lights shadows on WebGPU by @mvaligursky in #6165
- [Fix] Fix the shader linking after the lost context has been restored. by @mvaligursky in #6146
- [Fix] reset internal cached state for face culling when the device is restored by @mvaligursky in #6155
- Removed circular self dependency by @kpal81xd in #6168
- Fix the incorrectly exposed PostEffect type parameter by @mvaligursky in #6167
- Small fixes to jsdocs by @mvaligursky in #6200
- Engine Watch fix by @kpal81xd in #6205
- Clear vertex buffer on empty instance buffer inside drawInstance by @heretique in #6208
- JSDoc import dollar fixes by @kpal81xd in #6215
- Handle a render pass debug logging issue where index is not provided by @mvaligursky in #6238
- Fix color buffer clear when using partial viewport by @mvaligursky in #6241
- Fix to recent VertexBuffer refactoring by @mvaligursky in #6246
- checks rollup args for if environment flag is included by @kpal81xd in #6247
- WebXR fix overlaping rAF callbacks by @Maksims in #6244
- Require all supported WebGPU limits when creating a device by @mvaligursky in #6255
- Fix crash in GsplatMany example on WebGL due to no WebGL1 splat support by @mvaligursky in #6264
Examples
v1.69.2
Fixes
- Moved callbacks inside appbase scope by @kpal81xd in #6149
- Typedoc hide exported classes by @kpal81xd in #6161
- Fix omni lights shadows on WebGPU @mvaligursky in #6165
- Removed circular dep file from package by @kpal81xd in #6168
- Fix the incorrectly exposed PostEffect type parameter by @battall and @mvaligursky and (#6167)
Full Changelog: v1.69.1...v1.69.2
v1.69.1
Fixes
- Modified regex for root path (example publish fix) by @kpal81xd in #6137
- [Fix] Fix the shader linking after the lost context has been restored. by @mvaligursky in #6146
- Add extras.mjs to exported files by @marklundin in #6153
- [Fix] reset internal cached state for face culling when the device is restored by @mvaligursky in #6155
Full Changelog: v1.69.0...v1.69.1
v1.69.0
What's Changed
- TAA reprojection by @mvaligursky in #6048
- Bundles Refactor by @Maksims in #5675
- Optimize shader processor by @mvaligursky in #6067
- Mesh collision improvements by @LeXXik in #5818
- Mesh collision optimization by @LeXXik in #6087
- Add support for R16F and RG16F texture formats by @mvaligursky in #6128
- Gizmo uniform scaling update by @kpal81xd in #5999
- Add API docs for MiniStats by @willeastcott in #6010
- Assign categories to constants by @willeastcott in #6012
- Fix some developer site links by @willeastcott in #6013
- Update some links embedded in the source by @willeastcott in #6014
- Update README files by @willeastcott in #6019
- Expose docs for GSplatResource and GSplatComponent by @mvaligursky in #6021
- Implement changes to WebGPU timestamp-query by @erikdubbelboer in #6001
- Double buffer TAA’s accumulation buffer in preparation for last frame reprojection by @mvaligursky in #6025
- Simplify RenderPassDepth to use automatic render target resizing provided by the base class by @mvaligursky in #6029
- Add support for debug rendering obbs by @slimbuck in #6023
- Extracted renderForwardLayer function to the renderer by @mvaligursky in #6031
- GSplat mateirlal can create a PICK shader pass version of the shader by @mvaligursky in #6033
- Load compressed ply elements by default by @slimbuck in #6034
- Small refactor to ForwardRenderer.renderForwardLayer to allow additional options by @mvaligursky in #6035
- Small clean up to depth rendering by @mvaligursky in #6037
- Don't upload texture if locked using TEXTURELOCK_READ by @liamdon in #6003
- Make sure render pass name is valid for derived classes by @mvaligursky in #6039
- WebXR - expose APIs to docs and some minor improvements by @Maksims in #6042
- RenderPassPrepass implementation by @mvaligursky in #6040
- Change ResourceHandler from interface to base class by @willeastcott in #5574
- Expose AppOptions and correct its types by @mvaligursky in #5986
- Gizmo grid and mesh shaders by @kpal81xd in #6036
- Add Asset category for API reference by @willeastcott in #6051
- publish on a new tag by @isumygin-sc in #6057
- dry run removed by @isumygin-sc in #6059
- Small cleanup of SkinInstance by @mvaligursky in #6064
- Resource Handler (handlerType in constructor) by @kpal81xd in #6068
- WebXR request hand-tracking for AR as well. by @Maksims in #6069
- Update to WGSL shader creation - formats are passed in the shaderDefinition by @mvaligursky in #6071
- Rename playcanvas-extras build by @marklundin in #6075
- WebXR - expose framebuffer scale factor by @Maksims in #6074
- Link WebGL shaders immediately after compilation by @mvaligursky in #6076
- WebXR FrameRate by @Maksims in #6077
- Remove es6 polyfills by @marklundin in #6079
- Refactor of the shader validation by @mvaligursky in #6081
- Small shader initialization cleanup / optimization by @mvaligursky in #6083
- Object entries polyfill by @marklundin in #6080
- Tech to allow async shader compilation, disabled by @mvaligursky in #6084
- Remove section on source maps from README by @willeastcott in #6086
- When WebGPU validation fails, current markers are logged out by @mvaligursky in #6089
- Assert when current version of Ammo does not implement now required triMesh.getIndexedMeshArray by @mvaligursky in #6092
- Add banner for single-file ESM bundles + fixing type error by @kungfooman in #6095
- Add rollup import transform by @marklundin in #6090
- Improvement to GPU markers reporting of render passes by @mvaligursky in #6096
- Vectorize the covariance calculation by @kemchenj in #6098 and #6100
- Allow graphics device to be provided to Application by @slimbuck in #6099
- WebGPU Transpiler absolute path by @kpal81xd in #6103
- Small change to splat shader in a way model matrix is used by @mvaligursky in #6101
- GPU optimization to gsplat rendering by @mvaligursky in #6104
- Added worker environment by @marklundin in #6108
- Update banner to mention MIT license by @willeastcott in #6111
- Update README files to show ESM usage by @willeastcott in #6112
- Tsc Types config cleanup by @kpal81xd in #6115
- BundleHandler max retries by @kpal81xd in #6118
- Tiny splat shader refactoring by @kemchenj in #6106
- Use more compact texture formats storing GSplat data by @mvaligursky in #6129
Fixes
- Fix material error on scale gizmo by @kpal81xd in #5998
- Export Gizmo constants correctly by @willeastcott in #6000
- Fix Gizmo nodes type by @willeastcott in #6008
- [Fix[ Fixed incorrect test for enabled shadow dithering by @mvaligursky in https://github.com//pull/6015
- [Fix] Temporary fix to lightmapper for WebGL by @mvaligursky in #6016
- Gizmo Ortho Rotation fixes by @kpal81xd in #6027
- Gizmo scaling fix by @kpal81xd in #6028
- [Fix] Fix to render composition update if multiple cameras use render passes by @mvaligursky in #6046
- typo by @slimbuck in #6054
- ResourceHandler type fix (constructor parameters) by @kpal81xd in #6063
- Fix issue with script name casing by @marklundin in #6066
- Added ES6 bundle output by @marklundin in #6073
- WebXR Fixed Foveation by @Maksims in #6078
- Fix ENV var target by @marklundin in #6091
- [Fix] WebGPU mesh rendering uses primitive.base correctly by @mvaligursky in #6093
- Engine export fixes by @kpal81xd in #6109
- ScriptType handlers type fix by @kpal81xd in #6123
- Revert "ScriptType handlers type fix" by @kpal81xd in #6125
- Removes source mappings from unbundled builds by @marklundin in #6121
- Adding globalThis typeof check by @marklundin in #6127
- Fix the render target release in the RenderPassDepth (WebGL1 only) by @mvaligursky in #6131
Examples
- Examples Overhaul by @kpal81xd in #6060
- Gizmo example JSDoc by @kpal81xd in #6002
- [Fix examples] Change the path to make sure it deploys by @mvaligursky in #6017
- Fix multi-app example by @erikdubbelboer in #6020
- Fix engine example ExampleOptions params by @erikdubbelboer in #6007
- Examples cleanup by @kpal81xd in #6005
- [Examples] Integer-texture (sand) Remove the quad mouse movement. by @mvaligursky in #6032
- Examples cleanup (2nd pass) by @kpal81xd in #6041
- Conve...
v1.68.2
v1.68.1
Bug fixes
- Fix multi-app example by @erikdubbelboer in #6020
- Expose docs for GSplatResource and GSplatComponent by @mvaligursky in #6021
- Gizmo Ortho Rotation fixes by @kpal81xd in #6027
- Constant gizmo size on canvas resize by @kpal81xd in #6028
- Update TypeDoc dependencies by @willeastcott
- [Examples] Integer-texture (sand) Remove the quad mouse movement by @mvaligursky in #6032
- GSplat material can create a PICK shader pass version of the shader by @mvaligursky in #6033
- Load compressed ply elements by default by @slimbuck in #6034
Full Changelog: v1.68.0...v1.68.1
v1.68.0
Changes
- Skydome projection to allow dome / box sky texture projections by @mvaligursky in #5886
- Opacity dithering support by @mvaligursky in #5903
- Updated dithered transparency to support blue noise by @mvaligursky in #5941
- Support for integer/data textures in WebGL2 and WebGPU by @liamdon in #5921
- Gizmo System by @kpal81xd in #5928
- WebGPU support for TextureArrays by @mvaligursky in #5861
- ESM ScriptType loading by @marklundin in #5963
- Introduction of RenderPassCameraFrame - pass describing typical render passes for the camera by @mvaligursky in #5881
- Compose render pass contains color grading by @mvaligursky in #5839
- Update scheduling of directional light shadow render passes to be compatible with manual render passes by @mvaligursky in #5845
- [ImgBot] Optimize images by @imgbot in #5838
- Color grab pass can be used for custom render pass rendering by @mvaligursky in #5866
- Vignette support in the Compose render pass by @mvaligursky in #5867
- Fringing / Chromatic Aberration added to render pass compose by @mvaligursky in #5870
- Depth bias support for WebGPU and refactor to add it to the DepthState by @mvaligursky in #5871
- Simplify and optimize some GraphNode find functions by @NewboO in #5850
- Add JSDoc typeof support via JSDoc plugin by @kungfooman in #5882
- Add JSDoc for extras/splat ply-reader/splat-material/splat by @kungfooman in #5868
- RenderPassRenderActions is renamed to RenderPassForward by @mvaligursky in #5890
- Small cleanup of deprecated functionality and default parameters by @mvaligursky in #5897
- No longer exporting deprecated LINEBATCH_ constants by @mvaligursky in #5898
- Exposing sky for Editor by @kpal81xd in #5901, #5904
- Remove unused Texture._isRenderTarget by @erikdubbelboer in #5913
- Call adjustVramSizeTracking for WebGPU textures by @erikdubbelboer in #5915
- WebGPU device exposes fragment/vertex-UniformsCount property by @mvaligursky in #5932
- Refactor of static functions of the LightsBuffer to avoid issues on the null device by @mvaligursky in #5935
- Remove type global function by @slimbuck in #5942
- Fixed name capitalization for Upsample and Downsample render passes by @mvaligursky in #5947
- Use function shorthand in objects by @willeastcott in #5948
- JSDocs for extras/exporters by @mvaligursky in #5954
- Add module docs by @willeastcott in #5959
- Remove VertexArrayObject polyfill for IE11 by @mvaligursky in #5957
- Partial support for Lightmapper on WebGPU by @mvaligursky in #5953
- Use spread to handle variadic args of path.join by @willeastcott in #5961
- Updated babel target list to exlude dead browsers (IE11) by @mvaligursky in #5962
- Small update to JSDocs of the exporters by @mvaligursky in #5965
- Expose EventHandle by @slimbuck in #5969
- Updated description for affectSpecularity by @kpal81xd in #5967
- Refactor JSDocs for events by @willeastcott in #5974
- Gizmo refactor by @kpal81xd in #5975
- Gizmos - Added render update event by @kpal81xd in #5981
- Gizmo view by @kpal81xd in #5984
- Improve TypeDoc categories by @willeastcott in #5977
- Avoid using WebGPU 'timestamp-query' which has been removed in Chrome 121 by @mvaligursky in #5990
- Removed GraphicsDeviceAccess class used for compatibility reasons by @mvaligursky in #5992
- Gizmo transform shape toggling by @kpal81xd in #5995
WebXR
- WebXR Raw Camera Access (color) by @Maksims in #5786
- WebXR Mesh Detection by @Maksims in #5791
- XrAnchors - Availability flag by @Maksims in #5879
- WebXR Input Source: linear velocity by @Maksims in #3060
- WebXR HitTestSource fix by @Maksims in #5887
- WebXR Depth Camera by @Maksims in #5848
- Add missing XR exports by @marklundin in #5971
- Sorts XR re-exports by @marklundin in #5972
Bug fixes
- Reverting recent glb alpha depth write change for transparent meshes by @mvaligursky in #5988
- Add Entity.findScript[s] functions by @NewboO in #5851
- Fix for video textures by @slimbuck in #5836
- Add additional texSubImage2d checks by @slimbuck in #5840
- Ensure screen scale is always valid by @NewboO in #5842
- WebXR handling WebGL context loss by @Maksims in #5849
- Corrected Spelling without Any Functional Changes by @arcadian-st in #5858
- Reproject fix by @slimbuck in #5860
- Disable antialiasing when running in Windows Firefox due to possible Firefox bug by @mvaligursky in #5857
- Adding browser check before calling Spector by @marklundin in #5874
- [Fix] Framebuffer clear flags on the Layer were not correctly used by @mvaligursky in #5875
- npm run docs: fix three errors and remove non-existed argument comment by @kungfooman in #5876
- [Fix] Fix compatibility with deprecated Layer.renderTarget by @mvaligursky in #5877
- Fix docs 404 for XrAnchorCreateCallback by @kungfooman in #5880
- Video fix by @slimbuck in #5896
- Fix to fringe offset to be independent of the render target resolution by @mvaligursky in #5911
- Fix thumbnail creation on Windows by @willeastcott in #5929
- Fix npm run build:thumbnails by @erikdubbelboer in #5919
- Correctly flip the depth texture in drawDepthTexture by @mvaligursky in #5930
- Fix some ShaderPass JSDoc by @kungfooman in #5926
- Store default instancing vertex format in device cache by @mvaligursky in #5936
- Fix typo: Change console.logWarn to console.warn in gltf-exporter.js by @yushimatenjin in #5950
- [Fix] Fix additional shaders getting processed on WebGPU by @mvaligursky in #5952
- Few additional dummy functions on the NullGraphicsDevice to handle engine examples failing. by @mvaligursky in #5956
- Fixes to automated testing to work without VAO extension by @mvaligursky in #5960
- Fix initial value of _assetReference in RenderComponent by @mvaligursky in #5970
- GSplat gizmo bug fixes by @kpal81xd in #5987
- Small fix just introduced related to updating splat instances by @mvaligursky in #5978
- Fix the Sky example - it no longer needs to registerPlyParser by @mvaligursky in #5979
- [Fix] DepthGrab now supports render target without stencil by @mvaligursky in #5994
Experimental features
- Move splat functionality from extras to core engine by @mvaligursky in #5968
- GSplatComponent that allows native integration of splat tech with the Entity by @mvaligursky in #5976
- Implementation of shader generator for Splat Materials supporting gamma and tonemapping options by @mvaligursky in #5900
- ...