Page MenuHome

Eevee: Lights dont cast shadows if they are part of an collection instance
Closed, ResolvedPublic


System Information
Fedora 29, 970m

Blender Version
Broken: rB0c8aa85069fa
Worked: NA

Short description of error
Lights appear to not cast shadows if they are part of an collection instance.
Lights in the collection itself work though.

Exact steps for others to reproduce the error

  • open attached .blend
  • switch to rendered view (same is true for lookdev with Scene Lights option ON)
  • there is a collection with one light (casting shadows)
  • there is an instance of that collection (light in that instance appears to not cast a shadow)

while instancing of collections of lights might not be a very common practice, it is mostly relevant when linking such a collection from another blend.
( and the Instance Collectionsoption is enabled by default when linking a collection -- if that option is disabled during linking, shadows work... )

Event Timeline

This is a current limitation of Eevee/Depsgraph. I might lift this limitation for Renders but for viewport it's not that simple.

For the record the problem is that Depsgraph generate transient objects for duplis and these transient objects only live for the time of the iteration (they are deleted between redraw) and I cannot keep track of which shadow map to update if I don't have persistent storage per dupli. If I don't keep track, that means every shadow map from a dupli lamp will be updated each redraw and it will lead to major performance drop.

Clément Foucault (fclem) lowered the priority of this task from 90 to Low.Nov 8 2018, 11:17 AM

What is the best performing workaround for this? Linked duplicates instead of collections?

Sebastian Parborg (zeddb) closed this task as Resolved.Jan 17 2020, 3:59 PM
Sebastian Parborg (zeddb) claimed this task.

This has been resolved (at least for me) in the latest blender master version.

This is cool, didnt notice, thx checking @Sebastian Parborg (zeddb)!

Is this same issue? lights in my scene just died when some lights linked into collection instance, not just shadow missing