虚拟家装室内场景设计中的阴影渲染方法

文档序号:6544651阅读:220来源:国知局
虚拟家装室内场景设计中的阴影渲染方法
【专利摘要】本发明公开了一种虚拟家装室内场景设计中的阴影渲染方法。包括阴影映射图生成步骤,半影估计步骤,基于泊松碟采样的百分比渐近滤波步骤,最后通过加入漫反射环境光,生成具有真实感的虚拟家装室内场景阴影效果图。本发明方法能够高效且能改善阴影映射图锯齿走样的问题。
【专利说明】虚拟家装室内场景设计中的阴影渲染方法
【技术领域】
[0001]本发明属于虚拟现实领域,涉及一种虚拟环境中的实时阴影效果渲染方法。
【背景技术】
[0002]虚拟现实是人工构造的存在于计算机内部的环境,是一种高级的人机界面。三维虚拟家装室内的场景效果图将虚拟现实技术运用到了家装领域。通过对家装室内场景进行照片级的真实感渲染使得用户产生置身于相应的真实环境中的感觉。顾客也可运用此技术体会装修后的效果,给人们的购房和装修带来了很大的便利,具有较大的市场前景。
[0003]阴影作为影响三维场景真实感的重要因素,可以为场景提供空间的几何信息,有助于理解物体间的相互位置关系和大小,利用投射阴影可以决定物体在空间中的位置,反映空间物体的细微信息和位置关系。三维图形中阴影不仅能增加画面的层次感和变化感,突出模型之间的对比度,还能使整个场景色调丰富,有效地表现场景中各个物体的轮廓。在家装室内虚拟场景中加入效果柔和的阴影无疑是大有裨益的。
[0004]从物理角度来分析,由于光线在传播路径上被不透明物体阻挡从而产生阴影。从计算机图形学角度来看,若从场景中的一点P看不到光源,那么点P就处在阴影中。这是因为光源发出的光不能到达P点,也就是说阴影是眼睛可以看到而光源看不到的区域。因而它对于判断物体的空间关系、形状特征(如:遮挡物,接受体的几何特征)以及其与光源的距离等信息而言有着不可替代的作用。
[0005]按照光源模型的不同,又能产生软阴影(soft shadow)与硬阴影(hard shadow)。当仅存在一个点光源的照射下时场景中的点只有在阴影中或在阴影之外两种状态,这种简单的情况就是硬阴影。这种阴影只有在一个点光源的照射下才可能存在,然而在现实中却并不多见,这使得硬阴影降低了图像的真实感。如果光源是比较大的发光体,当不透明体遮住光源时所产生的影子就有两部分,完全暗的部分叫本影(umbra),半明半暗的部分叫半影(penumbra) 0本影与半影构成了整个阴影,这种阴影真实感强,被称为软阴影。真实的物理世界中并不存在理想的点光源,物体与物体之间存在着无穷无尽的反射。因此,在虚拟环境中运用软阴影将比硬阴影得到更好的渲染效果。
[0006]众所周知,有光源和遮挡物,就可能产生阴影。在计算机图形学中,光照模型可以分为全局光照模型和局部光照模型。局部光照模型只计算直接光照下几何物体表面每个像素点上的光亮度和色彩;而全局光照模型不仅具备局部光照模型的功能,还可以完整的计算出光反射所引起的间接照明作用。基于全局的光照模型的阴影方法大多是基于球面调谐函数以及基于小波变换的方法,构思巧妙,但是计算复杂,需要对场景进行预计算。最近研究者提出了一种基于预计算辐射转换的技术,从而产生高质量的阴影。近年来,随着人们对照片级真实感场景的追求,提出了运用光测图对环境进行照明,使得场景具有镜面反射、折射、漫反射等各种复杂光照的特性。
[0007]早期的局部光照模型方法主要是针对几何光照,也就是局部光照提出来的,分别是:Crow于1977年提出的阴影体(Shadow Volumes)方法和Williams于1978年提出的阴影映射图(Shadow Maps)方法。阴影体方法基于物体的几何形状,它不能处理没有多边形结构的物体的阴影计算;同时由于绘制阴影体需要很高的填充率,因此该方法不适合复杂动态场景的实时阴影绘制。阴影映射图方法基于图像空间采样技术,对场景中的物体没有特殊的要求,并且方法的执行效率与物体的几何复杂度无关,所以该方法非常适用于复杂三维室内场景的实时阴影绘制。但是阴影映射图方法存在走样问题。当在光栅图形显示器上绘制非水平且非垂直的直线或多边形边界时,或多或少会呈现锯齿状或台阶状外观。这是因为直线或多边形是连续的,而光栅则是由离散的点组成,在光栅显示设备上表现直线或多边形必须在离散位置采样。由于采样不充分导致重建后的信息失真,这就是走样问题。针对阴影映射图方法的走样问题,Reeves提出了百分比渐进滤波方法(Percentage-CloserFiltering),该方法主要对深度距离值比较的结果进行滤波,取得了一定的成果,但是该方法需要很多次采样才能降低噪声,带来了很大的计算量。
[0008]本发明以虚拟家装软件为应用平台,通过增加室内场景的阴影来提高软件渲染的真实感。基于环境的映射技术是近年来比较热门的全局光照模型,它通过运用包含场景材质光照信息的图片对场景进行照明,真实感强烈。局部光照虽然真实感逊于全局光照,但是计算量少,实时性好。考虑到虚拟家装设计软件的实时性要求,本发明设计了一种虚拟家装室内场景阴影渲染方法。
[0009]虚拟家装室内场景设计中的阴影渲染主要包括生成阴影映射图,根据距离平均值以及光源大小计算半影宽度。接下来进行基于泊松碟采样进行阴影映射图更新。将从摄像头位置视角渲染的家装室内场景效果图中的像素值,与更新的阴影映射图中对应的纹理映射值相乘,生成最后的场景效果图。
[0010]本发明通过以上步骤,完成虚拟家装室内场景设计中的阴影渲染。实时生成具有真实感的虚拟家装室内场景阴影效果图。

