Releases: playcanvas/engine
Releases · playcanvas/engine
v2.3.0
Breaking changes
- [BREAKING] Refactor API for gammaCorrection, toneMapping and Fog settings by @mvaligursky in #7101
- [BREAKING] Removed support for VSM8 shadow type by @mvaligursky in #7146
- [BREAKING] Camera callbacks replaced by the events by @mvaligursky in #7156
- [BREAKING] Convert gsplat material to be chunk-based by @slimbuck in #7164
Other changes
- Exposed
GraphicsDevice.maxSamples
by @mvaligursky in #7086 - Gizmo hover disabled with no selection on mouse down by @kpal81xd in #7092
- Exposed
Scene.sky
properties by @mvaligursky in #7041 - Renamed ESM scripts to end with mjs by @kpal81xd in #7102
- Small bloom render pass optimization by @mvaligursky in #7104
- Add
RigidBodyComponent#getPosition/getRotation
to reduceAmmo
coupling by @kungfooman in #6948 - Adds
deprecated.js
tosideEffects
by @marklundin in #7114 - Add define gl_InstanceID of gl_InstanceIndex for webgpu by @AlexAPPi in #7123
- Depth prepass generates linear depth by @mvaligursky in #7119
- Improve JSDoc for Quat by @willeastcott in #7126
- Removes deprecated
.wheel
in OrbitCamera by @marklundin in #7115 - Remove no longer used
float2MantissaExponent
internal function by @mvaligursky in #7130 - Add support for simple compare expression to preprocessor by @mvaligursky in #7133
- Add
XrJoint#id
by @willeastcott in #7132 - WebGPU support for ClipDistances feature by @mvaligursky in #7134
- CameraFrame API in the engine by @mvaligursky in #7129
- Update ESLint to latest by @willeastcott in #7140
- Support compressed spherical harmonics by @slimbuck in #7143
- Support for
DEPTH16
texture format and its used for PCF shadow maps by @mvaligursky in #7142 - Per frame randomized SSAO sampling & debug mode in composite pass by @mvaligursky in #7139
- Renamed shadow type constants, old constants are deprecated by @mvaligursky in #7145
- Add option to
GltfExporter
to strip unused attributes by @willeastcott in #7153 - Texture can be constructed with a specified number of mip levels by @mvaligursky in #7160
Fixes
getFrustumCorners
fix by @slimbuck in #7077- Gizmo rotation direction fix by @kpal81xd in #7076
- fix #7098 missing texture format by @MAG-AdrianMeredith in #7099
- Fix Script schema retrieval in
ScriptHandler
by @marklundin in #7097 - Fixed ESM
swap()
by @marklundin in #7107 - Ply loading fix by @slimbuck in #7110
- Fix docs for
collisionend
event by @willeastcott in #7112 - Fix types for
Scene#skybox
andScene#envAtlas
by @willeastcott in #7118 - [Fix] Improve handling of lost device on WebGL by @mvaligursky in #7121
- Fix buffer view target overrides in glTF exporter by @willeastcott in #7152
- Correction to docs regarding
RenderTarget.mipLevel
by @mvaligursky in #7158 - [Fix] Remove dimensions caching from RT by @mvaligursky in #7163
Examples
- [BETA] ESM Multi-Camera script updates by @kpal81xd in #7078
- Example build fixes by @kpal81xd in #7083
- WebGPU Picker example fix by @kpal81xd in #7094
- Example controls updates by @kpal81xd in #7093
- Updated the Particles Snow example with depth softening by @mvaligursky in #7106
- Update Examples Browser NPM dependencies by @willeastcott in #7113
- Examples monaco loader fix by @kpal81xd in #7116
CameraControls
(previously MultiCamera) by @kpal81xd in #7111- Camera controls updates by @kpal81xd in #7141
- Camera controls fixes by @kpal81xd in #7157
- A utility script to allow WebGL GPU capture using Xcode by @mvaligursky in #7154
- Scale gs sort bucket size with scene size by @slimbuck in #7155
- ESM script to dynamically pull XR controllers from CDN by @willeastcott in #7148
- Make camera controls script play nice with XR by @willeastcott in #7128
- Camera controls XR null check by @kpal81xd in #7165
New Contributors
Full Changelog: v2.2.2...v2.3.0
v1.75.1
Fixes
- Disable MSAA on Android Firefox version newer than 123.0 by @mvaligursky in #7096
- Patch to migrate material to default to physical v1 by @kpal81xd in #7100
Full Changelog: v1.75.0...v1.75.1
v2.2.2
Fixes
- Disable MSAA on Android Firefox version newer than 123.0 by @mvaligursky in #7096
- Missing WebGPU texture format by @MAG-AdrianMeredith in #7099
- Fix script schema retrieval in ScriptHandler by @marklundin in #7097
Full Changelog: v2.2.1...v2.2.2
v1.75.0
What's Changed
- Compatibility of engine v1 with data format of engine v2 by @mvaligursky in #7066
- Adds LTS tag to NPM publish by @marklundin in #6971
- Gizmos updates v1 (fast forwarding from v2) by @kpal81xd in #6996
Fixes
- Fix for -Infinity compressed GS data by @slimbuck in #6973
- Gizmo fixes by @slimbuck in #6997
- [Fix] Fix in lightmapper where a material lightmap would be incorrectly released during baking by @mvaligursky in #7005
- [Fix] Fix to lightmapping not baking shadows on the following runs by @mvaligursky in #7022
- Gizmo material chunks shader fix by @kpal81xd in #7049
- Examples device type refactor v1 by @kpal81xd in #7062
- Compressed ply orientation fix by @slimbuck in #7064
- Lint error fix by @mvaligursky in #7067
- Example device types fixes v1 by @kpal81xd in #7091
- Examples devices fixes v1 by @kpal81xd in #7095
Full Changelog: v1.74.0...v1.75.0
v2.2.1
v2.2.0
Major/Breaking Changes
- Gizmo plane flipping and hiding by @kpal81xd in #7050
- Gizmos axis flipping and hiding by @kpal81xd in #7063
Other changes
- Support for GPU timing reporting for compute passes in WebGPU by @mvaligursky in #7028
- An attempt to handle lost device on WebGPU by @mvaligursky in #7032
- CameraFrame render pass rendering supports stencil buffer by @mvaligursky in #7031
- Fix text encoding in glTF exporter by @willeastcott in #7034
- Optimized the creation of CommandEncoders on WebGPU by @mvaligursky in #7037
- Ammo pointer fix by @LeXXik in #7038
- Fix draco pointer by @LeXXik in #7039
- Combine render passes where feasible by @mvaligursky in #7040
- [Fix] Fix to occasional black pixels with bloom and sharpening by @mvaligursky in #7044
- Gizmo clipping plane fix by @kpal81xd in #7045
- Gizmo scale fix by @kpal81xd in #7046
- Gizmo disabled hover fix by @kpal81xd in #7048
- Rendering to a single mip level of RenderTarget (WebGPU only) by @mvaligursky in #7051
- Fix gsplat material defines by @slimbuck in #7054
- Modified the gsplat examples to create splat instances a more standard way by @mvaligursky in #7053
- Gizmo orthographic fix by @kpal81xd in #7059
- Gsplat shader fix for webgpu by @slimbuck in #7065
- Gizmo rotation fix by @kpal81xd in #7068
- Small fix for texture read by @slimbuck in #7070
- Small type fix by @slimbuck in #7069
- Gizmo rotation fix for orthographic by @kpal81xd in #7072
- Gizmo orthographic ray fix by @kpal81xd in #7073
- Gizmos fixes by @kpal81xd in #7074
- ESM Multi camera (example currently hidden) by @kpal81xd in #6642
Examples
- Updated Events example to use render passes bloom by @mvaligursky in #7043
- Remove couple of unneeded lines from gsplat-many example by @mvaligursky in #7055
- Fixed examples device type logging by @kpal81xd in #7061
Full Changelog: v2.1.0...v2.2.0
v2.1.0
car2.mov
Major / Breaking changes
- [BREAKING] Skydome shader chunk changes + updates to FirstPerson example by @mvaligursky in #6991
- CameraFrame script, to expose a simple to use version for the engine and the Editor by @mvaligursky in #7011
Other changes
- Added few keywords to the package by @mvaligursky in #6892
- Improve ply parsing performance by @kemchenj in #6882
- Add support for assigning properties to script instances by @marklundin in #6787
- Allow per camera fog settings by @mvaligursky in #6899
- Propsal to update deprecated and removed functionality by @mvaligursky in #6900
- Improved error message when basis wasm is not loaded by @mvaligursky in #6901
- Option to apply SSAO during lighting instead of during postprocessing by @mvaligursky in #6907
- Refactored the API for RenderPassCameraFrame by @mvaligursky in #6916
- WebGPU partial support for multisampled RT using supplied depth texture by @mvaligursky in #6917
- Automatically store depth if RT is used with a user supplied depth buffer by @mvaligursky in #6918
- Update to ESLint 9 by @willeastcott in #6922
- Simplify ESLint config and enforce no-var rule by @willeastcott in #6923
- Migrate 18 ElementComponent unit tests from Karma to Node by @willeastcott in #6925
- Enable loading of texture assets in unit tests by @willeastcott in #6928
- Use
@template
onObjectPool
for actual types by @kungfooman in #6929 - Small cleanup of the WebGL MSAA buffer allocation code by @mvaligursky in #6931
- Update example file extension in CodeEditorDesktop.mjs by @marklundin in #6934
- Multisampled depth buffers can be shared between render targets on WebGPU by @mvaligursky in #6932
- Add
Vec2.HALF
,Vec3.HALF
andVec4.HALF
by @kungfooman in #6939 - RenderPass based SSAO works with multisampling by @mvaligursky in #6940
- Depth prepass now works with multisampling on WebGPU by @mvaligursky in #6945
- Small improvement to saturation control in compose pass to avoid clipping by @mvaligursky in #6962
- Texture Unit Tests via Skia-Canvas by @marklundin in #6944
- Tint color added to the color grading in the composite pass by @mvaligursky in #6967
- RenderPassCameraFrame exposes HDR formats by @mvaligursky in #6969
- Add support for Chrome HDR mode for WebGPU by @mvaligursky in #6980
- Add support for BC6H and BC7 texture formats, rename of two DXT formats by @mvaligursky in #6988
- Gizmo updates by @kpal81xd in #6992
- Improvements to non-clustered omni light shadows by @mvaligursky in #6998
- Improvement to layer handling by render passes by @mvaligursky in #7001
- Attach a label to WebGPU render pass encoder even in the release engine by @mvaligursky in #7003
- Update eslint config by @LeXXik in #7002
- #7004 Ensure outliner only adds enabled render components by @MAG-AdrianMeredith in #7006
- Refactored placeholder textures used by material loaded to a module by @mvaligursky in #7007
- Improved missing texture uniform error handling by @mvaligursky in #7008
- Avoid spam from AnimBinder regarding duplicate nodes by @mvaligursky in #7020
- Perform fuzzy test in material by @slimbuck in #7024
Fixes
- Prefilter fix by @slimbuck in #6894
- Fix 3D Gaussian Splat rendering in VR by @willeastcott in #6896
- [Fix] Correctly support sRGB DXT formats on WebGL by @mvaligursky in #6905
- Fix initialization of __attributes in ScriptType class by @marklundin in #6906
- [Examples/Vehicle] Fix Ammo null function error on restart by @kungfooman in #6902
- [Fix] Changing default value of SSAO during shader generation to false by @mvaligursky in #6910
- Ensure ScriptType members are initialized correctly by @marklundin in #6908
- WebXR: fix depth sensing for Oculus Quest v68+ by @Maksims in #6909
- Fix trigger crash by @LeXXik in #6926
- Back out arrow functions for Mocha tests by @willeastcott in #6927
- [Fix] Do not try to resolve color buffer if the RT does not have any, WebGL by @mvaligursky in #6919
- fixed broken cubemaps due to incorrectly sized params uniform by @MAG-AdrianMeredith in #6915
- Revert "Enable loading of texture assets in unit tests" by @marklundin in #6941
- fixed: incorrect texture being marked as srgb by @MAG-AdrianMeredith in #6938
- [Fix] Small fix to just introduced issue with MRT by @mvaligursky in #6947
- [Fix] Fix of WebGPU not correctly matching render pipelines to render target requirements by @mvaligursky in #6952
- Small fog and shader generation fixes when custom render passes are used by @mvaligursky in #6956
- Fix typo by @slimbuck in #6961
- Types fix by @slimbuck in #6963
- [Fix] Fix to reporting renderable support for float16 format by @mvaligursky in #6968
- [Fix] Stop transparent meshes to be rendered in depth prepass by @mvaligursky in #6972
- [Fix] RenderPassShaderQuad no longer destroys the shader by @mvaligursky in #6983
- Fix compound colliders by @LeXXik in #6979
- Gizmo fixes (#6997) by @kpal81xd in #6999
- Do not allow gizmo rendering to use debug output by @mvaligursky in #7009
- [Fix] Fix to area lights (disk, sphere) occasionally generating -Inf pixels by @mvaligursky in #7015
- [Fix] Remove recent fix from gizmo shader as not needed for engine v2 by @mvaligursky in #7017
- Fix/local-axis-gizmo-error by @MAG-ME in #7013
Examples
- OutlineRenderer and an engine example by @mvaligursky in #6898
- Examples error handling fix by @kpal81xd in #6957
- Examples thumbnail fix by @kpal81xd in #6958
- Examples engine bundled by @kpal81xd in #6959
- Examples host port update by @kpal81xd in #6960
- Change examples default serving port by @mvaligursky in #6970
- Update gsplat example shaders to latest structure by @slimbuck in #7021
- Regenerated thumbnails for the examples by @mvaligursky in #7025
New Contributors
- @MAG-AdrianMeredith made their first contribution in #6915
- @MAG-ME made their first contribution in #7013
Full Changelog: v2.0.0...v2.1.0
v1.74.0
What's New
- Support GS spherical harmonics by @slimbuck in #6946
- ESM Script class by @marklundin in #6950
Bug Fixes
- Gizmo scale fix v1 by @kpal81xd in #6830
- Fix an issue with light baking if the clustered lighting has shadows disabled by @mvaligursky in #6843
- CI + Updated ESLint for v1 by @kpal81xd in #6879
- fix touch event when target - is not an element by @Maksims in #6881
- Prefilter fix (engine v1) by @slimbuck in #6893
- Gsplat shader optimisations by @slimbuck in #6943
- Gsplat followup orientation and shader update by @slimbuck in #6954
Full Changelog: v1.73.5...v1.74.0
v1.73.5
v2.0.0
Major / Breaking changes
Major breaking changes are tracked in this ticket - use it also as a guide on what to do when you have issues: #6666
- [BREAKING] Removed WebGL1 support by @mvaligursky in #6295 #6299 #6300 #6297 #6297 #6305 #6306 #6311 #6314 #6313 #6312 #6318 #6320 #6322 #6321 #6319 #6325 #6327 #6329 #6330 #6336 #6356 #6398 #6406 #6688 #6793 #6810 #6872 #6873
- [BREAKING] Removed backwards compatibility for few functions by @mvaligursky in #6408
- [BREAKING] Remove deprecated
AudioSourceComponent
component by @mvaligursky in #6407 - [BREAKING] Remove support for legacy scripts by @mvaligursky in #6584
- [BREAKING] Initial cleanup of deprecated functionality by @mvaligursky in #6690
- [BREAKING] Changes to the HDR rendering by @mvaligursky in #6702
- [BREAKING] Colors of lights, fog and materials are always supplied in sRGB space, for both LDR and HDR by @mvaligursky in #6714
- [BREAKING]
BoundingBox
andOrientedBox
copy parameters in the constructor by @mvaligursky in #6691 - [BREAKING] Remove
flipv
code from glb loader by @slimbuck in #6747 - [BREAKING] Remove long time deprecated PHONG specular model by @mvaligursky in #6755
- [BREAKING] Remove energy conservation flag in standard material by @mvaligursky in #6756
- [BREAKING] Remove
StandardMaterial.diffuseTint
and simply always apply it by @mvaligursky in #6759 - [BREAKING] Remove
CURVE_CATMULL
andCURVE_CARDINAL
by @willeastcott in #6779 - [BREAKING] Remove StandardMaterial.emissiveTint and simply always apply it by @mvaligursky in #6762
- [BREAKING] Remove no longer needed shader defines:
SUPPORTS_TEXLOD
andSUPPORTS_MRT
by @mvaligursky in #6795 - [BREAKING] Remove
StandardMaterial.ambientTint
by @mvaligursky in #6805 - [BREAKING] Remove
StandardMaterial.sheenTint
by @mvaligursky in #6809 - [BREAKING]: Remove
pc.apps
,pc.common
,pc.config
,pc.data
by @willeastcott in #6814 - [BREAKING] Remove
pc.type
by @willeastcott in #6816 - [BREAKING] Gizmo constants by @kpal81xd in #6826
- [BREAKING] Implementation of
ShaderMaterial
- Material to be used with custom shaders by @mvaligursky in #6831 - [BREAKING] Remove
StandardMaterial.sheenGlossTint
by @mvaligursky in #6841 - [BREAKING] When material is cloned, its custom parameters are copied as well by @mvaligursky in #6844
- [BREAKING]
BasicMaterial
has been deleted by @mvaligursky in #6857 - [BREAKING] More general instancing by @mvaligursky in #6867
- [BREAKING] Instancing no longer ignores the model matrix by @mvaligursky in #6883
- [BREAKING] Remove no longer needed
drawTexture
by @mvaligursky in #6886 - [BREAKING] Remove support for
Layer.renderTarget
and some callbacks on the Layer by @mvaligursky in #6888 - [BREAKING] Adjusted the alpha part of the normal blend used by the Materials by @mvaligursky in #6889
- [BREAKING] Remove deprecated uniform for grab pass textures:
uDepthMap
andtexture_grabPass
by @mvaligursky in #6796
Build changes
- Include unbundled engine source in npm package by @kpal81xd in #6310
- Disable treeshaking polyfills by @kpal81xd in #6332
- Bundled build options by @kpal81xd in #6296
- Build fixes by @kpal81xd in #6340
- Fix
buildUrl
relative path support by @erikdubbelboer in #6354 - Add webpack ignore by @marklundin in #6359
- Only publish to npm when the pushed tag matches our version tag. by @slimbuck in #6399
- Publint CI by @kpal81xd in #6363
- Public vercel previews by @kpal81xd in #6600
- Treeshake plugin fix by @kpal81xd in #6601
- Bumps package.json to 2.0.0-dev by @marklundin in #6719
- Adds NPM 'alpha' identifier by @marklundin in #6722
- Fix npm publish tag variable by @marklundin in #6740
- Update alpha publish by @slimbuck in #6760
- Keep correct paths for build output even when build is invoked outside of repo root by @liamdon in #6589
- Updated ESLint config by @kpal81xd in #6877
Other changes
- New texture formats: R8 and RG8 by @mvaligursky in #6602 #6649
- Remove references to
pcx
namespace by @willeastcott in #6304 - Update Graphics markers to display better with hierarchy by @mvaligursky in #6290
- Remove uniform buffer based skinning and batching by @mvaligursky in #6324
- Gizmo cleanup and bug fixes by @kpal81xd in #6323
- Small refactor to separate composition update from framegraph building by @mvaligursky in #6333
- Initial refactor to how bind groups can be used with non-persistent UBs by @mvaligursky in #6341
- Updated the way WebGPU dynamic UBs are used for rendering by @mvaligursky in #6349
- Revert "Add Script alias (#6237)" by @marklundin in #6355
- Added docs for supported HDR formats by @mvaligursky in #6351
- Reordered export types by @kpal81xd in #6362
- Small JSDoc normalization/fixes by @kungfooman in #6369
- Update GS rendering v2.0 by @slimbuck in #6357
- Functionality to async-read texture from GPU on WebGPU by @mvaligursky in #6370
- Render compressed GS data by @slimbuck in #6371
- Refactor of the
RenderPassCameraFrame
by @mvaligursky in #6400 - Support for
Picker
on WebGPU by @mvaligursky in #6393 - USDZ / GLTF exporter supports exposing of compressed textures on WebGPU by @mvaligursky in #6394
- Gizmo orthogonal facing direction translation by @kpal81xd in #6607
- Shader chunks type by @kpal81xd in #6621
- Docs update by @LeXXik in #6631
- First person script update by @kpal81xd in #6640
- GraphNode
setPositionAndRotation
by @kpal81xd in #6625 - RenderPass based SSAO by @mvaligursky in #6657
- Small refactor in a way bloom render pass is managed by @mvaligursky in #6683
- Allocate smaller WebGPU dynamic buffers by @mvaligursky in #6682
- When glslang transpilation fails on WebGPU, add stack trace to the error message by @mvaligursky in #6681
- Add JSDoc for getters by @willeastcott in #6685
- Update to HDR rendering used by the RenderPassCameraFrame by @mvaligursky in #6687
- Refactor shader cache implementation for the mesh instance by @mvaligursky in #6696
- Texture property changes flags by @heretique in #6697
- More descriptive shader names for Particle Emitter simulation shaders by @mvaligursky in #6701
- Small updates to the ModelOutlineExample by @mvaligursky in #6703
- Remove
app#context
backwards compatibility for scripts 1 by @willeastcott in #6704 - Remove remnants of
GraphNode
label API by @willeastcott in #6705 - Tweaks to
XrAnchor
source by @willeastcott in #6706 - Improve typings and docs for
XrPlane
by @willeastcott in #6708 - Allow components ordering by @LeXXik in #6648
- Clear references of temporary ar...