精彩专题

文档资料

南大先腾3D游戏引擎主要技术特点

南大先腾3D游戏引擎主要技术特点

2015-10-31 10:25:39

 
通过阴影贴图技术获得的阴影质量取决于阴影贴图的尺寸以及采用的柔和阴影算法。为渲染性能考虑,阴影贴图的尺寸不会太大,一般在512x512左右,将低尺寸的阴影图渲染到屏幕上会出现严重的锯齿,可通过多重取样和混合来弱化这些锯齿,同时实现柔和阴影的效果。引擎已经实现了几种常用的柔和阴影算法:
1)百分比渐近过滤Percentage Closer Filter
屏幕上光源范围内每个像素都要对阴影图进行多重采样,因此该算法性能与屏幕的分辨率成反比,是一种全面柔化阴影图的算法,通常采样4-9次就可以获得较好的效果。对聚束光源还可附加双线性过滤,由于硬件支持的阴影贴图格式不支持立方贴图,所以对点光源无法附加双线性过滤。
PCF3x3的效果,左边是附加了双线性过滤的聚束光源的投影,右边是无线性过滤的点光源的投影
2)基准随机多重采样混合(Jitter Samples with Estimation Samples
这是一种着重柔化阴影边缘的算法,设定半影区的宽度,通过大量的采样混合获得最佳的效果,通常采样数量超过32次才会有较好的效果,在实时渲染的图形引擎中不太被采用。
 
32次随机采样的效果
3)方差阴影贴图(Variance Shadow Map
由于是否在阴影中的判断是在最终渲染时对阴影贴图取样对比后得出的,结果就是01,因此事先对阴影图进行的材质过滤和模糊处理都是无效的,只会造成最终输出的错误,而VSM的诞生为对阴影贴图的预处理提供了数理支持。通过保存深度值和深度值的平方两套数据,运用一种方差还原算法,可以通过一次采样获得一个阴影柔化系数,从而避免了屏幕级的多重采样,只需在生成时对阴影图进行一定的过滤和模糊处理即可。由于屏幕的分辨率通常远远大于阴影贴图的尺寸,因此对小尺寸的阴影贴图进行材质过滤的开销通常比屏幕级的多重采样的开销小得多。这种技术能够强力的消除阴影贴图的锯齿,而且渲染时只需一次采样,所以特别适合用来实现静态光源和静态物体的柔和阴影,如室外场景的地形、建筑阴影等。在动态光源和物体较多的场合,特别是点光源多的场合(一个点光源有6副阴影图),频繁的重新生成和预处理阴影贴图可能会造成巨大的开销,所以引擎支持为每一个光源指定其阴影的算法,可由开发人员酌情为特定的场合进行特定的优化。
VSM的效果。聚束光源和点光源投影都很柔和,没有锯齿。
4)平行分割阴影贴图(Parallel Split Shadow Map
这是一种专门为室外场景大面积的太阳光照投影设计的方案,由于室外场景面积较大,只用一张尺寸有限的阴影贴图覆盖所有景物会丢失大量的细节,使得阴影完全失真。该算法基本思路是通过可视区域范围切割,缩小阴影图覆盖的面积,从而实现近处较为清晰,远处较为模糊的阴影贴图,是一种平衡考虑渲染性能和阴影质量的框架性方案,结合上述几种柔化算法可以获得很好的效果。即将加入引擎中。
 

[上一页][1] [2] [3] [4] [5] [下一页]