用于估计场景中的不透明度水平的方法及相应的设备的制作方法

文档序号:6533444阅读:132来源:国知局
用于估计场景中的不透明度水平的方法及相应的设备的制作方法
【专利摘要】本发明涉及一种用于估计场景的点(13)处的不透明度的方法,所述场景被面光源(10)照亮并且包括由网格定义并遮挡发出光中的一些的物体(11)。为了优化针对不透明度的现场估计的计算,该方法包括以下步骤:-在多个采样点(101、102、103)中对所述面光源(10)进行采样,-针对多个采样点(101、102、103)中的至少一个采样点并且针对遮挡物(11)的从该至少一个采样点可见的至少一个第一网格单元,针对至少一个第一网格单元的每条边生成一个阴影面,-根据与每个穿过的阴影面相关联的法线和至少一条射线(21)所形成的角度,根据表示所述至少一条射线(21)与所述至少一条射线(21)穿过的阴影面之间的交点(210、211、212)集合的不透明度的值来估计取决于函数基中的投影系数的不透明度水平,其中所述至少一条射线(21)以场景的视点(20)为原点。本发明还涉及相应的设备。
【专利说明】用于估计场景中的不透明度水平的方法及相应的设备

【技术领域】
[0001]本发明涉及合成图像构建的领域,更具体地,涉及估计虚拟场景点处的阴影或估计虚拟场景点接收的光量的领域。还在现场(live)构建的特效环境中理解本发明。

【背景技术】
[0002]根据现有技术,存在用于生成由于源自面光源的光遮挡而引起的软阴影的多种技术。这些技术之一称为随机方法,根据该随机方法,在大量点光源中对面光源进行采样。使用阴影映射或阴影体技术结合使用Z-缓冲区来计算针对每一点光源的硬阴影,以根据光源渲染场景。为获得真实的阴影渲染并消除与光源采样有关的量化缺陷,必须使用非常大量的采样,这会导致不利于现场场景渲染的大量计算。另一种软阴影渲染技术称为PCSS (百分比接近软阴影(Percentage-Closer Soft Shadow)),该技术基于对半影区域的宽度的估计与用于对阴影图进行过滤的PCF(百分比接近过滤(Percentage CloseFiltering))核的尺寸的关系,其中,对半影区域的宽度的估计基于光源遮挡物的平均距离和接收光的点与光源之间的距离。该技术的缺点之一是,其限于平面,并且当PCF变大时计算代价高昂,这使得难以进行现场渲染。


【发明内容】

