1.一种利用局部保守光栅化方法实现硬阴影反走样的方法,其特征在于:构建光源为视点的阴影图,利用牛顿二阶差分测试深度的连续性,将阴影图分为连续区域Ca和不连续区域Da;再次以光源为视点,抽取三维场景表面可见三角面片信息,存储三角形的顶点信息F,对不连续区域Da实施保守光栅化方法,对连续区域Ca保留其离散深度值,构造深度图T2;
根据纹素坐标保持两个深度图的对应关系,其过程可描述为:原始深度图T1,其分辨率为NXN,纹素坐标表示为T1i,j,其中1≤i,j≤N;经过深度划分后,形成深度图T2,使T2保持纹理图T1的分辨率,即T1i,j与T2i,j对应位置具有相同的纹素坐标;最后,进行深度测试判断阴影区域,运用边界恢复算法绘制场景;其具体的方法按以下步骤实现:步骤1、设三维虚拟场景点光源位置为L,生成以光源位置L为视点的分辨率为NXN的阴影图S;对于S中的离散深度值,执行牛顿二阶差分测试,分别按照水平方向和垂直方向以及对角线方向对阴影图的深度值进行检测,当水平方向和垂直方向及对角线方向的二阶牛顿2
差分Δ[d]值分别小于阈值Ed,i和Ed,j时,将S分成深度连续区域Ca和深度不连续区域Da;
设矩阵Ti,j为阴影图中某一纹素,记Ed,i和Ed,j,分别为Ti,j中对应行Ti和列Tj深度值的数学期望,则:其中,n为阴影图大小;设di,j表示纹素Texeli,j的保守化深度,在公式(1)和公式(2)中,di,k和dk,j分别表示应行Ti和列Tj对应纹素的保守化深度值;
步骤2、再次以光源位置L为视点,开启深度测试生成前表面可见图元;
步骤3、识别、抽取可见图元信息,压缩存储三角形顶点坐标,在一个128位的纹理存储单元中,32位RGB分量存储三角形的2D顶点坐标,v0.xy,v1.xy,v2.xy根据顶点坐标计算三角形法向量,用于深度重建,16位用于存储三角形面片深度及三角形ID信息,16位存储三角形斜率,用于计算任意采样点深度值;
步骤4、压缩存储纹素中心深度,法向量及三角形ID;完成抽取场景表面可见三角面片,存储三角形顶点坐标及其中心深度值Dc,形成与S相同尺寸的几何阴影图G;
步骤5、构建S与G的坐标对应关系,由于S与G的大小相同,通过坐标建立对应关系;识别出G中的深度不连续区域范围Da;对Da内的三角形面片开启保守光栅化操作,通过三角形扩展算法,使得对每个有图元经过的像素都执行光栅化操作;对于Ca区域,则直接保持其几何阴影图及纹素中心坐标的离散深度值;
步骤6、深度重建,将视角转换到相机视角,绘制屏幕像素对应的场景采样点,根据采样点在光照空间对应的投影三角形 和 利用公式(4)重建并计算该点在几何阴影图中的深度
步骤7、深度比较,计算光源到屏幕每个像素对应场景点的距离dp,比较dp与阴影图中对应坐标存储的深度值dz,当dp>dz时,采样点处于阴影之中,绘制为暗点,否则为亮点;
步骤8、边界恢复,为了防止细小三角形面皮的缺失,再结合已有的边界恢复方法,完成反走样绘制。