[Released] GPU Instancer Pro

I have two relatively easy-to-implement recommendations:

1. Use Spot Lights Instead of Point Lights (When Possible)
Spot lights are directional and only require a single shadow map. In contrast, point lights render shadows in all directions using a cubemap, which requires 6 shadow caster passes per light. Replacing point lights with spot lights can significantly reduce shadow rendering cost.

2. Separate Main and Shadow Passes Using Layers
Instead of using layers to separate close vs. far objects, use them to decouple shadow casting from main rendering. Here’s how:

  • Duplicate your LOD GameObject.
  • For one copy, set Cast Shadows = Off and assign it to a layer like "TreeMain".
  • For the other, set Cast Shadows = Shadows Only and assign it to a layer like "TreeShadow".

Your prefab hierarchy might look like this:

TreeWithLOD
├── LOD0_NoShadow (Layer: TreeMain)
├── LOD0_ShadowsOnly (Layer: TreeShadow)
├── LOD1_NoShadow (Layer: TreeMain)
├── LOD1_ShadowsOnly (Layer: TreeShadow)

Then, on your lights, use the Culling Mask to control which layers they affect. For example, you can configure a secondary light to illuminate the tree without casting additional shadows, reducing redundant shadow passes from multiple light sources.

3 Likes