Light Frustum Size is Dynamic?

For a scene generating shadows from a single light source, the light frustum seems to change it’s size dynamically based on the largest area that contains all used shadow casters for the given light. Is that correct?

So in order to get the light frustum to always cover the entire area of the scene we care about, we would need to place 4 dummy object shadow casters at the 4 corners of the area - is that the best way to achieve this?

Yes, the frustum size is automatically calculated for x/y dimensions because DirectionalLight.autoUpdateExtends = true by default. You can set this value to false and set the orthoLeft / orthoRight / orthoTop / orthoBottom properties manually. Performance will be better this way if you know the dimensions of the frustum.

Note that the size in dimension Z can also be calculated automatically if autoCalcShadowZBounds = true, but this is false by default. The properties to set for the Z dimension are shadowMinZ and shadowMaxZ.

3 Likes

Thank you @Evgeni_Popov !