【发明内容】

[0011]技术问题:本发明提供一种真实感强烈,生成了场景中物体的软阴影而且速度快,可以满足虚拟家装实时渲染要求的虚拟家装室内场景设计中的阴影渲染方法。
[0012]技术方案:本发明的虚拟家装室内场景设计中的阴影渲染方法,包括以下步骤:
[0013](I)确定家装室内场景在摄像头位置视角下的所有可见像素的纹理映射值,从而构建生成阴影映射图,其中确定每个可见像素的纹理映射值的具体流程为:
[0014]首先以光源为视点渲染场景,得到场景中每个像素的深度距离并存入纹理缓存中;
[0015]然后从摄像头位置出发,计算每个可见像素与光源的距离值,并将此距离值与深度纹理中存储的对应可见像素的深度距离进行比较,如距离值大于对应的深度距离,则该可见像素在阴影区域,纹理映射值为0,否则在非阴影区域,纹理映射值为I ;
[0016](2)搜寻纹理缓存,按照如下方法确定每个像素的半影测量宽度:从当前像素点的邻域中找到所有比当前像素更靠近光源的像素点,并求取它们的深度距离平均值dB1(xto,然后根据所述深度距离平均值dB1(K;kOT和光源的宽度,确定当前像素的阻隔区域,进而估算出半影测量宽度;
[0017](3)首先对所述阴影映射图进行泊松碟形采样,然后对采样得到的每个像素点按照如下的百分比渐进滤波方法进行滤波处理,最终得到更新的阴影映射图:
[0018]将与像素点半影测量宽度最接近的奇数值作为百分比渐进滤波的正方形模板的边长,将模板中每个元素与模板中心距离的倒数设定为与该元素正相关的权值,然后进行百分比渐进滤波,更新像素点的纹理映射值;
[0019](4)将从摄像头位置视角渲染的家装室内场景效果图中的像素值,与更新的阴影映射图中对应的纹理映射值相乘,生成最后的场景效果图。
[0020]本发明方法优选方案的步骤(2)中,根据下式估算半影测量宽度:
[0021]Wpenumbra — dBlocker.WLight,
[0022]其中,Wpenumbra为半影测量宽度,dBlocker值为当前像素点的邻域中所有比当前像素更靠近光源的像素点的深度距离平均值,Wught为光源的宽度。
[0023]本发明方法优选方案的步骤(2)中,当前像素点的邻域的尺寸设定为3X3。
[0024]本发明方法优选方案的步骤(3)中的泊松碟形采样中,将泊松碟形尺寸设定为5。
[0025]有益效果:本发明与现有技术相比,具有以下优点:
[0026]本发明首先采用阴影映射图方法进行虚拟家装室内场景的阴影渲染,这种方法对场景中的几何信息没有任何要求,只使用了投影纹理映射和简单的深度距离比较,相较于全局光照环境下的室内场景的阴影渲染方法需要球面调和函数对场景中的物体进行逼近,预计算辐射度,该方法在实际应用中无需进行预计算处理,不会随着场景中三维物体复杂度增加而增加,执行效率高。
[0027]其次通过半影计算生成得到每个像素的百分比渐进滤波范围并将与像素点半影测量宽度最接近的奇数值作为百分比渐进滤波的正方形模板的边长。结合泊松碟采样方法保证了各个采样点之间不会离得太近,使采样点分布更加均匀,同时仍然保持随机性,能够克服单纯随机采样常常会造成采样点过于聚集,或者过于分散的情况。
[0028]总体而言,本发明方法结合阴影映射图与百分比渐进滤波技术实现虚拟室内家装的实时阴影效果渲染,不仅能够生成具有真实感的家装室内设计中的阴影渲染,而且不会随着场景中三维物体复杂度增加而增加,无需预处理能够满足实时应用需求。该技术对计算机虚拟现实在虚拟家装领域的应用具有重要意义。
【专利附图】

【附图说明】
[0029]图1虚拟家装室内场景设计中的阴影渲染方法的流程图。
[0030]图2没有处于阴影中的深度距离比较示意图。
[0031]图3处于阴影中的深度距离比较示意图。
[0032]图4百分比渐近滤波示意图。
【具体实施方式】
[0033]下面结合附图和【具体实施方式】对本发明作进一步详细说明。
[0034]本发明的虚拟家装室内场景设计中的阴影渲染方法,首先确定家装室内场景在摄像头位置视角下的所有可见像素的深度值并存在纹理缓存中,在此基础上构建生成阴影映射图,然后搜寻纹理缓存,从当前像素点的邻域中找到所有比当前像素更靠近光源的像素点,并求取它们的深度距离平均值,然后根据所述深度距离平均值和光源的尺寸确定当前像素的阻隔区域,进而估算出半影测量宽度,接下来对所述阴影映射图进行泊松碟形采样,对采样得到的每个像素点进行百分比渐进滤波处理,得到更新的阴影映射图,最后将从摄像头位置视角渲染的家装室内场景效果图的像素值与更新的阴影映射图中对应的纹理映射值相乘,生成场景效果图。具体处理
[0035]本发明方法的具体流程步骤如下:
[0036](I)确定家装室内场景在摄像头位置视角下的所有可见像素的纹理映射值,从而构建生成阴影映射图:
[0037]阴影是相对于光源不可见而观察者却可见的区域,由于场景中的物体和遮挡体之间存在遮挡关系,当遮挡体离光源的距离比物体离光源的距离要近的时候,物体就处在阴影之中了。因此,阴影映射图方法的主要步骤就是确定场景中的物体,遮挡体及光源的远近关系。
[0038]在光源坐标系下,以光源为视点对整个场景进行渲染,将整个场景渲染到深度缓存区,得到一幅所有物体相对于光源的深度距离图,即阴影贴图。阴影贴图中记录了沿光源入射方向,离光源最近的片元的深度距离值。由于这个步骤只对像素的深度信息感兴趣,因此不需要做任何的光照计算。
[0039]在世界坐标系下,从摄像头位置出发,对整个场景进行渲染,对每个摄像头可见的像素,计算它到光源的距离。将这个值和深度距离图中相应的值进行比较,以确定这个象素点是否处在阴影当中,根据比较的结果,对阴影之中的像素和阴影之外的像素分别进行不同的光照计算,可以获得阴影效果。
[0040]为了判断场景中的某一像素是否处于阴影中,必须进行深度距离值比较。深度距离值比较的原理:首先将该像素的坐标(x,y,z)从观察空间转换到光源空间坐标(X’,y’,z’),然后比较z’值与存储在阴影深度缓冲区内(X’,y’ )位置上的深度距离值。如果像素的深度距离值等于阴影缓冲区中的值,说明该点与光源之间没有任何遮挡体,该点将被照亮,如图2所示。如果像素的深度距离值大于阴影纹理中所存储的深度距离值,那就意味着从光源处看,有物体遮挡了该点,该点将处于阴影中,如图3所示。
[0041]实现阴影映射图需要图形硬件提供纹理缓存和深度缓存,分为如下三步:
[0042]首先以光源为视点渲染场景,得到场景中每个像素的深度距离;
[0043]然后创建一个纹理作为深度距离表,并将获得的深度距离写入这个纹理中,作为深度距离值;
[0044]最后从视点位置,计算每个像素的深度距离,并将此深度距离与深度纹理中相对应的深度距离值进行比较,如距离值大于对应的深度距离,则该可见像素在阴影区域,否则在非阴影区域;
[0045]从阴影映射图的实现步骤可知,方法的关键是深度距离测试与阴影映射图的生成。深度距离测试存在阴影映射图的访问问题。阴影映射图的访问需要将视域空间下的坐标转换到光源空间下的坐标。通常情况下,视点坐标由世界坐标系下的物体坐标经过模型变换、视点的视图变换而得,如公式(I)所示。同样,光源空间下的坐标也可以由视点坐标反变换到世界坐标之后,再经过光源空间下的视点变换、投影变换而得到。另外,由于阴影映射图是一个纹理,它的纹理坐标被限制在[0,1]之间,因此由视点变换而得的光源坐标还应该乘上一个放缩矩阵。变换过程如公式(2)所示。通过矩阵变换可由物体空间坐标计算出该坐标所对应的纹理坐标。
【权利要求】
1.一种虚拟家装室内场景设计中的阴影渲染方法,其特征在于,该方法包括以下步骤: (1)确定家装室内场景在摄像头位置视角下的所有可见像素的纹理映射值,从而构建生成阴影映射图,其中确定每个可见像素的纹理映射值的具体流程为: 首先以光源为视点渲染场景,得到场景中每个像素的深度距离并存入纹理缓存中; 然后从摄像头位置出发,计算每个可见像素与光源的距离值,并将此距离值与深度纹理中存储的对应可见像素的深度距离进行比较,如距离值大于对应的深度距离,则该可见像素在阴影区域,纹理映射值为O,否则在非阴影区域,纹理映射值为I ; (2)搜寻纹理缓存,按照如下方法确定每个像素的半影测量宽度:从当前像素点的邻域中找到所有比当前像素更靠近光源的像素点,并求取它们的深度距离平均值dB1(xto,然后根据所述深度距离平均值dB1(Kto和光源的宽度,确定当前像素的阻隔区域,进而估算出半影测量宽度; (3)首先对所述阴影映射图进行泊松碟形采样,然后对采样得到的每个像素点按照如下的百分比渐进滤波方法进行滤波处理,最终得到更新的阴影映射图: 将与像素点半影测量宽度最接近的奇数值作为百分比渐进滤波的正方形模板的边长,将模板中每个元素与模板中心距离的倒数设定为与该元素正相关的权值,然后进行百分比渐进滤波,更新像素点的纹 理映射值; (4)将由摄像头视角渲染的家装室内场景效果图中的像素值,与更新的阴影映射图中对应的纹理映射值相乘,生成最后的场景效果图。
2.根据权利要求1所述的一种虚拟家装室内场景设计中的阴影渲染方法,其特征在于,所述步骤(2)中,根据下式估算半影测量宽度: Wr].W
"Penumbra ^iBlocker "Light? 其中,Wpmumbra为半影测量宽度,CUcto值为当前像素点的邻域中所有比当前像素更靠近光源的像素点的深度距离平均值,wLight为光源的宽度。
3.根据权利要求2所述的虚拟家装室内场景设计中的阴影渲染方法,其特征在于,所述步骤(2)中,当前像素点的邻域的尺寸设定为3X3。
4.根据权利要求1所述的虚拟家装室内场景设计中的阴影渲染方法,其特征在于,所述步骤(3)中的泊松碟形采样中,将泊松碟形尺寸设定为5。
【文档编号】G06T15/60GK103903296SQ201410166236
【公开日】2014年7月2日 申请日期:2014年4月23日 优先权日:2014年4月23日
【发明者】章品正, 姜晓彤, 盛玲, 尤肖虎 申请人:东南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1