当前位置: 首页 > 专利查询>浙江大学专利>正文

生成具有边界像素超采样效果的阴影的方法技术

技术编号:4099881 阅读:230 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种生成具有边界像素超采样效果的阴影的方法:步骤为(1)先构造阴影掩码表;(2)再如下利用所述阴影掩码表生成阴影:1)在光源平面上生成场景中物体的深度图纹理;2)检测所述场景中物体的轮廓边,在光源平面上生成场景中物体的轮廓图纹理;3)在视点平面上生成场景中物体的位置图纹理和法向图纹理;4)对视点平面上的每一个像素用一个小平面逼近,后将各小平面投影到所述光源平面上;5)使用所述轮廓图纹理将小平面分类为轮廓上的小平面和非轮廓上的小平面两种;6)对所述非轮廓上和轮廓上的小平面计算其对应像素的阴影颜色值。使用本发明专利技术方法可以不需要进行超采样就得到具有子像素级别的反走样效果的阴影。

【技术实现步骤摘要】

本专利技术涉及一种阴影渲染方法,尤其涉及一种计算具有边界像素超采样效果的的 阴影方法。
技术介绍
当光在传播到物体前被别的物体所遮挡时,就会形成一个阴影区域。阴影不仅丰 富了场景的表现效果,而且能使渲染生成的图像具有更多的信息。这些信息包括光源位置、 遮挡物的轮廓和接收物的形状等。因此,在绘制系统中,阴影是场景的一个重要组成部分。阴影图(shadow mapping)算法(可参考[Wi 178] Lance Williams, Casting curved shadows on curved surfaces”)是最常用的阴影算法之一。通过在光源平面下生 成一个深度图,并将视点平面上的所有像素投影到光源平面,该方法只需要进行一次深度 比较就可以判断出像素是否在阴影中。因为简单高效,阴影图算法被广泛引用在有实时阴 影绘制需求的系统,特别是游戏中。但是,阴影图算法也有若干缺陷。其最大的缺陷之一是由于光源平面深度图的分 辨率有限,使得其不能精确描述场景深度信息,进而在阴影边界上形成纹元级的走样。另一 方面,受视点平面的屏幕分辨率限制,每个像素的阴影值非0即1,会有像素级别上的走样 问题。现有的技术集中于解决纹元级的走样的问题,这个问题主要是由于光源平面深度 图的纹元和视点平面上像素的密度在屏幕的各局部区域往往不匹配造成的。其本质原因是 因为这两者是场景在不同的视点下光栅化造成的。Erik Sintorn等人(可参考[SEA08] Erik Sintorn, Elmar Eisemann, Ulf Assarsson, Sample based visibility for soft shadows using alias-free shadow maps”)通过将视点平面上的像素投影到光源平面上, 并在此空间中和遮挡物面片进行阴影测试避开了光源平面上的光栅化操作,进而完全避免 了纹元级别的走样问题。但是在另一方面,目前尚没有专门针像素级别走样问题的技术。一种直接的方法 是在视点平面上进行超采,即绘制一张高分辨率的图再将其减采到标准分辨率。这种方法 大幅度增加了计算量。特别是在高采样率,如64倍或128倍超采下,效率非常低,
技术实现思路
本专利技术针对目前相关技术的空白,提供了一种生成具有边界像素超采样效果的阴 影的方法。为了实现上述目的,本专利技术采用的技术方案如下该包括如下步骤(1)构造阴影掩码表;(2)利用所述阴影掩码表生成阴影。进一步地,本专利技术在所述步骤(1)中,按照如下步骤构造阴影掩码表1)在一个像素内部分布超采样点;2)采用如式(1)所示的公式表示所述像素所在平面上与像素相交的所有直线,并 将所述直线的斜率与截距用离散的数值表示y = kx+b(1)式(1)中,k为斜率,b为截距;3)以所述直线的斜率与截距为索引做阴影掩码表,记录每条直线的半平面对所述 像素内所有超采样点的遮挡情况,并将所述遮挡情况表示为遮挡掩码,每条直线的半平面 对所述像素内所有超采样点的遮挡掩码用一组数表示,该组数中的每一个数对应一个超采 样点的遮挡情况。进一步地,本专利技术在所述步骤(2)中,按如下步骤利用所述阴影掩码表生成阴影1)在光源平面上生成场景中物体的深度图纹理;2)检测所述场景中物体的轮廓边,将所述轮廓边投影到光源平面上生成场景中物 体的轮廓图纹理,所述轮廓图纹理的每个纹元记录了是否有投影到光源平面上的场景中物 体的轮廓边经过该纹元;3)在视点平面上生成场景中物体的位置图纹理和法向图纹理;4)根据生成的视点平面上的位置图纹理和法向图纹理,对视点平面上的每一个像 素用一个小平面逼近,后将各小平面投影到所述光源平面上;5)使用所述轮廓图纹理将小平面分类为轮廓上的小平面和非轮廓上的小平面两 种;6)对所述非轮廓上的小平面,使用阴影图算法计算其对应像素的阴影颜色值;对所述轮廓上的小平面,在所述轮廓图纹理上找到遮挡各小平面的场景中物体面 片,将这些物体面片遮挡小面片的遮挡区域投影到视点平面并从阴影掩码表中查找对应的 遮挡掩码,将遮挡掩码累计到该像素的阴影掩码中;根据阴影掩码计算像素的阴影颜色值。进一步地,本专利技术在所述步骤2)中,所述轮廓图纹理的每个纹元记录是否有投影 到光源平面上的场景中物体的轮廓边经过该纹元的方法为对于轮廓图纹理上坐标为(i,j)的纹元,如果场景中物体没有任何一条轮廓边经 过该纹元,那么该纹元在轮廓图纹理中的值为空;如果场景中物体存在至少一条轮廓边经 过坐标为(i,j)的纹元,那么在坐标为(i,j)的轮廓图纹理中记录所有投影到该像素的场 景中物体面片。进一步地,本专利技术在所述步骤4)中,用于逼近视点平面上的坐标为(i,j)的像素 的小平面方程为Nijj- (fJjj-Pijj) = 0(2)式(2)中,Niij为所述视点平面上场景中物体的法向图纹理中坐标为(i,j)的值, Pi,j为所述视点平面上场景中物体的位置图纹理中坐标为(i,j)的值,fi,j为表示小平面的 空间点。进一步地,本专利技术在所述步骤6)中,“将这些物体面片遮挡小面片的遮挡区域投影 到视点平面并从阴影掩码表中查找对应的遮挡掩码”的方法为1)记录所有组成所述遮挡区域轮廓的直线;2)在所述小平面上,记录遮挡区域所在的直线的半平面;3)将所有记录下的遮挡区域所在的直线的半平面投影到视点平面;4)计算组成所述遮挡区域轮廓的直线的投影后直线的斜率与截距;5)根据所述投影后直线的斜率与截距及投影后的半平面由所述阴影掩码表中查 找每条边所在直线对超采样点遮挡情况。进一步地,本专利技术在所述步骤6)中,按照如下方式将遮挡掩码累计到该像素的阴 影掩码中a)若所述像素的阴影掩码对超采样点标记为被遮挡,则不将遮挡掩码对该超采样 点的标记计入阴影掩码中;b)若所述像素的阴影掩码对超采样点标记为未遮挡,则将遮挡掩码对该超采样点 的标记计入阴影掩码中。进一步地,本专利技术在所述步骤6)中,按以下步骤根据阴影掩码计算像素的阴影颜 色值a)计算阴影掩码中被遮挡超采样点个数;b)将被遮挡超采样点个数除以超采样点总数得到阴影颜色值。与现有技术相比,本专利技术的有益效果是本专利技术可以不用将每个超采样点都投影 到光源平面进行阴影测试,只需要在视点平面生成标准分辨率的位置图纹理与法向图纹 理,通过小平面近似使得像素内每一个超采样点的阴影值可以被同时计算,因此可以快速 生成具有超采样反走样效果的阴影。同时,本专利技术还利用走样问题只发生在阴影边界上的 特点,通过提取场景中的轮廓边,将像素超采样阴影计算限制在阴影边界上,而对于其他部 分则使用传统的阴影图方法,进而减少了总体的计算开销。附图说明图1是本专利技术方法的流程图;图2是小平面构造的示意图;图3是遮挡物面片的半平面表达及投影的示意图。具体实施例方式下面结合附图和对本专利技术作进一步说明本专利技术方法包括阴影掩码预处理与阴影实时绘制处理两部分,以下举例说明本发 明方法的步骤A.阴影掩码预处理,即构造阴影掩码表步骤Al)在一个像素内部分布32个超采样点;步骤A2)采用如式(1)所示的公式表示所述像素所在平面上与像素相交的所有直 线,并将所述直线的斜率与截距用离散的数值表示y = kx+b(1)式(1)中,k为斜率,b为截距。在本实施例中,将像素所在平面上与像素相交的所本文档来自技高网
...