[0003]本发明的目的在于克服现有技术的这些缺点中的至少一个。
[0004]更具体地,本发明的目的尤其在于优化与虚拟场景的一个或多个点相关联的不透明度(不透明)水平的真实和现场估计的必需计算。
[0005]本发明涉及一种用于估计场景的点处的不透明度的方法,所述场景被面光源照亮,所述场景包括遮挡所述光源发出的光中的一些的至少一个物体,所述遮挡物由网格定义。为了估计与场景的点相关联的不透明度水平,所述方法包括以下步骤:
[0006]-在多个采样点中对所述面光源进行采样,
[0007]-对于所述多个采样点中的至少一个采样点并且对于所述遮挡物的从所述至少一个采样点可见的至少一个第一网格单元,针对所述至少一个第一网格单元的每条边均生成一个阴影面,
[0008]-根据与至少一条射线穿过的每个阴影面相关联的法线和所述至少一条射线所形成的角度,基于对所述至少一条射线与所述至少一条射线穿过的阴影面之间的交点集合的不透明度加以表示的值来估计函数基中的投影系数,其中所述至少一条射线以所述场景的视点为原点并穿过所述场景,
[0009]-根据所估计的投影系数来估计对所述至少一条射线的点处的不透明度水平加以表不的值。
[0010]根据有利特征,所述投影系数是根据与所述至少一条射线穿过的所述阴影面相关联的不透明度水平的加权和来估计的。
[0011]根据有利特征,当所述至少一条射线和与所述至少一条射线穿过的阴影面相关联的法线所形成的角度大于90°时,所述不透明度水平沿着所述至少一条射线增加,并且当所述至少一条射线和与所述至少一条射线穿过的阴影面相关联的法线所形成的角度小于90°时,所述不透明度水平沿着所述至少一条射线减小。
[0012]根据有利特征,当所述至少一条射线与阴影面具有交点时,所述不透明度水平增加或减小与所述面光源发出的总光量与采样点的数量的比值相对应的值。
[0013]根据有利特征,生成阴影面包括:将所述至少一个第一网格单元细分为多个第二单元的步骤,所述阴影面是通过对所述第二单元进行几何变形生成的。
[0014]根据有利特征,所述函数基是傅里叶基。
[0015]有利地,所述投影系数被存储在至少一个投影纹理图中。
[0016]本发明还涉及一种设备,被配置为估计场景的点处的不透明度,所述场景由面光源照亮,所述场景包括遮挡所述源发出的光中的一些的至少一个物体,所述物体由网格来定义,所述设备包括至少一个处理器,所述处理器被配置为:
[0017]-在多个采样点中对所述面光源进行采样,
[0018]-对于所述多个采样点中的至少一个采样点并且对于所述遮挡物的从所述至少一个采样点可见的至少一个第一网格单元,针对所述至少一个第一网格单元的每条边均生成阴影面,
[0019]-根据与至少一条射线穿过的每个阴影面相关联的法线和所述至少一条射线所形成的角度,基于对所述至少一条射线与所述至少一条射线穿过的阴影面之间的交点集合的不透明度加以表示的值来估计函数基中的投影系数,其中所述至少一条射线以所述场景的视点为原点并穿过所述场景,
[0020]-根据所估计的投影系数来估计对所述至少一条射线的点处的不透明度水平加以表不的值。
[0021]有利地,当所述至少一条射线和与所述至少一条射线穿过的阴影面相关联的法线所形成的角度大于90°时,所述不透明度水平沿着所述至少一条射线增加,并且当所述至少一条射线和与所述至少一条射线穿过的阴影面相关联的法线所形成的角度小于90°时,所述不透明度水平沿着所述至少一条射线减小。
[0022]根据有利特征,当所述至少一条射线与阴影面具有交点时,所述不透明度水平增加或减小与所述面光源发出的总光量与采样点的数量的比值相对应的值。
[0023]根据另一特征,所述至少一个处理器被进一步配置为:将所述至少一个第一网格单元细分为多个第二单元,所述阴影面是通过对所述第二单元进行几何变形生成的。
[0024]本发明还涉及一种计算机程序产品,包括程序代码指令,当所述程序在计算机上执行时,所述程序代码指令用于执行用于估计场景的点处的不透明度的方法的步骤。
[0025]此外,本发明涉及一种计算机可读存储装置,存储指令集合,所述指令集合能够由计算机执行以执行用于估计场景的点处的不透明度的方法。

【专利附图】

【附图说明】
[0026]通过阅读以下描述,将更好地理解本发明并且其他具体特征和优点将显现,描述参考附图,在附图中:
[0027]-图1示出了根据本发明特定实施例的由面光源照亮并包括产生软阴影的遮挡物的场景1,
[0028]-图2示出了根据本发明特定实施例用于估计沿着穿过图1的场景的射线的不透明度函数的方法,
[0029]-图3示出了根据本发明特定实施例的生成源自图1的遮挡物的光照单元的阴影面,
[0030]-图4示出了根据本发明特定实施例的根据图2的方法获得的两个不透明度函数,
[0031]-图5示出了根据本发明特定实施例的执行用于估计在图1的场景点处接收的光量的方法的设备,
[0032]-图6示出了根据本发明特定实施例用于估计在图1的场景点处接收的光量的方法。

