Q: How to determine the split positions {Ci} in Figure 1?

A: Three split schemes are discussed in our paper: logarithmic split scheme, uniform split scheme and practical split scheme. The last one is adopted by our implementation.

logarithmic split scheme: produces the theoretically even distribution of perspective aliasing errors. Due to the complexity of the scene, it's very hard to directly used in practice. In Figure 2(b), we can see that over-sampling usually occurs for the near points and under-sampling for the further points. In some sense, we can think of this split scheme as "over-optimal". For instance, if the view frustum with n=1 and f=1000 is split into 3 parts (i.e. m=3), the split positions in this split scheme are {C0=n=1, C1=10, C2=100, C3=f=1000}. There's very few objects can be included in [C0, C1]. The shadow map resolution allocated to the first split part is over than our requirement.

uniform split scheme: the aliasing distribution in this split scheme is same to that of standard shadow maps, i.e. under-sampling happens for near points and over-sampling for further points (Figure 2(a)). That's the worst case we definitely don't want to see, because the view-driven resolution requirement obviously needs more dense sampling rates for near points and more loose sampling rates for further rates.  In some sense, we can think of this split scheme as "over-worst".

practical split scheme: to adapt the requirements of practical applications, practical split scheme use the even value of the split positions to produce the "moderate" sampling densities over the whole depth range. Our experiments show this split scheme satisfies the requirements of most practical applications.

According to the analysis in our paper, the split positions {Ci} in general can be determined by the following equation:


Where is 0.5 in our current implementation.

กก

กก

Figure 1: the general case for splitting the view frustum into m parts.

Figure 2: practical split scheme

 
Disclaimer: This is a user-contributed webpage hosted in Department of Computer Science and Engineering, The Chinese University of Hong Kong.
The department is not responsible for the contents nor any loss or damage due to it.