【技术保护点】
一种生成具有边界像素超采样效果的阴影的方法,其特征在于包括如下步骤:(1)构造阴影掩码表;(2)利用所述阴影掩码表生成阴影。

【技术特征摘要】
一种生成具有边界像素超采样效果的阴影的方法,其特征在于包括如下步骤(1)构造阴影掩码表;(2)利用所述阴影掩码表生成阴影。2.根据权利要求1所述的生成具有边界像素超采样效果的阴影的方法,其特征在于 在在所述步骤(1)中,按照如下步骤构造阴影掩码表1)在一个像素内部分布超采样点;2)采用如式(1)所示的公式表示所述像素所在平面上与像素相交的所有直线,并将所 述直线的斜率与截距用离散的数值表示y = kx+b(1)式(1)中,k为斜率,b为截距;3)以所述直线的斜率与截距为索引做阴影掩码表,记录每条直线的半平面对所述像素 内所有超采样点的遮挡情况,并将所述遮挡情况表示为遮挡掩码,每条直线的半平面对所 述像素内所有超采样点的遮挡掩码用一组数表示,该组数中的每一个数对应一个超采样点 的遮挡情况。3.根据权利要求1所述的生成具有边界像素超采样效果的阴影的方法,其特征在于 在在所述步骤(2)中,按如下步骤利用所述阴影掩码表生成阴影1)在光源平面上生成场景中物体的深度图纹理;2)检测所述场景中物体的轮廓边,将所述轮廓边投影到光源平面上生成场景中物体的 轮廓图纹理,所述轮廓图纹理的每个纹元记录了是否有投影到光源平面上的场景中物体的 轮廓边经过该纹元;3)在视点平面上生成场景中物体的位置图纹理和法向图纹理;4)根据生成的视点平面上的位置图纹理和法向图纹理,对视点平面上的每一个像素用 一个小平面逼近,后将各小平面投影到所述光源平面上;5)使用所述轮廓图纹理将小平面分类为轮廓上的小平面和非轮廓上的小平面两种;6)对所述非轮廓上的小平面,使用阴影图算法计算其对应像素的阴影颜色值;对所述轮廓上的小平面,在所述轮廓图纹理上找到遮挡各小平面的场景中物体面片, 将这些物体面片遮挡小面片的遮挡区域投影到视点平面并从阴影掩码表中查找对应的遮 挡掩码,将遮挡掩码累计到该像素的阴影掩码中;根据阴影掩码计算像素的阴影颜色值。4.根据权利要求3所述的生成具有边界像素超采样效果的阴影的方法,其特征在于在 所述步骤2)中,所述轮廓图纹理的每个纹元记录是否有投影到光源平面上的场景中物体 的...

【专利技术属性】
技术研发人员:王锐华炜鲍虎军
申请(专利权)人:浙江大学
类型:发明
国别省市:86[中国|杭州]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1