Engine Release: v1.55

Engine v1.55.0 has been released. Release notes:

To stay updated on engine development, hit Watch on the repo. Support us by hitting Star too! :smiley:

As we move to standardize our Shader Chunk API and support as many glTF extensions as possible, we’ve had to make larges changes to the existing API that may affect you if your projects have custom Shader Chunks.

The majority of changes would be updating uniform names and we have documentation to help guide you through the API update. (Documentation link).

This release is scheduled to be made ‘Current’ in the Editor on the 3rd Aug at the earliest.

To test with your app with the release before then, hover over to Launch button → Use Release Candidate → Launch.



Fri 5 Aug 2022

Engine Version 1.55.3 has been promoted to ‘Current’ in the Editor :tada:

Thu 4 Aug 2022

Due to issues with the release of Engine 1.55, we have rolled back to 1.54 in the Editor while we investigate

Engine Version 1.55 has been promoted to ‘Current’ in the Editor :tada:

Wed 3 Aug 2022

Promotion to Current in the Editor has been delay till tomorrow morning BST (Thursday 4th Aug)

Tue 2 Aug 2022

We will be disabling clustered lighting as default for 1.55.1 release and looking to make it the default for 1.56 instead.

Known issues/differences

My shadows look different

Are you using Variance Shadow Maps? If so, we have enabled clustered lighting by default now and it doesn’t support variance maps for spot and omni lights (see difference here)

If you want to keep using Variance Shadow Maps on spot and omni lights, you will have to disable clustered lighting on startup.

Note that Variance Shadow Maps is still supported on directional lights.

Full details in the documentation: Clustered Lighting | Learn PlayCanvas

At the moment we don’t have an Editor settings for this but you can use the following code on startup in a script.

this.app.scene.clusteredLightingEnabled = false;

Or add this globally in any preloaded JS file

pc.Application.getApplication().scene.clusteredLightingEnabled = false;;

How do I make changes to the clustered lighting setup?

We haven’t exposed those settings in the Editor yet but you can use the script in the documentation to make these changes: Clustered Lighting | Learn PlayCanvas

My models look to shiny or blown out?

Index of Refraction was not applied correctly in 1.54 and older versions of the engine and this has been fixed so that we can be in line with the glTF standard.

Try setting the Refraction value to 0 and the Index of Refraction to 0.6667 for PBR materials


Enable clustered lighting by default

That’s huge! Such a big release, very well done :clap:


So cool, finally pc.WasmModule is there!!! Thank you so much!


I have tested my current projects with version 1.55 and it throws big failures. Will we be able to count on the current version (1.54.1) for a long time to come? I have many projects in progress and it would be impossible to correct all of them

in the first image it looks ok (1.54.1), the second, the shaders don’t work (1.55)


1.55 will be moved to ‘Current’ version in the Editor on the 3rd Aug at the earliest. When that happens, 1.54 will be move to ‘Previous’ and selectable in the Editor and publish dialog

While you could publish and work with engine 1.54 for a long time, we can’t guarantee the Editor will be compatible with 1.54 forever.

That said, it is unlikely that it will break support for a while but it isn’t something we test for when we release new versions of the Editor and it is recommended that you update the shaders at the next possible chance.

If you are having trouble with updating the shaders, please do let us know on the forums and we will help as best as we can.

I notice a big difference in the shadows.

Version 1.54.1:

Version 1.55.0:

Apart from that, I get this warning:

1 Like

I notice some incorrect shadows on the dead enemy.

Left version 1.54.1 and right version 1.55.0.


We totally understand the disruption that these chunk changes cause and we’re really sorry about that. We haven’t made these changes likely, but believe it’s absolutely necessary to continue making improvements to the engine going forward.

Is there any chance you can give us access to one of your projects (or a cutdown project) so we can see the types of changes you’ve made to chunks? Perhaps we can help to ease the migration.

We had to update a number of our internal projects and generally it wasn’t too painful.


Hi @Albertos,

This is likely due to clustered lighting being enabled by default now. Could you try disabling clustered lighting and see if that’s the cause?


Disabling clustered lighting indeed solve this issue, but now I’m a little curious why it doesn’t work properly in my project.

Perhaps you just need to update shadow configuration on app.scene.lighting? (https://github.com/playcanvas/engine/pull/3763)

There’s a script here on the docs that you can grab to help make those changes easier: Clustered Lighting | Learn PlayCanvas

Adding the code of the new API freezes my browser for a long time at start and doesn’t solve the incorrect shadows. Below my current light setup.

Can you send me a fork of the project please and I will help take a closer look :slight_smile:

Yeah unfortunately I don’t believe clustered lighting supports variance shadow maps for spot or omni yet (see https://github.com/playcanvas/engine/blob/main/src/graphics/program-lib/chunks/lit/frag/clusteredLightShadows.js).

@mvaligursky would be best able to comment on this, but unfortunately he’s away till next week.

1 Like

No problem, I will disable clustered lighting for my project. Thanks for your help!

I’ve got the project fork to look at :slight_smile:

(Will add this to the first post)

Clustered lights do not support variance shadow maps for lights so if your app requires this, you will need to disable clustered lighting via the following code on startup in a script.

this.app.scene.clusteredLightingEnabled = false;

Or add this globally in any preloaded JS file

pc.Application.getApplication().scene.clusteredLightingEnabled = false;;