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
- Experimental opacity dithering for splats by @mvaligursky in #5905
- Initial experimental support for static TAA by @mvaligursky in #5909
- Small cleanup to splat rendering related to changes to dithering by @mvaligursky in #5945
- Adding GSplatComponentSystem to the Application by default by @mvaligursky in #5980
- Exposed temporary API for custom shaders for the splat rendering by @mvaligursky in #5983
Examples
- Show configurable example descriptions by @erikdubbelboer in #5922
- [Examples] Skip hidden examples from being listed by @kungfooman in #5847
- [Examples] Remove redundant static NAME property on Example classes by @kungfooman in #5853
- [Examples] Load examples without internet by @kungfooman in #5862
- Updated examples package version to fix vulnerability by @mvaligursky in #5863
- [Examples] Fix build time getting progressively slower by @kungfooman in #5873
- PaintMesh engine example works on WebGPU by @mvaligursky in #5891
- Disable MSAA for splat examples by @mvaligursky in #5899
- Fix all linting errors in the examples by @erikdubbelboer in #5923
- Make MiniStatsExample WebGPU compatible by @erikdubbelboer in #5916
- Make Point Cloud examples WebGPU compatible by @erikdubbelboer in #5917
- Make more examples WebGPU compatible by @erikdubbelboer in #5918
- For WebGPU render to low res buffer to make PointCloudSimulation example visible by @mvaligursky in #5931
- MRT example fix by @LeXXik in #5934
- Add example with multiple applications at the same time by @erikdubbelboer in #5920
- Update Physics collision offset example by @LeXXik in #5940
- Examples ar-link flag by @kpal81xd in #5946
- Slight modifications to LoadersGL example to work on WebGPU by @mvaligursky in #5982
- Small clean up and improvements to the MultiApplication example by @mvaligursky in #5991
- Simple polish to the IntegerTextures example by @mvaligursky in #5997
- Polish to the texture-array engine example by @mvaligursky in #5996
New and substantial updated examples
- https://playcanvas.github.io/#/graphics/sky
- https://playcanvas.github.io/#/misc/gizmos
- https://playcanvas.github.io/#/graphics/dithered-transparency
- https://playcanvas.github.io/#/graphics/integer-texture
- https://playcanvas.github.io/#/graphics/texture-array
- https://playcanvas.github.io/#/misc/multi-application
- https://playcanvas.github.io/#/graphics/postprocessing
- https://playcanvas.github.io/#/xr/ar-mesh-detection
- https://playcanvas.github.io/#/xr/ar-camera-color
- https://playcanvas.github.io/#/xr/ar-camera-depth
New Contributors
- @arcadian-st made their first contribution in #5858
Full Changelog: v1.67.3...v1.68.0