Releases: playcanvas/engine
Releases · playcanvas/engine
v1.57.1
Bug Fixes
- Use prefiltered cubemap format and type by @slimbuck in #4672
- GltfExporter correctly handles multiple mesh instances per entity by @mvaligursky in #4683
- Texture related improvements to Gltf and USDZ Exporters by @mvaligursky in #4690
- Fix GLB punctual lights with physical units by @GSterbrant in #4691
- Fixes sheen intensity by @GSterbrant in #4697
- Fix vertex shader attribute validation to support builtins by @mvaligursky in #4695
- Processing the animation data properties in the original order before PR #4174 by @yaustar in #4698
Full Changelog: v1.57.0...v1.57.1
v1.57.0
Major changes
- Add support for iridescence by @GSterbrant in #4632
- USDZ Exporter by @mvaligursky in #4638 #4646 #4668
- Output treeshakeable module builds by @slimbuck in #4601
New features
- Physically based camera by @GSterbrant in #4585
- Physically based light units by @GSterbrant in #4618
- Pass area lights LUT directly by @yak32 in #4643
- Add glTF exporter by @willeastcott in #3366
- Added changeScene API by @yaustar in #4626
- Adds a texture mapping allowing us to combine sampler uniforms by @GSterbrant in #4636
- Small updates to improve WebGPU implementation by @mvaligursky in #4599
- Added CC-BY-4.0 licences to asset viewer example by @yaustar in #4610
- Add the XXXMapTint and XXXMapVertexColor to the removed material parameters list by @GSterbrant in #4567
- Use better defaults for physically based camera parameters by @GSterbrant in #4617
- Only add the shared sampler if the chunk uses the $SAMPLER macro. by @GSterbrant in #4669 #4674 #4681
- Partial support for texture formats on WebGPU by @mvaligursky in #4622
- Expose lightmapper chunks by @slimbuck in #4648
- Additional flexibility for Morph targets by @mvaligursky in #4662
- Small improvements to physical lights units example by @mvaligursky in #4679
- Revert enabling image bitmap by @slimbuck in #4596
- Test for ImageBitmap support at startup by @slimbuck in #4598
Fixes
- Fix missing chunk deprecations and updates. by @GSterbrant in #4592
- Make sure we create a grab pass buffer if no source is present by @GSterbrant in #4593
- Fix using fresnel incorrectly with lightmaps. by @GSterbrant in #4594
- Fix sheen glossiness and colour not getting applied correctly by @GSterbrant in #4619
- Fix bug where sheen wasn't appropriately layered by @GSterbrant in #4629
- Fix energy preservation for clear coat by @GSterbrant in #4630
- Fix refraction bug by @GSterbrant in #4631
- Disable use of specularity factor if non-metalness workflow is used. by @GSterbrant in #4640
- Lint fixes to UsdzExportExample by @mvaligursky in #4646
- Fix lightmap chunk sampler by @slimbuck in #4652
- Fix vector subtraction comments by @ninito-ph in #4654
- Fixed issue (#3733) that prevents XR from working in certain circumstances by @Clicky02 in #4517
- Unset deleted render target by @slimbuck in #4655
- Fix unpacking of msdf markup params by @NewboO in #4600
- Clear coat fresnel fix by @GSterbrant in #4657
- [Fix] Fixed Webgl’s shader handling of lost context by @mvaligursky in #4658
- Resolve render target before generating mips by @slimbuck in #4661
- [Fix] Engine examples readme file specifies how to build the thubmnails by @mvaligursky in #4663
- Fix typo in cloneSkinInstances to avoid double allocations by @mvaligursky in #4664
- GLB parser - check for empty curveData path arrays by @ellthompson in #4665
- Fix screen-space UI not receiving events in AR mode. by @jpauloruschel in #4667
- Fix chunk decode calls by @slimbuck in #4670
- Fix warning for our GLB chunks not using the right API version by @GSterbrant in #4671
- Use prefiltered cubemap format and type by @slimbuck in #4672
- ElementDragHelper: Fix drag NaN by @kungfooman in #4666
New Contributors
- @ninito-ph made their first contribution in #4654
- @Clicky02 made their first contribution in #4517
Full Changelog: v1.56.0...v1.57.0
v1.56.0
Larger Features
- Add support for
KHR_materials_sheen
by @GSterbrant in #4460 - Add support for
KHR_materials_volume
by @GSterbrant in #4485 - Add support for
KHR_materials_variants
by @GSterbrant in #4528 - Add support for
KHR_materials_emissive_strength
by @GSterbrant in #4535 - Add HQ reflections by @slimbuck in #4513
- Initial very basic implementation of WebGPU by @mvaligursky in #4534
- Clustered lighting is enabled by default and public by @mvaligursky in #4586
What's new
- Add Korean language README file by @kangjung in #4479
- Append action function by @jath-git in #4469
- Remove negative mouse action requirement by @jath-git in #4458
- Added validation for the chunks with changed APIs by @GSterbrant in #4496
- Provide default textures for the new material textures. by @GSterbrant in #4523
- Unified standard + basic shader intro code by @mvaligursky in #4565
- Print a warning when resource loader is not registered by @mvaligursky in #4574
- Asset viewer example by @GSterbrant in #4583
- Moved lightmapper only chunks to separate module to allow for their tree-shaking by @mvaligursky in #4588
Bug Fixes
- Glb-parser morph target fix by @ellthompson in #4474
- Add missing material parameters by @GSterbrant in #4478
- Reproject fix by @slimbuck in #4488
- Fix Specularity Factor tint with map by @GSterbrant in #4506
- Split the reflection and light sheen calculations by @GSterbrant in #4500
- Fix to recently introduced issue with Basic shader generator by @mvaligursky in #4507
- When material is not set on mesh instance, warn and use default one. by @mvaligursky in #4524
- Morph target animation fix by @ellthompson in #4532
- Apply polygon offset for shadows with WebGL1 by @GSterbrant in #4538
- Fix biasing issues with WGL1 by @GSterbrant in #4544
- Animation resource with events fix by @ellthompson in #4545
- AnimBinder path resolution update by @ellthompson in #4548
- Return null if no variants are present by @GSterbrant in #4549
- Example controls fix by @ellthompson in #4550
- Fix AudioContext not resuming properly. by @jpauloruschel in #4462
- AssetListLoader fix by @ellthompson in #4561
- Dynamic refractions multiply albedo twice by @GSterbrant in #4563
- Handle default material for createModel by @GSterbrant in #4566
- Add layer check between Camera and Element when testing for input. by @jpauloruschel in #4210
- Fix material thickness and texture transforms by @GSterbrant in #4578
- Export AppOptions by @slimbuck in #4581
- Fix UI Element input events on multiple touches. by @jpauloruschel in #4562
- Avoid using null Batcher by @mvaligursky in #4590
- Register shader generators at the point of use instead of always by @mvaligursky in #4587
- Fix grab pass with downscaled render target by @GSterbrant in #4591
New Contributors
- @jath-git made their first contribution in #4469
- @Mintytorus made their first contribution in #4481
- @kangjung made their first contribution in #4479
Full Changelog: v1.55.0...v1.56.0
Notes
To enable the new dynamic refractions, a few modifications are required on the application side, first, you need to add this:
const depthLayer = app.scene.layers.getLayerById(pc.LAYERID_DEPTH);
app.scene.layers.remove(depthLayer);
app.scene.layers.insertOpaque(depthLayer, 2);
What this does is to rearrange the layers such that the skydome will be part of the grab pass. Then we need to make the camera actually perform the grab pass:
const camera = new pc.Entity();
camera.addComponent("camera", {
clearColor: new pc.Color(0.4, 0.45, 0.5)
});
camera.setLocalPosition(0, 5, 30);
camera.camera.requestSceneColorMap(true);
The last thing to do is to make sure you create the graphics device with the alpha option set to true
// Create the app and start the update loop
const app = new pc.Application(canvas, {
graphicsDeviceOptions: {
alpha: true
},
mouse: new pc.Mouse(document.body),
keyboard: new pc.Keyboard(document.body),
touch: new pc.TouchDevice(document.body)
});
v1.55.4
Bug Fixes
- Updated REGEX for Samsung Exynos check for Snapchat Minis (#4515)
- [Fix] Fix error message accessing null in SkinInstance (#4526)
- Clear wasm module global (#4527)
- Fix preprocessor regexp matching extensions (#4530)
- fix for the named morph targets feature (#4532)
Full Changelog: v1.55.3...v1.55.4
v1.55.3
v1.55.2
v1.55.1
What's New
- Support RGBP encoding (#4414)
Bug Fixes
- Skip morph target curve outputs with no data (#4474)
- Remove unnecessary warnings (#4475)
- Support extension declarations in shader preprocessor (#4476)
- Remove extraneous bracket in diffuseDetailMap shader chunk by @Mintytorus (#4481)
- Increase the shadow resolution in model-outline example to avoid banding (#4491)
- Added deprecated private Scene._updateSkybox function to avoid Editor breaking (#4492)
- Back out tuple notation which is not supported by JSDoc (#4493)
- Revert "Enable clustered lighting by default (#4364)" (#4494)
- Revert "Make touch events passive like mouse events (#4279)" (#4495)
- Polyfill for Object.values by @kungfooman (#4482)
Full Changelog: v1.55.0...v1.55.1
v1.55.0
Larger features
- Support for
KHR_materials_specular
by @GSterbrant in #4386 - Support for
KHR_materials_ior
by @GSterbrant in #4429 - Support for
KHR_materials_transmission
and refraction as a texture by @GSterbrant in #4437 - Enable clustered lighting by default by @mvaligursky in #4364
- Chunk version checking by @slimbuck in #4343
- Shadow intensity by @GSterbrant in #4346 #4352
- SSAO Downscale by @GSterbrant in #4339
- Support WASM module loading by @slimbuck in #4235 #4452
What's New
- Deprecated ForwardRenderer.renderComposition to keep compatibility. by @mvaligursky in #4292
- Get sourcemaps working by @slimbuck in #4293
- Reverted API change to ForwardRenderer.setCamera as Editor uses it by @mvaligursky in #4294
- Add outline/shadow tags to markups by @querielo in #4302
- Small rollup cleanup by @slimbuck in #4310
- Add examples develop script by @slimbuck in #4309
- Revert "Remove legacy flipV code in glb-parser (#4079)" by @slimbuck in #4312
- Box-reflection example uses batmobile mesh instead of a sphere by @mvaligursky in #4321
- Updated JSDocs of AppOptions to be JSDocs compatible by @mvaligursky in #4324
- Layer composition rendering using RenderPass, optimization by @mvaligursky in #4317
- Utility private ShaderPass class to abstract some code scattered in the codebase by @mvaligursky in #4328
- Small ForwardRenderer change in a way view uniform buffers are setup by @mvaligursky in #4331
- Extract backend from standard.js by @slimbuck in #4254
- Really really disable mipmaps on RGBE by @slimbuck in #4347
- Animate morph targets by name by @ellthompson in #4327
- Remove throws from GraphNode which were unnecessarily interrupting execution by @mvaligursky in #4350
- Adding Debug.call which executes a function in debug mode only by @mvaligursky in #4349
- Update programlib by @slimbuck in #4363
- Prefer
===
over==
and!==
over!=
by @willeastcott in #4366 - Update NPM dependencies by @willeastcott in #4367
- Update comment in Grab-Pass example to match current behaviour by @mvaligursky in #4369
- Handle null texture in textureAtlas by @slimbuck in #4370
- Added w component to the origin and direction for XRRay by @yaustar in #4372
- Refactor JSDoc blocks for events by @willeastcott in #4373
- Add missing JSDoc param by @willeastcott in #4374
- JSDoc: graphics: lit-shader/standard, scene: render-action/forward-renderer by @kungfooman in #4376
- Update basis with latest build by @slimbuck in #4384
- Only import what is necessary from sinon by @willeastcott in #4385
- Sync screens draw order on set Priority. by @jpauloruschel in #4380
- Remove duplicated anim export by @willeastcott in #4383
- Public log tracing functionality by @mvaligursky in #4361
- Deprecated obsolete functionality from the Scene by @mvaligursky in #4388
- Extracted skybox functionality from Scene into Sky class by @mvaligursky in #4389
- Shader allocation tracing by @mvaligursky in #4387
- Flag lightmapper custom chunks with correct API by @slimbuck in #4393
- Small internal refactor of shader variants handling by renderer by @mvaligursky in #4394
- Copy unlit material texture rotation by @slimbuck in #4396
- Deallocate internal resources for post effects by @GSterbrant in #4398
- Remove the AssetListLoader class from the deprecated file by @ellthompson in #4401
- Handle scenes with skybox by @slimbuck in #4403
- ShaderProcessor partially updating shader source to support uniform buffers by @mvaligursky in #4402
- Deprecate material.updateShader instead of removing it. by @mvaligursky in #4406
- Refactor of glTF extension handling by @GSterbrant in #4409
- BasicMaterial shader name for Spector by @mvaligursky in #4408
- Encoding cleanup by @slimbuck in #4405
- Shader processor improvements related to bind groups format by @mvaligursky in #4410
- [BREAKING] Material specular now defaults to 1. by @GSterbrant in #4419
- Don’t log version/revision message if those are not valid by @mvaligursky in #4421
- Reset default specular to 1. by @GSterbrant in #4423
- Add helper for getting shader pass type by @slimbuck in #4424
- Respect standard material options.gamma by @slimbuck in #4425
- Dot not build lighting shader if material.useLighting is false by @mvaligursky in #4430
- Add switch to enable/disable specular color with metalness workflow by @GSterbrant in #4428
- Reintroduce support for chunk $texture2DSAMPLE by @slimbuck in #4431
- Remove redundant normalisations by @GSterbrant in #4435
- Handle shader-decoded texture alpha correctly by @slimbuck in #4440
- Simplified passing ior by @GSterbrant in #4441
- Only degamma specular if we use a metalness specular color map by @GSterbrant in #4436
- Handle specular encoding by providing the encoding method as an option by @GSterbrant in #4443
- All prefiltered env maps are rgbm by @slimbuck in #4445 #4453
- Correct encodeGamma return type by @slimbuck in #4448
Bug fixes
- AssetListLoader json model fix by @ellthompson in #4296
- IE shader compile fix by @slimbuck in #4298
- [FIX] Update
emissiveMapTint
call toemissiveTint
by @willeastcott in #4301 - [Fix] Disabled layers (depth) are skipped instead of splitting render pass by @mvaligursky in #4305
- [FIX] Add API docs for new text markup tags by @willeastcott in #4316
- [Fix] - SceneGrab using correct camera to see what buffer to grab by @mvaligursky in #4337
- [Fix] Grab pass (color, depth) now properly support multiple cameras by @mvaligursky in #4340
- Fix minimal options by @slimbuck in #4344
- [Fix] Fix to BasicMaterial support of alphaTest by @mvaligursky in #4345
- Fixes some WebGL types by @kungfooman in #4197
- SSAO delayed resize fix by @GSterbrant in #4342
- AnimTargetValue fix by @ellthompson in #4335
- [Fix] Improvement to Entity.destroy by @mvaligursky in #4354
- Fix culling on screen-space screen. by @jpauloruschel in #4355
- [Fix] Don’t trigger an assert on initial blend weights getting set up by @mvaligursky in #4357
- [Fix] Fix Ammo internal init when the App is recreated. by @mvaligursky in #4332
- [Fix] Fix to sharing of clustered light buffer between layers by @mvaligursky in #4362
- Fix depth linearization by @GSterbrant in #4360
- Shader fixes by @slimbuck in #4379
- JSDoc fixes for event and type tags by @willeastcott in #4381
- Fix the shader bug by @slimbuck in #4392
- Shader compilati...
v1.54.1
v1.54.0
What's New
- Preprocessor to resolve ifdefs is applied to shader programs by @mvaligursky in #4156
- AppBase refactored out of the Application to allow for tree-shaking by @mvaligursky in #4082
- AppBase - additional refactor to improve minimal app size by @mvaligursky in #4175
- Public AssetListLoader & examples update by @ellthompson in #4149
- Enable support for retrying loading of container assets by @vfernandestoptal in #4188
- Add fitMode property on Image Elements. by @jpauloruschel in #4206
- Debug logging functions that log one time by @mvaligursky in #4243
- Refactored the grab pass and scene depth rendering by @mvaligursky in #4244
- Depth Fog engine example by @mvaligursky in #4257
- WIP implementation of UniformBuffer and BindGroup by @mvaligursky in #4258
- Basic implementation of RenderPass based architecture by @mvaligursky in #4272
- Add support for .opus audio files by @erikdubbelboer in #4280
Bug Fixes
- [FIX] Ensure consistent function return types by @willeastcott in #4153
- Partial migration to single quotes by @willeastcott in #4155
- [FIX] Declare standard material maps as nullable by @willeastcott in #4165
- Resolve pc.now to native function by @kungfooman in #4162
- Remove firing of redundant
frameEnd
event by @willeastcott in #4168 - [FIX] Correct type of
AnimClip
eventHandler parameter by @willeastcott in #4166 - Migrate more unit tests from Karma to Node by @willeastcott in #4163
- Migrate
framework
scene
andresources
folders to single quotes by @willeastcott in #4167 - Anim tests by @ellthompson in #4158
- Line rendering - avoid spread operator on large arrays by @mvaligursky in #4173
- Remove WebVR API support by @mvaligursky in #4177
- Renamed AppCreateOptions to AppOptions by @mvaligursky in #4178
- Update
AnimationComponent
to the new component format by @willeastcott in #4174 - AppBase handles missing XR correctly by @mvaligursky in #4179
- Remove logging from the grab pass example by @ellthompson in #4182
- Export AppBase class to allow testing by external applications by @mvaligursky in #4183
- Fix Readme - missing script: build:watch by @ahelja in #4187
- Simplified glsl by @CarlBateman in #4191
- Change some console.warn to Debug.warn by @Maksims in #4194
- Destroy XR-DepthSensing texture when Application is destroyed by @mvaligursky in #4207
- 2D UI rendering honors RenderTarget.flipY option by @mvaligursky in #4208
- Improved vertex color handling for GLB files by @mvaligursky in #4209
- Add bias version of rgbm helper by @slimbuck in #4217
- Add more JSDoc types by @kungfooman in #4205
- Support depth textures webgl1 by @slimbuck in #4227
- chore: Set permissions for GitHub actions by @naveensrinivasan in #4226
- Fix pc.SoundInstance end event suspension by @rafern in #4234
- Add .gitattributes to normalize how line endings are stored by @liamdon in #4240
- Convert stored line endings in repo to LF by @liamdon in #4241
- Organize shader chunks into vert and frag folders by @slimbuck in #4247
- Improve shader preprocessor whitespace handling by @slimbuck in #4249
- Additional performance markers & small code cleanup by @mvaligursky in #4251
- [FIX] Move closing parentheses to the right place by @willeastcott in #4253
- Use script tag for engine in examples by @slimbuck in #4255
- Update torus primitive by @slimbuck in #4256
- Upgrade Examples Browser to PCUI 2.3.1 by @willeastcott in #4264
- Remove many
ts-ignore
statements from examples by @willeastcott in #4270 - Updated contribution guidelines regarding the enum format by @mvaligursky in #4273
- Small refactor to depth layer access to work with multiple applications by @mvaligursky in #4274
- Changed copyright year to 2022 by @yaustar in #4275
- Return original source if preprocessor fails by @slimbuck in #4285
- Remove codeql by @slimbuck in #4286
- Fix color mix in the linear fog by @querielo in #4283
- Update
substr
calls tosubstring
by @willeastcott in #4276 - Polyfill for String.trimEnd by @mvaligursky in #4288
- Make touch events passive like mouse events by @erikdubbelboer in #4279
- Update Rollup config by @slimbuck in #4282
- Add app renderComposition by @slimbuck in #4291
- Element component: mark a batch group as dirty if an attribute has been changed by @querielo in #4289
New Contributors
- @ahelja made their first contribution in #4187
- @vfernandestoptal made their first contribution in #4188
- @naveensrinivasan made their first contribution in #4226
- @rafern made their first contribution in #4234
- @querielo made their first contribution in #4283
Full Changelog: v1.53.4...v1.54.0