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 array when no longer needed by @LeXXik in #6712
- Leverage WebXR types in public API by @willeastcott in #6713
- ESM script base class by @marklundin in #6367
- GSplat speedup by @slimbuck in #6715
- Update
setFromMat4
and add tests by @slimbuck in #6720 - Do not compile different shader for opacity of 1 and diffuse tint of white by @mvaligursky in #6721
- Add array pool for sorted components by @LeXXik in #6718
- Improve some JSDoc class descriptions by @willeastcott in #6725
- Standard material handles textures in sRGB format by @mvaligursky in #6736
- Image files can be loaded into sRGB textures by @mvaligursky in #6739
- Eliminate some occurrences of
var
by @willeastcott in #6737 - Remove
events.attach
by @willeastcott in #6741 - Unify gsplat shaders by @slimbuck in #6753
- Remove redundant
StandardMaterial.shadingModel
by @mvaligursky in #6757 - Refactor
Entity
,Mesh
,MeshInstance
andRender
classes by @willeastcott in #6767 - Invoke
stopPropagation
on pointer events handled by gizmo. by @slimbuck in #6770 - Support for compressed sRGB formats by @mvaligursky in #6743
- Fallback to int-texture based morphing instead of attribute when float texture rendering is not supported by @mvaligursky in #6771
- Render targets can use sRGB color buffer by @mvaligursky in #6752
- Elements need to set color uniforms in linear space by @mvaligursky in #6761
- WebXR - remove deprecated
XrDepthSensing
,XrView
- should be used instead by @Maksims in #6773 - Update
Tags
class to use spread instead of arguments by @willeastcott in #6775 - Use object destructuring with vectors by @willeastcott in #6777
- Minor refactor of
Curve
class by @willeastcott in #6780 - Remove redundant
@ignore
tags by @willeastcott in #6782 - Delete splat-related exports now that extras is part of core engine by @willeastcott in #6783
- Refactor
Frustum
to usePlane
by @willeastcott in #6784 - Refactor
AppBase#preload
by @willeastcott in #6788 - Leverage
@import
tag to simplify JSDoc by @willeastcott in #6786 - Remove Listener velocity by @willeastcott in #6797
- Edit pass on WebXR API docs by @willeastcott in #6799
- Remove handling of deprecated form of
MeshInstance.constructor
by @mvaligursky in #6800 - Move
AppBase
constructor properties to class fields by @willeastcott in #6801 - Remove private
StandardMaterial.tbnFast
option support by @mvaligursky in #6806 - Small gizmo event handler fix by @slimbuck in #6811
- Refactor the way shaders get created for particle systems by @mvaligursky in #6804
- Remove never used
StandardMaterial.normalizeNormalMap
by @mvaligursky in #6807 - Move some of
AppBase#init
to class fields by @willeastcott in #6802 - Remove
opacityTint
internal flag by @mvaligursky in #6812 - Remove some redundant exports by @willeastcott in #6815
- Removed helper functions on the chunks by @mvaligursky in #6821
- Support for
OffscreenCanvas
in Web Workers by @michaelfranzl in #5168 - Add gsplat mapping by @slimbuck in #6824
- Followup Gizmo API changes by @kpal81xd in #6827
- Remove unused private
shFromCubemap
function by @mvaligursky in #6832 - Renamed internal ‘descr’ symbols to ‘desc’ for consistency by @mvaligursky in #6833
- Custom line shader & handle gamma by @mvaligursky in #6834
- Support for sRGB framebuffer on WebGPU by @mvaligursky in #6838
- Allow blit to backbuffer by @slimbuck in #6849
- Remove normalSkinned shader chunk which is never referenced by @mvaligursky in #6853
- Remove unused transform instanced chunk by @mvaligursky in #6854
- Skinning / morphing support for
ShaderMaterial
by @mvaligursky in #6855 ShaderMaterial
supports PICK shader pass by @mvaligursky in #6856- Move parameters of
getShaderVariant
function to an object by @mvaligursky in #6858 - Removed references to no longer used
shader
from theMaterial
by @mvaligursky in #6862 - Expose intensity of the Ambient Occlusion on the
StandardMaterial
by @mvaligursky in #6866 - Support for
EXT_mesh_gpu_instancing
extension by @mvaligursky in #6869 - Material can specify defines for the shader by @mvaligursky in #6865
- SSAO uses a separable depth aware blur to improve performance by @mvaligursky in #6870
- Debug error
removeComponent
correct method name by @kpal81xd in #6848 - Small cleanup of the internal dirty flags for the
Texture
properties by @mvaligursky in #6885 - Removed few very old parts of the
deprecated.js
by @mvaligursky in #6887 - Use
DeviceCache
to store shape primitives in by @mvaligursky in #6891
Examples
- SSAO engine example by @mvaligursky in #6586 #6593
- Examples removed WebGL1 option by @kpal81xd in #6307
- Added mesh particles example by @mvaligursky in #6291 #6331
- Examples mobile fixes by @kpal81xd in #6335
- Examples file loader rework by @kpal81xd in #6339
- Examples removed linux chrome fallback by @kpal81xd in #6343
- Examples app bundle optimizations by @kpal81xd in #6588
- Examples iframe params fix by @kpal81xd in #6604
- Gizmo example update by @kpal81xd in #6622
- Examples config fixes by @kpal81xd in #6626
- Device Selector fallback options fix by @kpal81xd in #6628
- Examples imports fixes by @kpal81xd in #6634
- Examples gizmo selection fix by @kpal81xd in #6637
- Examples JSDoc tokenizer fixes by @kpal81xd in #6644
- Multi app fix by @kpal81xd in #6645
- Regenerate thumbnails to make them up to date by @mvaligursky in #6890
- ESM example by @kpal81xd in #6735
- gsplat examples fix by @slimbuck in #6754
- NullDevice examples fix by @kpal81xd in #6758
- Gizmo small example by @kpal81xd in #6825
- Gizmo resize editor example fix by @kpal81xd in #6847
- Add missing example thumbnails by @mvaligursky in #6861
- Gizmo examples restructure by @kpal81xd in #6850
Fixes
- [Fix] Fix to
skydomeIntensity
handling - Standard materials do not use it in some cases by @mvaligursky in #6308 - Fix a shader issue causing material-anisotropic example to fail by @mvaligursky in #6326
- Updated one missed VSM shader chunk for WebGPU compatibility by @mvaligursky in #6348
- Fix: Clean up lines for rendering even when the Layer is disabled by @mvaligursky in #6353
- Fix for glb load error by @slimbuck in #6391
- Fixing random JSDoc issues by @kungfooman in #6392
- Fix for reloaded cubemaps assets by @slimbuck in #6397
- Fix for gsplat shader by @slimbuck in #6402
- GS reorder fix by @slimbuck in #6410
- Gizmo Axis shape disable fix by @kpal81xd in #6587
- [Fix] Add missing exposure handling from the Neutral tonemapping by @mvaligursky in #6592
- Fix types for
calcAabb
functions by @willeastcott in #6596 - Exports and types fixes by @kpal81xd in #6623
- Fix URL handling in
ScriptHandler
by @marklundin in #6639 - Fix mesh collider creation by @LeXXik in #6630
- Fixed trigger body not set to null once destroyed by @MushAsterion in #6641
- Fix transform not destroyed on Ammo Hull creation by @MushAsterion in #6643
- Fix the definition of
sheenTint
StandardMaterial
property by @mvaligursky in #6665 - Update to skybox shader to map it closer to the infinity by @mvaligursky in #6664
- [Fix] Particle system handle different IB formats of incoming mesh by @mvaligursky in #6662
- Cubemap fix for webgpu by @slimbuck in #6669
- Fix shader chunk error for tonemapped compressed GS by @slimbuck in #6670
- [Fix] Fix picker support in
BasicMaterial
by @mvaligursky in #6672 - Fix WebXR Depth Sensing - GPU path (Quest 3) by @Maksims in #6650
- Gsplat fixes by @slimbuck in #6711
- ScriptAttribute fix by @marklundin in #6750
- Gizmo fixes by @kpal81xd in #6763
- WebXR - fix depth sensing on quest 3 by @Maksims in #6774
- [Fix] Fix
Entity.findComponent
(s) functions by @mvaligursky in #6789 - Gizmo event fix by @slimbuck in #6790
- Minor fixes to
AssetListLoader
andAssetRegistry
by @willeastcott in #6794 - [Fix] Ignore the shape of light if area lights are disabled by @mvaligursky in #6808
- Minor JSDoc fixes by @willeastcott in #6818
- Array equals fix by @kpal81xd in #6823
- [Fix] Fix albedo debug output by @mvaligursky in #6836
- Small gsplat fixes by @slimbuck in #6837
- Fix gsplat sorting bug by @slimbuck in #6845
- Small fix to gsplat sorter by @slimbuck in #6846
- Small webgpu fixes by @slimbuck in #6852
- Animation component asset null fix by @kpal81xd in #6863
getAnimationAsset
returns Asset by @kpal81xd in #6864- [Fix] Fix to shadow baking by @mvaligursky in #6884
New Contributors
- @michaelfranzl made their first contribution in #5168
Full Changelog: v1.73.4...v2.0.0