Releases: playcanvas/engine
Releases · playcanvas/engine
v1.63.3
v1.63.2
v1.63.1
v1.63.0
New features
- Debug shader output functionality by @mvaligursky in #5261
- Glb async loading by @slimbuck in #5291
- Async draco decompression by @slimbuck in #5208
- StencilParameters support on WebGPU by @mvaligursky in #5243
- Added support for face-culling to WebGPU by @mvaligursky in #5221
- Refactor of private ShaderPass class to be dynamic instead of hardcoded by @mvaligursky in #5256
- Mipmap generation for WebGPU 2D textures by @mvaligursky in #5275
- Update glb-parser by @slimbuck in #5219
- Output engine banner by @slimbuck in #5282
- Further cleanup / optimization to the way face culling is handled by @mvaligursky in #5207
- Leverage class fields in GraphNode by @willeastcott in #5223
- Eliminate
var
from the code base by @willeastcott in #5224 - Improvements to texture upload / cubemap support on WebGPU by @mvaligursky in #5292
- More nullish coalescing refactoring by @willeastcott in #5073
- Include extras in published package by @slimbuck in #5227
- Changed copyright year to 2023 by @querielo in #5229
- Use RGBA8 for png and jpg by @slimbuck in #5232
- WebGL device support passing in gl context by @slimbuck in #5233
- WebGPU device now supports clustered omni light shadows by @mvaligursky in #5298
- Replaced debug logging of the Element component by Tracing by @mvaligursky in #5238
- Disable ImageBitmap in Safari by @slimbuck in #5235
- Enabled additional type checking in the source code by @mvaligursky in #5246
- Generate define for each varying variable in standard fragment shader by @mvaligursky in #5267
- Private functions used to test the type of the texture containers by @mvaligursky in #5269
- Small cleanup to Particle System by @mvaligursky in #5279
- Temporarily disable ParticleSystems on WebGPU to avoid errors by @mvaligursky in #5283
- Improved trace information for render pipeline allocation by @mvaligursky in #5289
- Draco worker initialisation update by @slimbuck in #5294
- Faster wireframe gen by @slimbuck in #5299
- Small fixes to WebGPU rendering to cubemap with mipmaps by @mvaligursky in #5301
Fixes
- [Fix] Apply VMS blur to spot lights when clustered lighting is off by @mvaligursky in #5288
- Http guess json type by @slimbuck in #5271
- Disable GPU particles on Mali G52 due to rendering artifacts by @yaustar in #5255
- Fix VSM shadows by @slimbuck in #5284
- Remove destroyed asserts in render target as grab pass re-uses it when resizing by @mvaligursky in #5206
- Aces2 exposure fix by @slimbuck in #5216
- Replace the use of deprecated Vec3.scale by Vec3.mulScalar in camera scripts by @mvaligursky in #5220
- sound currentTime needs to be called before state change by @yaustar in #5241
- Check for ior 0 by @slimbuck in #5239
- [Fix] Fix to incorrect clearing of temp arrays by @mvaligursky in #5245
- Fixed bug where raycast filter tags caused exception by @yaustar in #5248
- Fixed a typo in a warning message about missing color texture. by @mvaligursky in #5257
- Clean up event listeners on anim clip destroy by @yaustar in #5260
- Add null check before unbinding events sprite animation clip by @yaustar in #5272
- Remove Material Asset on Material change by @MushAsterion in #5109
- Limit allowed samples on WebGPU when using multisampled render target by @mvaligursky in #5277
- WebGPU device correctly initializes ‘supportsStencil’ by @mvaligursky in #5290
Examples
- Update Dependencies by @ellthompson in #5214
- Converted Physics examples to use createGraphicsDevice and work on WebGPU by @mvaligursky in #5222
- Examples load envLighting without mipmaps by @mvaligursky in #5300
- Renamed disabled debug mode “Normal” to “None” to avoid confusion with WorldNormals by @mvaligursky in #5302
Full Changelog: v1.62.2...v1.63.0
v1.62.2
v1.62.1
Fixes
- Aces2 exposure fix by @slimbuck in #5261
- Check for ior 0 by @slimbuck in #5239
- CurrentTime needs to be called before state change by @yaustar in #5241
- Fix to incorrect clearing of temp arrays by @mvaligursky in #5245
- Fixed PCF1 clustered shadow shader compile error by @yaustar in #5250
- Revert "Warn and block Entity transform when Dynamic Rigid Body present (#5069)" by @yaustar in #5254
- Fixed a typo in a warning message about missing color texture. by @mvaligursky in #5257
- Clean up event listeners on anim clip dest by @yaustar in #5260
- Disable GPU particles on Mali G52 due to rendering artifacts by @yaustar in #5255
Full Changelog: v1.62.0...v1.62.1
v1.62.0
What's Changed
This release breaks most lit/frag chunks. Most of these chunks have had their signatures changed to accept the various values they need, instead of relying on globals. With that said, most globals are still set in the shader. An example of this change is:
vec3 combineColor() {
vec3 ret = vec3(0);
ret = dAlbedo * dDiffuseLight;
...
}
Is now expressed:
vec3 combineColor(vec3 albedo, vec3 sheenSpecularity, float clearcoatSpecularity) {
vec3 ret = vec3(0);
ret = albedo * dDiffuseLight;
...
}
The affected chunks are documented here: https://dev-developer.playcanvas.com/en/user-manual/graphics/shader-chunk-migrations/#engine-v162
Breaking changes
- Further separation of frontend and backend shaders by @GSterbrant in #5104
- Implementation of BlendState by @mvaligursky in #5083
- DepthState implementation for WebGL and WebGPU by @mvaligursky in #5150
- Updates to Plane’s class constructor, to take a distance instead of a point by @mvaligursky in #5196
New features
- Function RenderPass.execute is now optional by @mvaligursky in #5100
- Extended GamePad support by @MushAsterion in #5044
- Added Debug.gpuError to log out gpu validation errors in debug mode by @mvaligursky in #5110
- Added couple of additional GPU markers to forward renderer by @mvaligursky in #5111
- WebGPU support to shadow atlas (shadow cascades + clustered shadows) by @mvaligursky in #5118
- Exposed MeshInstance.castShadow by @mvaligursky in #5130
- Updated mesh batching to support triangle strips used by UI system by @mvaligursky in #5132
- WebGPU clear renderer, allowing render target clear using a quad rendering by @mvaligursky in #5128
- Precision of MorphTarget data can be specified by @mvaligursky in #5138
- Examples working on WebGPU device are enabled to use it in Examples Browser by @mvaligursky in #5151
- Quat: add the setFromDirections method and tests for it by @querielo in #5145
- WebGPU Render pipeline validation in debug mode by @mvaligursky in #5173
- Parse models asynchronously by @slimbuck in #5078
- Simple planar-renderer script to render planar reflections by @mvaligursky in #5186
- Change
raycastAll
sorting default tofalse
by @MushAsterion in #5181 - Implements results filtering for
raycastAll
andraycastFirst
by @MushAsterion in #5180 - Add
RaycastResult
sorting onRigidBodyComponentSystem#raycastAll
by @MushAsterion in #5179
Fixes
- Convert local light shadow rendering to use render passes by @mvaligursky in #5103
- Optimize the handling of cull state for negatively scaled world transforms by @mvaligursky in #5204
- Update obj parser by @slimbuck in #5200
- Enabled BlendTrees1D on WebGPU as working now by @mvaligursky in #5195
- Add specular occlusion to sheen. by @GSterbrant in #5119
- Alpha test fix by @slimbuck in #5126
- Small optimizations to the way target textures are constructed in Morph by @mvaligursky in #5134
- Optimization to Morph.aabb calculation by @mvaligursky in #5137
- Lazily evaluate disjoint timer extension by @mvaligursky in #5139
- Optimize morph target animation creation from glb data by @mvaligursky in #5140
- Updated tint wasm compiler to up to date version by @mvaligursky in #5141
- WebGPU renderer handles canvas size change by @mvaligursky in #5148
- Support empty AnimTracks by @ellthompson in #5112
- Fix for blend tree animations by @ellthompson in #5155
- Optimized GPU cost if zero clustered lights by @mvaligursky in #5131
- WebGPU - fix rendering with single-sampled framebuffer by @mvaligursky in #5164
- Deprecate
StandardMaterial#shininess
by @willeastcott in #5166 - Http arrayBuffer fix by @slimbuck in #5165
- Correctly handle absolute URLs in gltf by @slimbuck in #5169
- Outline post effect shader uses textureLod to avoid non-uniform sampling in a branch by @mvaligursky in #5171
- Sample shadow maps using LOD instruction on WebGPU by @mvaligursky in #5174
- Workaround for 8bit GLB index buffers not supported on WebGPU by @mvaligursky in #5175
- Unloaded animation assignment fix by @ellthompson in #5172
- Small optimization of BoundingBox.computeMinMax by @mvaligursky in #5177
- Don’t include code using vertex_tangent unless needed by @mvaligursky in #5176
- Improved error logging when using current render target as texture by @mvaligursky in #5182
- Clamp shadow distance to camera far plane by @slimbuck in #5183
- Remove VSM blur weights restriction by @slimbuck in #5184
- Improved handling of features and limit for WebGPU by @mvaligursky in #5188
- Set default value for twoSidedLightingNegScaleFactor as renderer does not always set it by @mvaligursky in #5189
- Fix to the way WebGPU device handles render target resizing by @mvaligursky in #5193
- Addition of private helper debug only function to help guard against destroyed objects being used. by @mvaligursky in #5194
- Output types for extras module build by @slimbuck in #5197
- Removed setting material.blend as not needed by ParticleEmitter by @mvaligursky in #5120
Examples
- Anim engine examples updated to work on WebGPU by @mvaligursky in #5203
- Updated LightsBaked engine example to bake specular (direction) as well by @mvaligursky in #5202
- Few engine examples in the loaders section enabled on WebGPU by @mvaligursky in #5198
- Small fixes in examples to avoid debug errors / warnings by @mvaligursky in #5129
- Support device type switching by @ellthompson in #5147
- Dropped number of chairs in the Compound Collision example by @mvaligursky in #5149
- Mini stats fix by @ellthompson in #5156
- Enabled multiple examples for WebGPU by @mvaligursky in #5158
- Fixes and workarounds to bring multiple examples to work on WebGPU by @mvaligursky in #5170
Full Changelog: v1.61.3...v1.62.0
v1.61.3
Fixes
- Use highp samplers for clustered light data to avoid precision issues on some devices by @mvaligursky in #5093
- Fix the destroy callback in Bloom by @querielo in #5077
- [Fix] Fix ParticleComponent documentation: ‘blend’ should be ‘blendType’ by @mvaligursky in #5092
- Fix typo with lightMapVertexColors and refer to proper frontend option. by @GSterbrant in #5094
- [Fix] Fix to Picker class not releasing its render target by @mvaligursky in #5084
Full Changelog: v1.61.2...v1.61.3
v1.61.2
Fixes
- [Fix] Adding early out for clustered lights to fix performance regression by @mvaligursky in #5088
Full Changelog: v1.61.1...v1.61.2
v1.61.1
Bug Fixes
- Delete old material property when the new one already exists (#5053)
- WebXR - fixed bug where the wrong number of views is being added (#5063)
- WebXR - camera parameters fix (#5068)
- Handle undefined bufferView in glb parser (#5079) - many thanks to @querielo for this one!
- Instantiate Draco if it appears in extensionsUsed (#5080) - many thanks to @querielo for this one too!
- Only log error related to nested render passes once on Open GL (#5081)