对min/max shadow map的一个优化,min/max shadow map的简单介绍可以看这个:http://developer.download.nvidia.com/presentations/2007/gdc/SoftShadows.pdf min/max shadow map基本做法: 使用min filter和max filter分别构建两
对min/max shadow map的一个优化,min/max shadow map的简单介绍可以看这个:http://developer.download.nvidia.com/presentations/2007/gdc/SoftShadows.pdf
min/max shadow map基本做法:
- 使用min filter和max filter分别构建两个texture,都是带有mipmap的,mipmap构建也是使用min/max filter
- 在filter shadow的时候,通过min/max depth来快速剔除一些不需要深入filtering的像素,进而达到优化的目的
- 使用一个贴图的两个通道来分别存min/max值
- 在一定情况想,使用一个plane来表示shadow depth信息可以更好的提出,这种情况下就不存min/max depth,转而存表达plane的四个数
- 至于什么时候plane比较合适文中没有说的很清楚,但是这个plane的引入就让这个文章的名字cool了一大截:hybrid min/max plane based shadow map
- 在构建hybrid sm的时候,使用了新的硬件的特性,
- gather指令,可以一次把linear的四个texel返回,这样就不用sm3这样,使用多个tex2D指令,尤其是针对非linear filter的min/max filter
- 也提到DirectCompute的shared memory,对filter类的操作是神器
- 在最后使用的时候,不是标准min/max shadow map的那种mipmap做很多转移,而是直接就一个mip