延迟渲染的边缘检测(Edge-Detection)抗锯齿算法

2005年Shishkovtsov在 GPU Gems 2中具体阐述了延迟渲染算法,并提出了一种适用于延迟渲染的边缘检测(Edge-Detection)抗锯齿算法。延迟渲染为了计算场景的光照着色信息,将场景的深度信息和法线信息保存在二维数字图像中,而Edge-Detection则利用场景的深度信息和法线信息提取出不连续的边缘像素。首先,Edge-Detection根据场景的深度和法线信息生成每个像素与相邻像素之间空间位置变化的梯度信息;其次,判定该梯度信息是否超过预设定的阈值,如果超出阈值则标记该像素为空间上不连续的边缘像素;最后,对提取出的不连续的边缘像素与周围相邻八个像素进行简单的加权平均,从而求得该像素的颜色信息。

场景中的各个物体在三维空间无相交时,用深度信息就可检测出不连续的边缘像素,但当物体在三维空间相交时生成的二维图像在空间上是连续的,需要通过法线信息再次进行边缘检测。由于Edge-Detection算法只对像素进行简单的加权平均,因此反走样效果不如MSAA,并且当图像分辨率改变时,预设定的梯度阈值则需重新设定,灵活性差。Edge-Detection算法的优点是证明了用GPU的可编程性进行反走样是可行的。

针对Edge-Detection算法中阈值选择灵活性差的问题,Koonce对此进行改进和优化,使得阈值独立于图像分辨率,增加了Edge-Detection算法的灵活性和实用性。

 

你可能感兴趣的:(算法,GPU)