Partitioning Scheme for View Frustrum
- Last UpdatedJan 24, 2023
- 2 minute read
A good way to distribute Shadow maps between the scene pixels is by partitioning the View frustum in cascades.
Different areas in the scene require Shadow maps with different resolution. For example, maps that are near the eye, usually require a higher resolution.
There is no specific rule for how to partition the View frustum because different scene and camera configurations may need a different kind of split scheme.
Example images
-
Left image: When geometry has a high dynamic range in Z, lots of cascades are required.
-
Center image: When the geometry has low dynamic range in Z, there is little benefit from multiple frustums.
-
Right image: Only three partitions are needed when the dynamic range is medium.

Partitions
You must decide the number of partitions and the scheme used to define them.
The csm/params/numSplits parameter sets the number of partitions to be used (maximum is 6).
The csm/params/splitScheme parameter changes the partitioning method.
The partitioning methods are:
-
Uniform
-
Practical
-
Manual
Uniform partitioning scheme
The uniform scheme distributes the partitions evenly.

Practical partitioning scheme
The practical scheme distributes the partitions by interpolating between an Uniform Scheme and a Logarithmic Scheme.
The csm/split_practical/lambda parameter is the interpolator factor:

Manual partitioning scheme
You can manually partition the View frustum by specifying the parameters csm/split_manual/split0 up to csm/split_manual/split5.
Each parameter specifies where the partition ends. It is expressed in % of the View frustum.
