CN104205173B - 用于估计场景中的不透明度水平的方法及相应的设备 - Google Patents
用于估计场景中的不透明度水平的方法及相应的设备 Download PDFInfo
- Publication number
- CN104205173B CN104205173B CN201380017135.2A CN201380017135A CN104205173B CN 104205173 B CN104205173 B CN 104205173B CN 201380017135 A CN201380017135 A CN 201380017135A CN 104205173 B CN104205173 B CN 104205173B
- Authority
- CN
- China
- Prior art keywords
- ray
- shadow surface
- point
- scene
- opacity
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/60—Shadow generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/06—Ray-tracing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2215/00—Indexing scheme for image rendering
- G06T2215/12—Shadow map, environment map
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本发明涉及一种用于估计场景的点(13)处的不透明度的方法,所述场景被面光源(10)照亮并且包括由网格定义并遮挡发出光中的一些的物体(11)。为了优化针对不透明度的现场估计的计算,该方法包括以下步骤:‑在多个采样点(101、102、103)中对所述面光源(10)进行采样,‑针对多个采样点(101、102、103)中的至少一个采样点并且针对遮挡物(11)的从该至少一个采样点可见的至少一个第一网格单元,针对至少一个第一网格单元的每条边生成一个阴影面,‑根据与每个穿过的阴影面相关联的法线和至少一条射线(21)所形成的角度,根据表示所述至少一条射线(21)与所述至少一条射线(21)穿过的阴影面之间的交点(210、211、212)集合的不透明度的值来估计取决于函数基中的投影系数的不透明度水平,其中所述至少一条射线(21)以场景的视点(20)为原点。本发明还涉及相应的设备。
Description
技术领域
本发明涉及合成图像构建的领域,更具体地,涉及估计虚拟场景点处的阴影或估计虚拟场景点接收的光量的领域。还在现场(live)构建的特效环境中理解本发明。
背景技术
根据现有技术,存在用于生成由于源自面光源的光遮挡而引起的软阴影的多种技术。这些技术之一称为随机方法,根据该随机方法,在大量点光源中对面光源进行采样。使用阴影映射或阴影体技术结合使用z-缓冲区来计算针对每一点光源的硬阴影,以根据光源渲染场景。为获得真实的阴影渲染并消除与光源采样有关的量化缺陷,必须使用非常大量的采样,这会导致不利于现场场景渲染的大量计算。另一种软阴影渲染技术称为PCSS(百分比接近软阴影(Percentage-Closer Soft Shadow)),该技术基于对半影区域的宽度的估计与用于对阴影图进行过滤的PCF(百分比接近过滤(Percentage Close Filtering))核的尺寸的关系,其中,对半影区域的宽度的估计基于光源遮挡物的平均距离和接收光的点与光源之间的距离。该技术的缺点之一是,其限于平面,并且当PCF变大时计算代价高昂,这使得难以进行现场渲染。
发明内容
本发明的目的在于克服现有技术的这些缺点中的至少一个。
更具体地,本发明的目的尤其在于优化与虚拟场景的一个或多个点相关联的不透明度(不透明)水平的真实和现场估计的必需计算。
本发明涉及一种用于估计场景的点处的不透明度的方法,所述场景被面光源照亮,所述场景包括遮挡所述光源发出的光中的一些的至少一个物体,所述遮挡物由网格定义。为了估计与场景的点相关联的不透明度水平,所述方法包括以下步骤:
-在多个采样点中对所述面光源进行采样,
-对于所述多个采样点中的至少一个采样点并且对于所述遮挡物的从所述至少一个采样点可见的至少一个第一网格单元,针对所述至少一个第一网格单元的每条边均生成一个阴影面,
-根据与至少一条射线穿过的每个阴影面相关联的法线和所述至少一条射线所形成的角度,基于对所述至少一条射线与所述至少一条射线穿过的阴影面之间的交点集合的不透明度加以表示的值来估计函数基中的投影系数,其中所述至少一条射线以所述场景的视点为原点并穿过所述场景,
-根据所估计的投影系数来估计对所述至少一条射线的点处的不透明度水平加以表示的值。
根据有利特征,所述投影系数是根据与所述至少一条射线穿过的所述阴影面相关联的不透明度水平的加权和来估计的。
根据有利特征,当所述至少一条射线和与所述至少一条射线穿过的阴影面相关联的法线所形成的角度大于90°时,所述不透明度水平沿着所述至少一条射线增加,并且当所述至少一条射线和与所述至少一条射线穿过的阴影面相关联的法线所形成的角度小于90°时,所述不透明度水平沿着所述至少一条射线减小。
根据有利特征,当所述至少一条射线与阴影面具有交点时,所述不透明度水平增加或减小与所述面光源发出的总光量与采样点的数量的比值相对应的值。
根据有利特征,生成阴影面包括:将所述至少一个第一网格单元细分为多个第二单元的步骤,所述阴影面是通过对所述第二单元进行几何变形生成的。
根据有利特征,所述函数基是傅里叶基。
有利地,所述投影系数被存储在至少一个投影纹理图中。
本发明还涉及一种设备,被配置为估计场景的点处的不透明度,所述场景由面光源照亮,所述场景包括遮挡所述源发出的光中的一些的至少一个物体,所述物体由网格来定义,所述设备包括至少一个处理器,所述处理器被配置为:
-在多个采样点中对所述面光源进行采样,
-对于所述多个采样点中的至少一个采样点并且对于所述遮挡物的从所述至少一个采样点可见的至少一个第一网格单元,针对所述至少一个第一网格单元的每条边均生成阴影面,
-根据与至少一条射线穿过的每个阴影面相关联的法线和所述至少一条射线所形成的角度,基于对所述至少一条射线与所述至少一条射线穿过的阴影面之间的交点集合的不透明度加以表示的值来估计函数基中的投影系数,其中所述至少一条射线以所述场景的视点为原点并穿过所述场景,
-根据所估计的投影系数来估计对所述至少一条射线的点处的不透明度水平加以表示的值。
有利地,当所述至少一条射线和与所述至少一条射线穿过的阴影面相关联的法线所形成的角度大于90°时,所述不透明度水平沿着所述至少一条射线增加,并且当所述至少一条射线和与所述至少一条射线穿过的阴影面相关联的法线所形成的角度小于90°时,所述不透明度水平沿着所述至少一条射线减小。
根据有利特征,当所述至少一条射线与阴影面具有交点时,所述不透明度水平增加或减小与所述面光源发出的总光量与采样点的数量的比值相对应的值。
根据另一特征,所述至少一个处理器被进一步配置为:将所述至少一个第一网格单元细分为多个第二单元,所述阴影面是通过对所述第二单元进行几何变形生成的。
本发明还涉及一种计算机程序产品,包括程序代码指令,当所述程序在计算机上执行时,所述程序代码指令用于执行用于估计场景的点处的不透明度的方法的步骤。
此外,本发明涉及一种计算机可读存储装置,存储指令集合,所述指令集合能够由计算机执行以执行用于估计场景的点处的不透明度的方法。
附图说明
通过阅读以下描述,将更好地理解本发明并且其他具体特征和优点将显现,描述参考附图,在附图中:
-图1示出了根据本发明特定实施例的由面光源照亮并包括产生软阴影的遮挡物的场景1,
-图2示出了根据本发明特定实施例用于估计沿着穿过图1的场景的射线的不透明度函数的方法,
-图3示出了根据本发明特定实施例的生成源自图1的遮挡物的光照单元的阴影面,
-图4示出了根据本发明特定实施例的根据图2的方法获得的两个不透明度函数,
-图5示出了根据本发明特定实施例的执行用于估计在图1的场景点处接收的光量的方法的设备,
-图6示出了根据本发明特定实施例用于估计在图1的场景点处接收的光量的方法。
具体实施方式
图1示出了根据本发明的特定而非限制性的实施例的由面光源10照亮的虚拟场景1,也就是说(与一个点光源相反)由形成表面或体的多个点进行照亮。场景1中包括也称为遮挡物的不透明度物体11,其遮住了面光源10发出的至少一些光。因而场景1物体的表面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遮挡。
图2示出了根据本发明特定而非限制性的实施例用于估计场景1的点(例如位于半影区中的点)处的亮度或遮挡度的方法。在等同于点或者点光源的多个采样点101、102、103(例如8、16、32或64个采样点)中对面光源10进行采样。遮挡物11由其上表面2001(也就是面向光源并且完全或部分地阻挡面光源10发出的光的部分)表示。有利地,通过包括形成网格的多个第一单元的网格(例如多边形,如三角形、或平行六面体(parallelepiped))对遮挡物进行建模。根据本领域技术人员已知的任何方法对遮挡物进行建模,例如多边形建模(其中将模型等同为多边形集合,每个多边形由组成它的顶点和边的列表来定义)、NUBRS(非均匀有理基本样条)类型(其中通过对表面建模进行细分由经由控制点或“控制顶点”创建的曲线集合定义模型)等等。对于面光源的每一个采样点101、102、103,针对遮挡物的每个第一网格单元的每一条边生成阴影面。这些阴影面的一个部分在图2的横截面中表示并且对应于平面2001、2002、2003、2004、2005、2006和2007。
图3示出了阴影面301、302、303,其是根据多个面光源采样点中的采样点101通过遮挡物的与三角形相对应的第一网格单元30的三条边生成的。每个阴影面由三角形30的边之一和两条直线段来定义,这两条直线段以所考虑的光源采样点101为原点并通过三角形30的属于所考虑的边的两个顶点。每个阴影面对应于边的轮廓,并采用平行六面体的形式,其是由例如两个三角形定义的。为了定义与由光源采样点照亮的三角形30相关联的阴影面,经证实需要6个三角形(针对三个阴影面301、302和303中的每一个需要两个三角形)。按照定义,三角形30本身也形成阴影面,因此需要7个三角形来定义与光源采样点101照亮的第一网格单元相关联的阴影面。如果考虑由具有N个光源采样点的集合来照亮该第一网格单元(该情形中为三角形),则需要7×N个三角形来定义与该第一网格单元相关联的阴影面。
根据本发明的一个有利变型,在多个第二网格单元(例如7个第二单元)(例如在多个三角形中)对第一网格单元进行细分或采样。通过图形卡渲染管线的细化(tessellation)单元或细化着色器级(shader stage)来有利地实现对第一网格单元的细分,以实时(on the fly)和现场生成这些第二网格单元。因此,通过使用合适的几何函数对这些第二网格单元中的每一个进行几何畸变,以形成与第一网格单元相关联的阴影面。如果第一网格单元对应于第一三角形,并被细分为7个第二三角形,则对第二三角形之一进行几何畸变以形成第一三角形。从而剩余6个第二三角形用于通过几何变形形成与第一三角形相关联的阴影面301、302、303(针对每个阴影面有两个第二三角形)。通过图形卡的渲染管线的几何着色器级/单元来有利地执行几何变形处理。该变型的优点是,受益于图形卡的渲染管线(具体地,细化和几何着色器级/单元)的并行和现场数据处理能力,这可以降低存储表示由轮廓扩展生成的阴影面的参数的存储器要求(如先前的段落中所解释的)。由于大量要处理的数据,这些参数一般是由CPU“中央处理单元”型的微处理器计算的,由CPU执行的计算引起的参数被存储在RAM中,并且需要很大的存储空间。根据该有利变型,所有计算由GPU“图形处理单元”来执行,这提供了以下优点:现场生成阴影面,并且限制存储器的要求。
当生成图2中所示的阴影面2001至2007(其与第一网格单元的边相关联,并根据面光源的采样点101至103产生的)时,确定一方面这些阴影面2001至2007与另一方面射线21、22之间的交点,其中射线21、22最初具有根据场景1确定的视点20并且穿过场景1。第一射线21具有与阴影面2001(其与由遮挡物的面向面光源的第一网格单元所定义的阴影面相对应)的第一交点210、与阴影面2004的第二交点211和与表面12(等同于由表面12的网格单元的表面定义的阴影面,由于表面12遮挡了光源10发出的光,因此表面12对应于第二遮挡物)的第三交点212,有利地,通过覆盖光源10以及半影区和阴影区的方式自动地确定视点20。根据一个变型,视点20是用户可调参数。
根据射线21、22与阴影面12、2001至2007的交点并且根据表示与每个阴影面12、2001至2007相关联的不透明度的值,沿着每条射线确定不透明度函数。不透明度函数是表示沿着射线的不透明度变化的函数。不透明度函数O(x)有利地通过函数基来表示,例如傅里叶函数基。考虑到不透明度水平根据沿着射线21或22的区间[O,Dmax]变化,可以通过傅里叶余弦函数基以如下方式表达不透明度函数:
等式1
其中
等式2
得到
等式3
a0为索引0的投影系数,
ak为索引k的投影系数,k对应于投影系数的号,
x对应于沿着射线在原点与射线的给定点之间距离,
d对应于沿着射线与原点相距的距离,在d处评估不透明度水平。
在等式2中使用狄拉克分布属性(也称为“狄拉克增量函数”)有利地将投影系数k估计为对由阴影面随机生成的不透明度采样点的加权和。不透明度采样点对应于射线与射线穿过的阴影面之间的交点,不透明度采样点是根据需要随着阴影面的生成而随机生成的,而没有任何特定顺序。每当在图形卡的渲染管线级生成阴影面时,其与射线的可能交点被确定,并且用于估计投影系数,其中,投影系数表示与所考虑的射线相关联的不透明度函数。考虑由单个阴影面产生的影响,其中在沿着射线与原点20相距d0处给定不透明度值是与该单个阴影面相关联的á0,得到下式:
等式4
V(d)对应于沿着射线的可视度函数,并且是不透明度函数的函数:
等式5
使用狄拉克分布得到下式:
等式6
针对对应于射线与阴影面之间的M个交点的M个采样点进行一般化,得到下式:
等式7
等式8
替换等式2中O(x),并利用以下事实
等式9
得到下式:
等式10
因而,如关于等式10清楚呈现的,根据与所考虑的射线穿过的阴影面相关联的不透明度水平的加权和,对投影系数ak进行估计,其中所使用的加权系数直接与ái相关。
有利地,表示沿着射线的不透明度函数的投影系数被存储在与视点20相关联的RGBá类型的投影纹理图201中,即,能够将针对一条射线的4个系数存储在这样的投影纹理图中。根据一个变型,很多RGBá类型的投影纹理图与视点20相关联并用于针对每条射线存储多于4个的投影系数,例如2、3、或4个投影纹理图用于分别针对每条射线存储8、12、或16个投影系数。有利地,表示不透明度函数(或以等同方式,可视度)的投影系数被估计的射线21、22的数量对应于覆盖包括阴影面区域的场景的投影纹理图的部分的像素的数量,其中每条射线与投影纹理图的这部分的像素相交。
有利地,与每个阴影面相关联的不透明度值á等于比值±1/N,N对应于被采样的光源10的采样点101、102、103的数量。与不透明度值á(其与考虑的阴影面与射线之间的交点相关联)相关联的(正或负)符号取决于由考虑的阴影面的法线与考虑的射线形成的角度。因而,如果射线与考虑的阴影面的法线形成的角度大于90°,则á=+1/N,也就是说,当射线穿过该阴影面时,沿着射线的不透明度水平增加。如果射线与考虑的阴影面的法线形成的角度小于90°,则á=-1/N,也就是说,当射线穿过该阴影面时,沿着射线的不透明度水平减小。根据一个变型,与每个阴影面相关联的不透明度值á等于正(+)或负(-)的预定常量并存储为参数,或者等于由系统的用户选择的常量(正或负取决于角度)。
当生成阴影面时,确定该阴影面和与投影纹理图的像素相交的每条射线之间的交点。根据射线和阴影面形成的角度,确定不透明度值的符号,确定射线的原点与每个交点之间的距离。在投影纹理图中更新每条射线的投影系数的值。
与投影纹理图的像素相交的每条射线21、22的估计的投影系数可以定义与射线相关联的不透明度函数,图4给出了其图示。图4示出了取决于在每条射线21、22的原点与考虑的射线点之间行进的距离x的不透明度的变化。标记为1的实线曲线示出了沿着射线1(参考图2上的21)的不透明度水平的变化,虚线曲线2示出了沿着射线2(参考图2上的22)的不透明度水平的变化。需要注意的是,不透明度水平等于0对应于属于场景中的照亮区的点,不透明度水平等于100对应于属于场景的(也就是说未从光源接收到光的区域)射线点,并且在0和100之间(不包括0和100)之间包括的不透明度水平对应于包括在半影区中的射线点(也就是说接收由光源发出的总光量中的一些的点)。
根据一个变型,与射线点相关联的不透明度水平对应于与每个阴影面相关联的不透明度值的总和,其中射线穿过该阴影面到达考虑的点。
对于每个射线点,在该点所接收的光量是根据该点处的不透明度水平确定的(有利地,根据与该射线相关联的投影系数确定的)。根据场景的视点23,点P所接收的光量可以定义与图像平面230的(与该点P相关联的)像素点相关联的属性(例如,明亮度水平)。
图5图示了设备5的实体(material)实施例,设备5适于估计表示沿着穿过场景1的射线的投影系数的不透明度函数,根据与场景点相关联的不透明度水平来估计在该点处接收的光量,以及创建一个或多个图像的显示信号。例如,设备5对应于个人电脑PC、膝上型计算机或游戏机。
设备5包括通过地址和数据总线55(其也传输时钟信号)相互连接的以下元件:
-微处理器51(或CPU),
-图形卡52,包括:
·多个图形处理单元520(或GPU),
·图形随机存取存储器(GRAM)521,
-ROM(“只读存储器”)类型的非易失性存储器56,
-随机存取存储器或RAM 57,
-一个或多个I/O(“输入/输出”)设备54,例如键盘、鼠标、网络摄像头,以及
-电源58。
设备5还包括直接连接到图形卡52的显示屏类型的显示设备53,以尤其显示在图形卡中例如现场计算和构建的计算机生成的图形的渲染。使用将显示设备53连接到图形卡52的专用总线提供以下优点:具有更大的数据传输比特率,从而减少了显示图形卡构建的图像的延迟时间。根据一个变型,显示设备在设备5的外部,并且通过传输显示信号的电缆连接至设备5。设备5(例如图形卡52)包括适于向外部显示装置(例如LCD或等离子屏幕、视频投影仪)发送显示信号的传输介质或连接器(图5未示出)。
需要注意的是,在存储器52、56和57的说明中使用的词“寄存器”是指在每一个提到的存储器中的低容量存储区域(一些二进制的数据),以及大容量存储区域(能够存储全部程序或者表示计算出的或要显示的数据的数据的全部或一部分)
当通电时,微处理器51装载并运行包含在RAM 57中的程序指令。
随机存取存储器57尤其包括:
-在寄存器570中,负责在设备5上切换的微处理器51的操作程序,
-表示场景1的参数51(例如,遮挡物11和12的第一网格单元的顶点和边、与面光源10相关联的光照参数)。
执行本发明特有的并在下文中描述的方法的步骤的算法被存储在与执行这些步骤的设备5相关联的图形卡52的存储器GRAM 57中。当通电时,一旦将表示媒体的参数570装载入RAM 57,图形卡52的图形处理单元520就将这些参数装载入GRAM 521,并使用例如HLSL(“高级着色器语言”)语言和GLSL(“OpenGL着色语言”)语言,执行“着色器”类型的微程序形式的这些算法的指令。
GRAM随机存取存储器521尤其包括:
-在寄存器5210中,表示场景1的参数,
-表示面光源采样的参数5211(例如,采样点的数量,与采样点相关联的索引),
-表示场景的遮挡物的第一网格单元的参数5212(例如与第一单元相关联的顶点和边、与每个第一单元相关联的索引),
-表示第一网格单元的第二细分单元的参数5213(例如,与第二单元相关联的顶点和边、与每个第二单元相关联的索引),
-表示阴影面的参数5214(例如,能够生成阴影面的第二单元、与阴影面相关联的不透明度值),
-表示射线与该射线穿过的阴影面之间的交点的参数5215(例如,射线的原点与考虑的交点之间的距离、与穿过的阴影面相关联的不透明度值的正或负符号),
-表示沿着射线的不透明度函数的投影系数5216,以及
-表示在属于射线21、22之一的场景点处接收的光量的值5217。
根据一个变型,如果GRAM 521中可用的存储器存储空间不足,则CPU 51指派RAM57的一部分用于存储参数5211、5212以及值5213、5214和5215。然而,在通过GPU中包含的微程序来构建包括构建的场景1的表示的图像时,这种变型会带来更长的延时时间,这是因为必须通过总线55从图形卡向随机存取存储器57发送数据,总线55的传输能力一般低于图形卡中可用于将数据从GPU传递到GRAM(反之亦然)的能力。
根据另一变型,电源58和/或显示器53在设备53的外部。
图6示出了根据本发明第二非限制性的特别有利的实施例在设备5中执行的用于估计在场景1的点处接收的光量的方法。
在初始化步骤60,更新设备5的不同参数。具体地,以任意方式初始化表示场景1的参数。
然后,在步骤61,在多个采样点中对面光源10进行采样。一旦被采样,面光源10就等同为点光源的集合,每个采样点对应于点光源。面光源10对应于例如任意形式的表面光源或体光源。面光源照亮场景1,并且尤其照亮遮挡光源10发出的光中的至少一些的遮挡物11。遮挡物由包括多个第一网格单元(例如多边形,如三角形或平行六面体)的网格定义。场景1还包括至少第二物体,遮挡物11位于光源10和该至少第二物体之间。因而,该至少第二物体的表面12的一部分位于遮挡物的阴影中,即,阴影中的该部分不直接接收光源发出的光,遮挡物阻挡光源在位于遮挡物的投影中的该部分的方向上发出所有光。根据一个变型,表面12不包括阴影区,例如,在面光源靠近遮挡物且比遮挡物更大的情况下。该至少一个第二物体的表面12的至少一部分在半影中,即,该至少一部分仅接收光源发出的光中的一些,遮挡物11在表面12的该至少一部分的方向上阻挡了面光源发出的光中的一些。
然后,在步骤62期间,针对形成遮挡物11的网格的第一单元的每一条边并且针对在步骤61期间生成的光源的多个采样点中的至少一部分的每一采样点,生成阴影面。例如,通过从所考虑的光源的采样点拉伸(extrusion)边来生成这些阴影面。这些阴影面对应于由所考虑的光源的采样点照亮的边的轮廓。例如,阴影面由多边形形成的网格定义,其中每个阴影面例如由两个三角形定义。对于遮挡物的网格的第一单元,例如,当该第一单元对应于三角形时,获得四个阴影面,其中三个阴影面对应于三角形的三条边的轮廓,第四个阴影面对应于三角形本身。一般地,针对包括j(大于或等于3的自然整数)条边的第一网格单元,生成的阴影面的数量为j+1。
根据一个有利的变型,使用包含在图形卡中的图形处理器的渲染管线的固有属性来生成阴影面,其优点是:与生成阴影面并行地执行必需的计算,从而优化对阴影面的生成和对场景的渲染的现场方面。根据该变型,第一网格单元被细分为多个第二单元,因而通过对这些第二单元进行几何变形来生成阴影面。有利地,由渲染管线的细化单元(细化着色器)实时地执行第一单元至第二单元的细分,并且,有利地,由渲染管线的几何着色器实时地执行对第二单元的几何变形,其中针对该处理类型,对细化和几何着色器在构思上进行配置和优化。该变型的优点是,能够在现场实时地生成阴影面,因而可以简化在CPU级进行的用于生成阴影面以传递给GPU的计算,从而最小化当表示阴影面的几何形状的参数被发送至图形卡用于后续处理之前在CPU级生成时用于存储这些参数的存储器要求。
根据一个变型,针对遮挡物的每个第一网格单元或者针对这些第一网格单元中的仅一部分生成阴影面,根据期望场景的渲染质量和精度,选择用于生成阴影面的这些第一单元的数量。根据一个变型,仅针对一个第一网格单元生成阴影面,例如,在例如当遮挡物尺寸较小时通过仅包括一个第一单元的网格来定义遮挡物的情况下。
通过相同的方式,根据期望的渲染质量和在图形卡级可用的计算能力,针对每个第一网格单元、针对光源采样点的全部或一部分,生成阴影面。
然后,在步骤63期间,沿着从给定视点在场景方向上发出的射线,估计函数基中的表示不透明度函数的投影系数。不透明度函数表示不透明度水平沿着与函数相关联的射线的变化。有利地,经由正交函数基(例如傅里叶函数基)中的相关联的投影系数表示不透明度函数。投影系数被估计的射线被定义为最初具有场景中的确定视点并和与该视点相关联的投影纹理图的像素相交的射线。当生成阴影面时,确定射线与每个新生成的阴影面之间的交点,并且使用例如等式10来更新投影系数。根据与生成的阴影面相关联的不透明度值来更新投影系数,其中,根据射线和与由射线生成并穿过的阴影面相关联的法线所形成的角度来确定该不透明度值,尤其是与其相关联的正或负符号。当射线和与由相同射线穿过的阴影面相关联的法线所形成的角度大于90°时,在等式10中使用不透明度值的正值,这意味着当该射线穿过生成的阴影面时,不透明度水平沿着射线增加,即,当射线穿过所考虑的阴影面时,从光源接收的光量沿着射线减小。当射线和与由相同射线穿过的阴影面相关联的法线所形成的角度小于90°时,在等式10中使用不透明度值的负值,这意味着当该射线穿过生成的阴影面时,不透明度水平沿着射线减小,即,当射线穿过所考虑的阴影面时,从光源接收的光量沿着射线增加。
有利地,与每个阴影面相关联的不透明度值等于1除以面光源的采样点的数量。根据一个变型,与每个阴影面相关联的不透明度值等于对应于面光源发出的总光量除以面光源的采样点的数量的比值。根据一个变型,与每个阴影面相关联的不透明度值等于预定任意值或等于由用户设置的值。
有利地,在考虑的射线穿过的投影纹理图的像素级,将与射线相关联的投影系数存储在一个或多个投影纹理图中。投影纹理图对应于RGBá图类型(“红、绿、蓝、α(alpha)”),每个RGBá通道用于存储投影系数。
有利地,针对以视点为原点的多条射线(例如,与和视点相关联的投影纹理图中的像素一样多的射线),产生以上关于步骤63描述的处理。根据一个变型,投影系数被估计的射线的数量对应于投影纹理图的一部分的像素的数量,即针对覆盖包括阴影面的场景1区域的投影纹理图的部分的像素的数量。有利地,以如下方式选择与投影纹理图相关联的视点:覆盖包括阴影面的场景区域的投影纹理图尽可能最小,以限制射线的数量,从而限制估计投影系数所需要的计算。以如下方式选择选择投影纹理图的分辨率:在限制估计投影系数所需要的计算的同时优化图像渲染的质量。投影纹理图的分辨率等于例如128×128个像素、512×512个像素、并且可以高达4096×4096个像素。
最后,在步骤64期间,估计表示与场景点相关联的不透明度水平的值,其中场景点属于相关联的投影系数已经被估计的射线。使用与考虑的射线相关联的不透明度函数来估计与考虑的点相关联的不透明度水平,其中通过与射线相关联的投影系数来表示该不透明度函数,该射线包括表示不透明度水平的值被搜索的点。例如使用等式3来计算表示不透明度水平的值,等式3中的变量d对应于射线的原点与考虑的点之间沿射线的距离。
有利地,例如当遮挡物11在场景中移动时或者当用户查看场景1所依据的视点改变时,针对每个图像迭代步骤62至64。
自然地,本发明不限于先前描述的实施例。具体地,本发明不限于用于估计表示场景的点处的不透明度水平的值的方法,而是还扩展至用于估计在场景的点处接收的光量的方法。本发明还扩展至执行该方法的任意设备,尤其是包括至少一个GPU的全部设备,并且本发明扩展至包括用于执行用于一起渲染或建模的方法的步骤的程序代码指令的计算机程序产品、以及任意存储装置(例如RAM或GRAM类型、闪存、CD、DVD),其上存储有用于实现用于渲染或建模的方法的可执行指令。关于图2、3和6描述的步骤的实施方式不限于着色器类型微程序的实施方式,而是还扩展至任意程序类型的实施方式,例如可以由CPU类型微处理器执行的程序。
有利地,用于估计投影系数的基函数是正交基函数,例如傅里叶类型。根据一个变型,使用的基函数为勒让德(Legendre)多项式或谢必西夫(Tchebychev)多项式。
本发明的用途不限于现场使用,而是还可以扩展至其他任意用途,例如用于,在录音室中用于渲染例如计算机生成的图片的所谓的后期制作处理操作。本发明在后期制作的实施方式给出了以下优点:在减少所需计算时间的同时尤其在写实方面提供了极好的视觉渲染。
本发明还涉及用于在二维或三维中构建视频图像的方法,其中,计算在点处接收的光量并且根据其得到的表示明亮度的信息用于显示图像像素,每个像素对应于沿着查看方向231的查看方向。重新计算所计算的用于通过图像的每个像素进行显示的明亮度值,以适应观察者的不同的视点。
本发明可用于例如视频游戏应用(而不论是否经由可以在PC或便携式类型计算机中或者在专用游戏机中执行的程序),从而现场产生并显示图像。关于图5所描述的设备5有利地具有交互装置(例如键盘和/或操纵杆),用于输入命令的其他模式(例如语音识别)也是可能的。
Claims (8)
1.一种估计场景(1)的点(13)处的不透明度的方法,所述场景(1)被面光源(10)照亮,所述场景包括遮挡所述面光源(10)发出的光中的一些的至少一个物体(11),该遮挡物(11)由网格定义,其特征在于,所述方法包括:
-在多个采样点(101、102、103)中对所述面光源(10)进行采样(61),
-对于所述多个采样点(101、102、103)中的至少一个采样点(101)并且对于所述遮挡物(11)的从所述至少一个采样点(101)可见的至少一个第一网格单元(30),针对所述至少一个第一网格单元(30)的每条边均生成一个阴影面(301、302、303)(62),
-根据与至少一条射线(21)穿过的每个阴影面相关联的法线和所述至少一条射线(21)所形成的角度,基于对所述至少一条射线(21)与所述至少一条射线(21)穿过的阴影面之间的交点(210、211、212)集合的不透明度加以表示的值,来计算函数基中的投影系数(63),其中所述至少一条射线(21)以所述场景的视点(20)为原点并穿过所述场景,所述投影系数是根据与所述至少一条射线(21)穿过的所述阴影面相关联的不透明度水平的加权和来计算的,
-根据所计算的投影系数来计算对所述至少一条射线上的点处的不透明度水平加以表示的值(64),
其中,当所述至少一条射线(21)和与所述至少一条射线(21)穿过的阴影面(2001)相关联的法线所形成的角度大于90°时,所述不透明度水平沿着所述至少一条射线(21)增加,并且当所述至少一条射线(21)和与所述至少一条射线穿过的阴影面(2004)相关联的法线所形成的角度小于90°时,所述不透明度水平沿着所述至少一条射线(21)减小。
2.根据权利要求1所述的方法,其中,当所述至少一条射线与阴影面具有交点时,所述不透明度水平增加或减小与所述面光源(10)发出的总光量与采样点的数量的比值相对应的值。
3.根据权利要求1或2所述的方法,其中,生成所述阴影面包括:将所述至少一个第一网格单元(30)细分为多个第二单元,所述阴影面(301、302、303)是通过对所述第二单元进行几何变形生成的。
4.根据权利要求1或2所述的方法,其中,所述函数基是傅里叶基。
5.根据权利要求1或2所述的方法,其中,所述投影系数被存储在至少一个投影纹理图(201)中。
6.一种设备(5),被配置为估计场景的点处的不透明度,所述场景由面光源照亮,所述场景包括遮挡所述源发出的光中的一些的至少一个物体,所述物体由网格来定义,其特征在于,所述设备包括至少一个处理器,所述处理器被配置为:
-在多个采样点中对所述面光源进行采样,
-对于所述多个采样点中的至少一个采样点并且对于所述遮挡物的从所述至少一个采样点可见的至少一个第一网格单元,针对所述至少一个第一网格单元的每条边均生成阴影面,
-根据与至少一条射线穿过的每个阴影面相关联的法线和所述至少一条射线所形成的角度,基于对所述至少一条射线与所述至少一条射线穿过的阴影面之间的交点集合的不透明度加以表示的值,来计算函数基中的投影系数,其中所述至少一条射线以所述场景的视点为原点并穿过所述场景,所述投影系数是根据与所述至少一条射线穿过的所述阴影面相关联的不透明度水平的加权和来计算的,
-根据所估计的投影系数来计算对所述至少一条射线上的点处的不透明度水平加以表示的值,
其中,当所述至少一条射线和与所述至少一条射线穿过的阴影面相关联的法线所形成的角度大于90°时,所述不透明度水平沿着所述至少一条射线增加,并且当所述至少一条射线和与所述至少一条射线穿过的阴影面相关联的法线所形成的角度小于90°时,所述不透明度水平沿着所述至少一条射线减小。
7.根据权利要求6所述的设备,其中,当所述至少一条射线与阴影面具有交点时,所述不透明度水平增加或减小与所述面光源发出的总光量与采样点的数量的比值相对应的值。
8.根据权利要求6或7所述的设备,其中,所述至少一个处理器被进一步配置为:将所述至少一个第一网格单元细分为多个第二单元,所述阴影面是通过对所述第二单元进行几何变形生成的。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1252869 | 2012-03-29 | ||
FR1252869A FR2988891A1 (fr) | 2012-03-29 | 2012-03-29 | Procede d'estimation de niveau d'opacite dans une scene et dispositif correspondant |
PCT/EP2013/056801 WO2013144333A1 (en) | 2012-03-29 | 2013-03-28 | Method for estimating the opacity level in a scene and corresponding device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104205173A CN104205173A (zh) | 2014-12-10 |
CN104205173B true CN104205173B (zh) | 2017-03-29 |
Family
ID=48014027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380017135.2A Expired - Fee Related CN104205173B (zh) | 2012-03-29 | 2013-03-28 | 用于估计场景中的不透明度水平的方法及相应的设备 |
Country Status (8)
Country | Link |
---|---|
US (1) | US9558586B2 (zh) |
EP (1) | EP2831848B1 (zh) |
JP (1) | JP2015515059A (zh) |
KR (1) | KR20140144688A (zh) |
CN (1) | CN104205173B (zh) |
CA (1) | CA2866849C (zh) |
FR (1) | FR2988891A1 (zh) |
WO (1) | WO2013144333A1 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2525636B (en) * | 2014-04-30 | 2020-08-19 | Geomerics Ltd | Graphics processing systems |
KR20160071774A (ko) * | 2014-12-12 | 2016-06-22 | 삼성전자주식회사 | 영상 처리를 위한 영상 처리 장치, 방법 및 기록 매체 |
US9786095B2 (en) | 2015-02-25 | 2017-10-10 | Samsung Electronics Co., Ltd. | Shadow rendering apparatus and control method thereof |
DE102016103870A1 (de) * | 2015-03-03 | 2016-09-08 | Imagination Technologies Limited | Systeme und Verfahren zur weichen Schattierung in 3D-Rendering |
US10614614B2 (en) | 2015-09-29 | 2020-04-07 | Adshir Ltd. | Path tracing system employing distributed accelerating structures |
GB2543562B (en) * | 2015-10-23 | 2020-02-05 | Geomerics Ltd | Graphics processing |
US10614612B2 (en) | 2018-06-09 | 2020-04-07 | Adshir Ltd. | Fast path traced reflections for augmented reality |
US12008704B2 (en) | 2016-01-28 | 2024-06-11 | Snap Inc. | System for photo-realistic reflections in augmented reality |
GB2551388B (en) | 2016-06-17 | 2021-01-27 | Geomerics Ltd | Graphics processing systems |
GB2555797B (en) | 2016-11-09 | 2020-04-08 | Geomerics Ltd | Graphics processing to provide shadows on specular lighting |
CN114777686A (zh) * | 2017-10-06 | 2022-07-22 | 先进扫描仪公司 | 生成一个或多个亮度边缘以形成物体的三维模型 |
US10699468B2 (en) * | 2018-06-09 | 2020-06-30 | Adshir Ltd. | Method for non-planar specular reflections in hybrid ray tracing |
US11017581B1 (en) | 2020-01-04 | 2021-05-25 | Adshir Ltd. | Method for constructing and traversing accelerating structures |
CN111476877B (zh) * | 2020-04-16 | 2024-01-26 | 网易(杭州)网络有限公司 | 一种阴影渲染的方法及装置、电子设备、存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101271588A (zh) * | 2007-10-26 | 2008-09-24 | 威盛电子股份有限公司 | 可重建几何阴影图方法 |
CN101393651A (zh) * | 2008-11-07 | 2009-03-25 | 北京航空航天大学 | 一种视野驱动的实时阴影方法 |
CN101542232A (zh) * | 2007-08-07 | 2009-09-23 | 松下电器产业株式会社 | 法线信息生成装置以及法线信息生成方法 |
CN102365657A (zh) * | 2009-03-27 | 2012-02-29 | 汤姆森特许公司 | 在图像中生成阴影的方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IL136430A0 (en) | 2000-05-29 | 2001-06-14 | Zviaguina Natalia | Ray tracing method and system for determining visible parts of surfaces of three-dimensional objects and their parameters of shading accounting for light and shadow volumes |
US6903741B2 (en) | 2001-12-13 | 2005-06-07 | Crytek Gmbh | Method, computer program product and system for rendering soft shadows in a frame representing a 3D-scene |
JP2003346176A (ja) * | 2002-05-24 | 2003-12-05 | Telecommunication Advancement Organization Of Japan | ラジオシティのメッシュ分割方法及びその装置 |
JP4079249B2 (ja) * | 2002-06-03 | 2008-04-23 | 任天堂株式会社 | ゲーム装置及びゲームプログラム |
US7248261B1 (en) | 2003-12-15 | 2007-07-24 | Nvidia Corporation | Method and apparatus to accelerate rendering of shadow effects for computer-generated images |
US7924281B2 (en) | 2005-03-09 | 2011-04-12 | Ati Technologies Ulc | System and method for determining illumination of a pixel by shadow planes |
US7755626B2 (en) | 2006-05-03 | 2010-07-13 | Sony Computer Entertainment Inc. | Cone-culled soft shadows |
JP4902748B2 (ja) | 2006-12-08 | 2012-03-21 | メンタル イメージズ ゲーエムベーハー | 階層型オクルージョンカリングを使用するコンピュータグラフィックシャドウボリューム |
US7969438B2 (en) | 2007-01-23 | 2011-06-28 | Pacific Data Images Llc | Soft shadows for cinematic lighting for computer graphics |
US7982734B2 (en) | 2007-08-01 | 2011-07-19 | Adobe Systems Incorporated | Spatially-varying convolutions for rendering soft shadow effects |
US7970237B2 (en) * | 2007-08-01 | 2011-06-28 | Adobe Systems Incorporated | Spatially-varying convolutions for rendering glossy reflection effects |
US20090079758A1 (en) * | 2007-09-25 | 2009-03-26 | Max-Planck-Gesellschaft Zur Forderung Per Wissenschaften E.V. | Method and device for generating shadow maps |
US9171396B2 (en) * | 2010-06-30 | 2015-10-27 | Primal Space Systems Inc. | System and method of procedural visibility for interactive and broadcast streaming of entertainment, advertising, and tactical 3D graphical information using a visibility event codec |
US8442306B2 (en) | 2010-08-13 | 2013-05-14 | Mitsubishi Electric Research Laboratories, Inc. | Volume-based coverage analysis for sensor placement in 3D environments |
-
2012
- 2012-03-29 FR FR1252869A patent/FR2988891A1/fr not_active Withdrawn
-
2013
- 2013-03-28 CA CA2866849A patent/CA2866849C/en active Active
- 2013-03-28 WO PCT/EP2013/056801 patent/WO2013144333A1/en active Application Filing
- 2013-03-28 EP EP13712813.8A patent/EP2831848B1/en active Active
- 2013-03-28 KR KR1020147027133A patent/KR20140144688A/ko not_active Application Discontinuation
- 2013-03-28 US US14/386,799 patent/US9558586B2/en active Active
- 2013-03-28 CN CN201380017135.2A patent/CN104205173B/zh not_active Expired - Fee Related
- 2013-03-28 JP JP2015502370A patent/JP2015515059A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101542232A (zh) * | 2007-08-07 | 2009-09-23 | 松下电器产业株式会社 | 法线信息生成装置以及法线信息生成方法 |
CN101271588A (zh) * | 2007-10-26 | 2008-09-24 | 威盛电子股份有限公司 | 可重建几何阴影图方法 |
CN101393651A (zh) * | 2008-11-07 | 2009-03-25 | 北京航空航天大学 | 一种视野驱动的实时阴影方法 |
CN102365657A (zh) * | 2009-03-27 | 2012-02-29 | 汤姆森特许公司 | 在图像中生成阴影的方法 |
Non-Patent Citations (1)
Title |
---|
Convolution Shadow Maps;Thomas Annen et al.;《 Eurographics Symposium on Rendering》;20071231;第3.1节 * |
Also Published As
Publication number | Publication date |
---|---|
KR20140144688A (ko) | 2014-12-19 |
JP2015515059A (ja) | 2015-05-21 |
US9558586B2 (en) | 2017-01-31 |
WO2013144333A1 (en) | 2013-10-03 |
CA2866849C (en) | 2020-04-14 |
EP2831848A1 (en) | 2015-02-04 |
CN104205173A (zh) | 2014-12-10 |
US20150042655A1 (en) | 2015-02-12 |
FR2988891A1 (fr) | 2013-10-04 |
EP2831848B1 (en) | 2017-02-01 |
CA2866849A1 (en) | 2013-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104205173B (zh) | 用于估计场景中的不透明度水平的方法及相应的设备 | |
US9842425B2 (en) | System and method for rendering three-dimensional scenes by a computer graphics processor using orthogonal projection | |
CN111508052A (zh) | 三维网格体的渲染方法和装置 | |
US10217259B2 (en) | Method of and apparatus for graphics processing | |
US9311749B2 (en) | Method for forming an optimized polygon based shell mesh | |
US10127711B2 (en) | Method and apparatus rendering caustics | |
US20170358127A1 (en) | Rendering based generation of occlusion culling models | |
US10089782B2 (en) | Generating polygon vertices using surface relief information | |
WO2024037116A1 (zh) | 三维模型的渲染方法、装置、电子设备及存储介质 | |
JP5916764B2 (ja) | 仮想環境における隠蔽の推定方法 | |
Zhang et al. | When a tree model meets texture baking: an approach for quality-preserving lightweight visualization in virtual 3D scene construction | |
US9390551B2 (en) | Method for estimation of information representative of a pixel of a virtual object | |
Ragragui et al. | Revolution mapping with bump mapping support | |
TWI617178B (zh) | 用以表現出三維景象之電腦圖形方法、系統及軟體產品 | |
Macedo et al. | Revectorization‐Based Soft Shadow Mapping | |
Konev et al. | Fast cutaway visualization of sub-terrain tubular networks | |
Chen et al. | A quality controllable multi-view object reconstruction method for 3D imaging systems | |
Kolivand et al. | Simulated real-time soft shadow in mixed reality using fuzzy logic | |
Shihan et al. | Adaptive volumetric light and atmospheric scattering | |
EP2801954A1 (en) | Method and device for visualizing contact(s) between objects of a virtual scene | |
Macedo | Efficient shadow anti-aliasing techniques using silhouette revectorization | |
CN117351130A (zh) | 一种面向智能车间三维场景的真实感实时渲染方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170329 Termination date: 20180328 |