using setPipeline('Light2D') on my sprites / tilemaps make them disappear

Version

  • Phaser Version: 3.55.2
  • Operating system: macOS
  • Browser: Tried with Chrome & Brave

Description

When using setPipeline('Light2D') on any of my game objects or tilemap layers, they simply stop getting rendered. My game is set to WEBGL rendering mode.

Example Test Code

using config:


 const config: Phaser.Types.Core.GameConfig = {
    type: Phaser.WEBGL, 
    ...

loading my tileset:

    this.load.image({
          key: 'wasteland_tiles',
          url: 'assets/img/tiles/wasteland_tiles.png',
          normalMap: 'assets/img/tiles/wasteland_tiles_n.png'
    })

simply setting the following:

    map.layers.forEach(layer => {
      layer.tilemapLayer.setPipeline('Light2D') // enable lights
    })

causes my map not to be rendered

Additional Information

In this image you can see that some scene elements are rendered but most are not. it’s not clear to me why the trees/rocks are being rendered while the rest of the tilemap layers are not (even though i set Light2D on all map layers).