Clustered Lighting Open Beta – Have hundreds of dynamic lights in your scene!

Our team has been working on a new lighting system for a little while now and it’s reached the stage where we want to share it to the community!

Clustered lighting demo from Solar Games

Pool Demo from Solar Games using Clustered Lighting

The new system uses the clustered lighting rendering algorithm and is a huge step forward compared to our current lighting approach. New benefits include:

  • Increasing the maximum omni and spot light count to 254
  • Improved app performance with more omni and spot lights
  • Disabling/Enabling omni and spot lights is now super fast. No more expensive shader recompilation

Some of our early adaptors have already started using it to do things such as adding dynamic lights to fireflies at night, gunfire muzzle flashes and using it as an easy way to highlight objects in the world.

We’ve now reached the milestone where the feature is stable and invite you all to give it a try! We can’t wait to see how you will use it within your games and applications.

Full documentation is available with all the features and explanation of the options. As the Editor integration is still being developed, we have created an example project which is linked in the documentation.

Within that project, is a script that makes it super simple to enable clustered lighting that can be copied and pasted to your own projects.

We will be looking to make clustered lighting the default system in the mid term (with option to use the current system) as there is little to any disadvantage from what we have seen so far.

Over the longer term, our aim is to remove the current lighting system from the engine (reducing the file size) and only be using clustered lighting.

As always, we value your feedback and want to hear your thoughts with using the clustered lighting in the forum thread here.

Useful links

Upcoming Code Editor upgrade to Monaco!

We have almost completed work on moving the Code Editor from Code Mirror to Monaco, the same editor that powers the ever popular, Visual Studio Code.

Look familiar? 👀

With this upgrade, it will give developers:

  • Much better performance, especially with large text files
  • More editing functionality through the command palette
  • Mouse driven features such as Cmd/Ctrl + Click to jump to definition, hover for documentation and a context menu!

There will be some small differences which will include:

  • Syntax color changes as we’ve opted to use Monaco’s default theme, which should be comfortably familiar to VS Code users
  • Some hotkeys/shortcuts will be different (e.g moving a line up/down)

When can we use it?

We are still working through a few issues but planning to release the Editor as early as next week. Keep your eyes peeled!

Editor API beta release

Over the last few months, we have been working on an Editor API that allows users to automate tedious tasks and extend the base functionality.

We are excited to announce the beta release of the API today and would love to see how the PlayCanvas community will use it to power up their workflows!

Creating and modifying Entities and Assets are all accessible via the API. Add/remove components, scripts, tags, assets, create and instantiate templates and so much more.

Here’s a great example where a context menu can be added to select Entity parents in the hierarchy to speed up scene editing:

From: https://twitter.com/yaustar/status/1446504233537314816

Or add random Entities to the scene:

More examples and links to the documentation can be found in the User Manual.

Join our Open Source Effort

The PlayCanvas team is a big advocate for open source. This is why we have taken the step to open source the Editor API on GitHub. We want to build the best possible API for you so we need your help:

  • Log issues and features requests (or leave feedback on those submitted by others).
  • Submit pull requests for fixes and API changes.
  • Watch the repo or individual issues to get progress updates in real time.

Get experimenting and show us your work with the Editor API in the forums!