【具体实施方式】
[0033]图1示出了根据本发明的特定而非限制性的实施例的由面光源10照亮的虚拟场景1,也就是说(与一个点光源相反)由形成表面或体的多个点进行照亮。场景I中包括也称为遮挡物的不透明度物体11,其遮住了面光源10发出的至少一些光。因而场景I物体的表面12的区域120位于遮挡物11的投影110中,也就是说该区域120未从面光源10接收到光。表面12的其他两个区域121和122 (称作半影区)位于部分照亮的部分111和112中,即,这些区域121和122仅接收到面光源10发出的一些光。这些半影区121和122接收到的光量不均匀,距离阴影区120越远的点比最接近阴影区120的点接收更多的光。因而在半影区121和122中出现半影梯度,其中当点位于位于阴影区120附近时,不透明度水平更强,换句话说,随着分隔半影区121和122的点的距离的降低,所接收的光量会越来越低。这些半影区对应于软阴影区,也就是说,从阴影到光源的路径是渐变的区域。与位于半影区122中的点P 13相关联的暗度或亮度取决于例如由可视立体角131与遮挡立体角132形成的比值。可视立体角131对应于面光源10的参与照亮点P 13的部分,也即面光源的发出光未被遮挡物11遮挡并到达点P 13的部分。遮挡立体角132对应于面光源10的未参与照亮点P 13的部分,也即面光源的发出光被遮挡物11遮挡而未到达点P13的部分。根据一个变型,与点P 13相关联的亮度取决于可视立体角131。根据另一个变型,与点P 13相关联的暗(遮挡)度仅取决于遮挡立体角132。对于阴影区120中的点,可视立体角为零并且亮度为零,也即该点从面光源10直接接收的光量为零。因而暗(遮挡)度最大,例如等于100%的黑暗或遮挡。表面12的区域123对应于表面12的照亮区,也即包括从整个面光源10接收光的点的区域,也即对这些点来说,面光源10所发出的光完全没有被遮挡物11遮挡。
[0034]图2示出了根据本发明特定而非限制性的实施例用于估计场景I的点(例如位于半影区中的点)处的亮度或遮挡度的方法。在等同于点或者点光源的多个采样点101、102、103(例如8、16、32或64个采样点)中对面光源10进行采样。遮挡物11由其上表面2001 (也就是面向光源并且完全或部分地阻挡面光源10发出的光的部分)表示。有利地,通过包括形成网格的多个第一单元的网格(例如多边形,如三角形、或平行六面体(parallelepiped))对遮挡物进行建模。根据本领域技术人员已知的任何方法对遮挡物进行建模,例如多边形建模(其中将模型等同为多边形集合,每个多边形由组成它的顶点和边的列表来定义)、NUBRS (非均匀有理基本样条)类型(其中通过对表面建模进行细分由经由控制点或“控制顶点”创建的曲线集合定义模型)等等。对于面光源的每一个采样点101、102、103,针对遮挡物的每个第一网格单元的每一条边生成阴影面。这些阴影面的一个部分在图2的横截面中表示并且对应于平面2001、2002、2003、2004、2005、2006和2007。
[0035]图3示出了阴影面301、302、303,其是根据多个面光源采样点中的采样点101通过遮挡物的与三角形相对应的第一网格单元30的三条边生成的。每个阴影面由三角形30的边之一和两条直线段来定义,这两条直线段以所考虑的光源采样点101为原点并通过三角形30的属于所考虑的边的两个顶点。每个阴影面对应于边的轮廓,并采用平行六面体的形式,其是由例如两个三角形定义的。为了定义与由光源采样点照亮的三角形30相关联的阴影面,经证实需要6个三角形(针对三个阴影面301、302和303中的每一个需要两个三角形)。按照定义,三角形30本身也形成阴影面,因此需要7个三角形来定义与光源采样点101照亮的第一网格单元相关联的阴影面。如果考虑由具有N个光源采样点的集合来照亮该第一网格单元(该情形中为三角形),则需要7XN个三角形来定义与该第一网格单元相关联的阴影面。
[0036]根据本发明的一个有利变型,在多个第二网格单元(例如7个第二单元)(例如在多个三角形中)对第一网格单元进行细分或采样。通过图形卡渲染管线的细化(tessellat1n)单元或细化着色器级(shader stage)来有利地实现对第一网格单元的细分,以实时(on the fly)和现场生成这些第二网格单元。因此,通过使用合适的几何函数对这些第二网格单元中的每一个进行几何畸变,以形成与第一网格单元相关联的阴影面。如果第一网格单元对应于第一三角形,并被细分为7个第二三角形,则对第二三角形之一进行几何畸变以形成第一三角形。从而剩余6个第二三角形用于通过几何变形形成与第一三角形相关联的阴影面301、302、303 (针对每个阴影面有两个第二三角形)。通过图形卡的渲染管线的几何着色器级/单元来有利地执行几何变形处理。该变型的优点是,受益于图形卡的渲染管线(具体地,细化和几何着色器级/单元)的并行和现场数据处理能力,这可以降低存储表示由轮廓扩展生成的阴影面的参数的存储器要求(如先前的段落中所解释的)。由于大量要处理的数据,这些参数一般是由CPU “中央处理单元”型的微处理器计算的,由CPU执行的计算引起的参数被存储在RAM中,并且需要很大的存储空间。根据该有利变型,所有计算由GPU “图形处理单元”来执行,这提供了以下优点:现场生成阴影面,并且限制存储器的要求。
[0037]当生成图2中所示的阴影面2001至2007 (其与第一网格单元的边相关联,并根据面光源的采样点101至103产生的)时,确定一方面这些阴影面2001至2007与另一方面射线21、22之间的交点,其中射线21、22最初具有根据场景I确定的视点20并且穿过场景
I。第一射线21具有与阴影面2001 (其与由遮挡物的面向面光源的第一网格单元所定义的阴影面相对应)的第一交点210、与阴影面2004的第二交点211和与表面12 (等同于由表面12的网格单元的表面定义的阴影面,由于表面12遮挡了光源10发出的光,因此表面12对应于第二遮挡物)的第三交点212,有利地,通过覆盖光源10以及半影区和阴影区的方式自动地确定视点20。根据一个变型,视点20是用户可调参数。
[0038]根据射线21、22与阴影面12、2001至2007的交点并且根据表示与每个阴影面12、2001至2007相关联的不透明度的值,沿着每条射线确定不透明度函数。不透明度函数是表示沿着射线的不透明度变化的函数。不透明度函数O(X)有利地通过函数基来表示,例如傅里叶函数基。考虑到不透明度水平根据沿着射线21或22的区间[0,DfflaJ变化,可以通过傅里叶余弦函数基以如下方式表达不透明度函数:

【权利要求】
1.一种用于估计场景(I)的点(13)处的不透明度的方法,所述场景(I)被面光源(10)照亮,所述场景包括遮挡所述面光源(10)发出的光中的一些的至少一个物体(11),该遮挡物(11)由网格定义,其特征在于,所述方法包括以下步骤: -在多个采样点(101、102、103)中对所述面光源(10)进行采样(61), -对于所述多个采样点(101、102、103)中的至少一个采样点(101)并且对于所述遮挡物(11)的从所述至少一个采样点(101)可见的至少一个第一网格单元(30),针对所述至少一个第一网格单元(30)的每条边均生成¢2) —个阴影面(301、302、303), -根据与至少一条射线(21)穿过的每个阴影面相关联的法线和所述至少一条射线(21)所形成的角度,基于对所述至少一条射线(21)与所述至少一条射线(21)穿过的阴影面之间的交点(210、211、212)集合的不透明度加以表示的值,来估计(63)函数基中的投影系数,其中所述至少一条射线(21)以所述场景的视点(20)为原点并穿过所述场景, -根据所估计的投影系数来估计出4)对所述至少一条射线上的点处的不透明度水平加以表示的值。
2.根据权利要求1所述的方法,其中,所述投影系数是根据与所述至少一条射线(21)穿过的所述阴影平面相关联的不透明度水平的加权和来估计的。
3.根据权利要求1或2所述的方法,其特征在于,当所述至少一条射线(21)和与所述至少一条射线(21)穿过的阴影面(2001)相关联的法线所形成的角度大于90°时,所述不透明度水平沿着所述至少一条射线(21)增加,并且当所述至少一条射线(21)和与所述至少一条射线穿过的阴影面(2004)相关联的法线所形成的角度小于90°时,所述不透明度水平沿着所述至少一条射线(21)减小。
4.根据权利要求3所述的方法,其特征在于,当所述至少一条射线与阴影面具有交点时,所述不透明度水平增加或减小与所述面光源(10)发出的总光量与采样点的数量的比值相对应的值。
5.根据权利要求1至4中任一项所述的方法,其特征在于,生成所述阴影面包括:将所述至少一个第一网格单元(30)细分为多个第二单元的步骤,所述阴影面(301、302、303)是通过对所述第二单元进行几何变形生成的。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述函数基是傅里叶基。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述投影系数被存储在至少一个投影纹理图(201)中。
8.一种设备(5),被配置为估计场景的点处的不透明度,所述场景由面光源照亮,所述场景包括遮挡所述源发出的光中的一些的至少一个物体,所述物体由网格来定义,其特征在于,所述设备包括至少一个处理器,所述处理器被配置为: -在多个采样点中对所述面光源进行采样, -对于所述多个采样点中的至少一个采样点并且对于所述遮挡物的从所述至少一个采样点可见的至少一个第一网格单元,针对所述至少一个第一网格单元的每条边均生成阴影面, -根据与至少一条射线穿过的每个阴影面相关联的法线和所述至少一条射线所形成的角度,基于对所述至少一条射线与所述至少一条射线穿过的阴影面之间的交点集合的不透明度加以表示的值,来估计函数基中的投影系数,其中所述至少一条射线以所述场景的视点为原点并穿过所述场景, -根据所估计的投影系数来估计对所述至少一条射线上的点处的不透明度水平加以表示的值。
9.根据权利要求8所述的设备,其中,所述投影系数是根据与所述至少一条射线(21)穿过的所述阴影平面相关联的不透明度水平的加权和来估计的。
10.根据权利要求8或9所述的设备,其特征在于,当所述至少一条射线和与所述至少一条射线穿过的阴影面相关联的法线所形成的角度大于90°时,所述不透明度水平沿着所述至少一条射线增加,并且当所述至少一条射线和与所述至少一条射线穿过的阴影面相关联的法线所形成的角度小于90°时,所述不透明度水平沿着所述至少一条射线减小。
11.根据权利要求10所述的设备,其特征在于,当所述至少一条射线与阴影面具有交点时,所述不透明度水平增加或减小与所述面光源发出的总光量与采样点的数量的比值相对应的值。
12.根据权利要求8至11中任一项所述的设备,其特征在于,所述至少一个处理器被进一步配置为:将所述至少一个第一网格单元细分为多个第二单元,所述阴影面是通过对所述第二单元进行几何变形生成的。
13.一种计算机程序产品,其特征在于,所述计算机程序产品包括程序代码指令,当所述程序在计算机上执行时,所述程序代码指令用于执行根据权利要求1至7中任一项所述的方法的步骤。
14.一种计算机可读存储装置,存储指令集合,所述指令集合能够由计算机执行以执行根据权利要求1至7中任一项所述的方法。
【文档编号】G06T15/60GK104205173SQ201380017135
【公开日】2014年12月10日 申请日期:2013年3月28日 优先权日:2012年3月29日
【发明者】帕斯卡·高特隆, 帕斯卡·雷高克, 让-欧德斯·马维 申请人:汤姆逊许可公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1