An Optimization of min/MAX shadow map, a brief introduction of min/MAX shadow map can see this: http://developer.download.nvidia.com/presentations/2007/gdc/SoftShadows.pdf
Min/MAX shadow map basic practices:
- Use the min filter and Max filter to construct two texture files, both of which contain the mipmap file. The construction of the mipmap file also uses the min/MAX filter file.
- In filter shadow, min/max depth is used to quickly remove some pixels that do not require in-depth filtering, so as to achieve optimization.
This article on GPU Pro has been optimized in the following aspects:
- Use two channels of one texture to store min/max values respectively
- In some cases, it is better to use a plane to indicate the shadow depth information. In this case, min/max depth is not saved, and four numbers of plane are saved.
- As to the time when plane is more appropriate, I did not make it clear in this article, but the introduction of this plane makes the name of this article cool a large part: Hybrid min/MAX plane based shadow map
- When building a hybrid SM, the new hardware features are used,
- The gather command can return the four Texel of linear at a time, so that Sm3 is not used. Multiple tex2d commands are used, especially for min/MAX filters of Non-Linear Filters.
- We also mentioned the shared memory of directcompute. the operation on the filter class is an artifact.
- In the final use, it is not the standard min/MAX shadow map that does a lot of transfer, but directly a MIP