CN112840378B - 在路径追踪中使用共享光照贡献进行相互作用的全局照明 - Google Patents

在路径追踪中使用共享光照贡献进行相互作用的全局照明 Download PDF

Info

Publication number
CN112840378B
CN112840378B CN201980061184.3A CN201980061184A CN112840378B CN 112840378 B CN112840378 B CN 112840378B CN 201980061184 A CN201980061184 A CN 201980061184A CN 112840378 B CN112840378 B CN 112840378B
Authority
CN
China
Prior art keywords
illumination
virtual environment
ray
transmission path
interaction
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.)
Active
Application number
CN201980061184.3A
Other languages
English (en)
Other versions
CN112840378A (zh
Inventor
J·潘塔莱奥尼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of CN112840378A publication Critical patent/CN112840378A/zh
Application granted granted Critical
Publication of CN112840378B publication Critical patent/CN112840378B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/506Illumination models

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)

Abstract

当确定用于光传输路径的光照条件时,所公开的方法提供了虚拟环境中光传输路径的次级光线的相互作用以共享光照贡献。可以基于特性的相似性(例如,命中位置)来共享相互作用,所述特性的相似性可以定义区域,在所述区域中相互作用可以共享光照条件数据。所述区域可以对应于纹理映射的纹理纹素,并且用于相互作用的光照贡献数据可以在空间和/或时间上累积到所述纹理纹素,然后用于计算复合光照贡献数据,所述复合光照贡献数据估计相互作用下的辐射。还提供了用于将相互作用的光照贡献重投影到像素的方法,以共享来自光传输路径二次反弹的光照贡献数据,同时避免潜在的过度模糊。

Description

在路径追踪中使用共享光照贡献进行相互作用的全局照明
背景
在图像渲染应用程序中,使用全局照明来模拟虚拟环境中的光照条件,所述模拟过程不仅要考虑直接来自光源的光(直接照明),还要考虑从表面反射的光(间接照明)。路径追踪是一种全局照明的方法,其中可以组合沿光线跟踪的光传输路径(通常具有初始或初级光线,以及若干反射或次级光线)的不同点处的光照贡献,来确定由视点相机观察到的光照条件。
路径追踪的传统方法需要大量的次级光线(例如,除了初始或初级光线,可以从初级光线投射出的光线)来采样每个像素的光照条件,以使像素准确地反射在虚拟环境中的光照条件。例如,在光传输路径中,光线可与漫射表面相互作用,在所述漫射表面上,被采样的光照贡献仅占一个方向(在许多可能的方向中),在所述方向上光粒子可从表面散射。可以投射许多次级光线来采样其他方向从而更准确地估计相互作用对光传输路径的光照贡献。由于所述潜在的大量样本,渲染此类场景所需的计算资源可对实时渲染应用(例如游戏)施加太大的延迟。
概要
本公开的实施例提供了使用时空累加的全局照明。在各个方面,本公开提供了用于沿光传输路径确定相互作用的光照贡献的改进方法,所述改进方法可用于全局照明。
与传统方法相反,本公开在确定光传输路径的光照条件时提供虚拟环境中的光传输路径的次级光线的相互作用来共享光照贡献。这允许所述***利用附加信息并增加相互作用的有效样本计数,而无需从相互作用中投射附加光线。这样,可能需要更少的样本来确定准确反映虚拟环境中像素的光照条件。
当相互作用足够相似以充当另一相互作用的样本近似时,所述相互作用的光照贡献可以与另一相互作用共享。例如,可以基于特性上的相似性来共享相互作用,诸如,命中位置、对应次级光线的命中距离、光传输路径到相互作用的长度、相互作用的反弹次数和/或相互作用路径足迹近似区域。所述特性可以定义相互作用可以共享光照条件数据的区域。所述区域可以对应于纹理映射的纹理纹素,并且用于相互作用的光照贡献数据可以在空间和/或时间上累加到纹理纹素,然后用于计算复合光照贡献数据,所述复合光照贡献数据估计相互作用的辐射。还提供了用于将相互作用的光照贡献重投影到像素的方法,所述方法共享来自光传输路径的二次反弹的光照贡献数据,同时避免潜在的过度模糊。
附图说明
下面参考附图详细描述用于光线追踪应用中反射降噪的本***和方法,其中:
图1是根据本公开一些实施例的渲染***的示例***图;
图2是示出根据本公开一些实施例的空间共享光传输路径的光照贡献的示例图;
图3是示出根据本公开一些实施例的时间共享光传输路径的光照贡献的示例图;
图4是示出根据本公开一些实施例的可用于定义共享光照条件区域的多级渐远纹理(mipmap)和纹理像素的示例图;
图5是示出根据本公开一些实施例的光传输路径的重投影光照贡献的示例图;
图6是示出根据本公开一些实施例的应用图像滤波器来重投影光传输路径的光照贡献的示例图;
图7是示出根据本公开一些实施例的用于基于次级光线的一个或更多个特性使用共享光照贡献来渲染虚拟环境方法的流程图;
图8是示出根据本公开的一些实施例的用于基于虚拟环境中与次级光线的相互作用相对应的区域使用共享光照贡献来渲染虚拟环境的方法的流程图;
图9是示出根据本公开一些实施例的用于基于与次级光线的相互作用相对应的本地数据存储来使用共享光照贡献来渲染虚拟环境的方法的流程图;以及
图10为适合用于实现本公开一些实施例的示例计算设备的框图。
详细说明
本公开的实施例提供了使用时空累加的全局照明。在各个方面,本公开提供了用于确定沿光传输路径的相互作用的光照贡献的改进方法,所述改进方法可用于全局照明。
与传统方法相反,本公开在确定光传输路径的光照条件时提供虚拟环境中的光传输路径的次级光线的相互作用来共享光照贡献。这允许所述***利用附加信息并增加相互作用的有效样本计数,而无需从相互作用中投射附加光线。这样,可能需要更少的样本来确定准确反映虚拟环境的像素的光照条件。
在公开的方法中,当一个或更多个光线追踪的光传输路径的次级光线与虚拟环境中表面点相互作用时,来自多个相互作用的光照贡献可用于计算复合光照贡献,所述复合光照贡献被用作至少一条光传输路径中相互作用的辐射估计(例如,入射辐射或辐照度)。例如,在相互作用下,复合光照贡献可以在相互作用下形成渲染方程的离散有限元解。
为了确保用于不同相互作用的光照贡献彼此相关,可以基于相互作用的特性之间的相似性来共享光照贡献。作为示例,可以基于相互作用的相对位置(例如,相互作用的对应表面点)来共享针对不同相互作用的光照贡献。例如,可以共享在虚拟环境的一个或更多个定义区域内用于相互作用的光照贡献。在一些示例中,可以通过用于渲染虚拟环境的纹理映射(例如,光照贴图)的纹理纹素来定义区域。落入由纹理纹素定义的区域内的相互作用可累加到纹理纹素,并用于计算至少一个相互作用的复合光照贡献。
特性的其他示例可以基于与相互作用的入射次级光线相关联的命中距离,直至相互作用的光传输路径的长度,相互作用的反弹次数和/或对应于入射的次级射线的路径足迹近似值的区域,所述特性可用于定义和/或确定相互作用的光照条件是否共享(和/或在组合它们时不同光照贡献的权重)。当这些特性中的一个或更多个值在彼此一个或更多个阈值之内时(例如,针对单个特性进行评估和/或作为复合值或度量),可以共享相应相互作用的光照条件。
在进一步的示例中,所述一个或更多个特性可以定义虚拟环境中的经定义的区域的大小,其中可以共享用于相互作用的光照贡献。例如,可以使用与相互作用的次级光线相关联的命中距离、直至相互作用的光传输路径的长度,直至相互作用的反弹数量和/或与入射次级光线相对应的路径足迹近似值的区域,来选择和/或计算经定义的区域的大小,。在纹理映射被实现为多级渐远纹理(mipmap)的示例中,可以基于一个或更多个特性在多级渐远纹理中通过选择级别来定义所述大小,并且相互作用落在所选级别的纹理素上。***可以为每个相互作用选择一个级别,并且与所选级别的相互作用的光照贡献可以在它们各自对应于所述级别的纹理像素时,具有共享的光照贡献。通过将用于共享光照贡献的区域的大小基于(一个或更多个)特性,针对其中光照贡献的较粗近似是合适的相互作用,该区域可以更大,诸如,考虑到相互作用距离视点相机越远,模糊性就越大。
本文还描述了用于将相互作用的光照贡献重投影到像素,以共享来自光传输路径的二次反弹的光照贡献数据的方法,所述方法同时避免潜在的过度模糊。为此,***可以使用在屏幕空间中应用于像素的光照条件数据的滤波器(例如,双向滤波器)来重投影光照贡献数据。在将重投影与共享间接照明的光照贡献相结合的示例中,此方法可以有效地导致有限元求解器和平面路径追踪器之间的混合-本质上采用了反弹2,...,N的有限元解,并使用原始路径追踪采样(例如,蒙特卡洛)进行第一次反弹。这可能会导致更好地定义第一次反射的光照贡献数据,因为它不会像有限元解那样被平滑。
参考图1,图1是根据本公开一些实施例的渲染***100的示例***图。应当理解的是,本文描述的这种和其他布置仅仅作为示例而进行阐述。除了所示之外或者代替所示,可以使用其他的布置和元素(例如机器、接口、功能、顺序、功能分组等等),并且可以完全省略一些元素。进一步,许多本文描述的元素是功能实体,其可以实现为分立的或分布式部件或者结合其他部件实现,以及以任何适当的组合和位置实现。本文描述的通过实体执行的各种功能可以通过硬件、固件和/或软件实现。例如,各种功能可以通过执行存储在内存中的指令的处理器而实施。举例来说,渲染***100可以在图10的计算设备1000的一个或多个实例上实现。
渲染***100可以包括图像渲染器102、光线投射器104、光照确定器106、光照贡献管理器108和光照重投影仪(a lighting reprojector)110。图像渲染器102可以被配置成渲染虚拟环境的图像,诸如,图2、图3和图5的虚拟环境200。为了渲染虚拟环境的图像,图像渲染器102可以采用光线投射器104、光照确定器106、光照贡献管理器108和光照重投影仪110。例如,图像渲染器102可以使用那些组件来实现各种光线追踪技术中的任何一种,诸如路径追踪。为此,光投射仪104可以被配置为在虚拟环境中追踪光线,以定义在虚拟环境中光线追踪光传输路径(例如,在视点相机与一个或更多个光源之间)。光照确定器106可以被配置为至少部分地基于所跟踪的光线,来确定表示虚拟环境(例如,与表面一起)中光线所跟踪的光传输路径相互作用的光照条件数据(也称为光照条件数据)。光照确定器106可以进一步聚合表示所述光照贡献的数据(例如,入射辐射或辐照度值),以计算表示渲染图像(例如,像素)光照条件的数据(也称为光照条件数据)。光照贡献管理器108可以被配置为确定和/或定义在计算表示光照条件(例如,包括一个或更多个光照条件值)的数据中在光照确定器106中的相互作用之间共享哪个光照贡献(例如,每个包括一个或更多个光照贡献值,诸如辐照度值)。光照确定器106在计算表示光照条件数据时,可以使用光照重投影仪110来重投影光传输路径的光照贡献。
图1示出了从图像114到图像116的渲染进度,所述渲染进度可以与渲染数据相对应,所述渲染数据由图像渲染器102在渲染虚拟环境(诸如图2的所述虚拟环境200)的状态时生成。尽管可以将图像渲染器102描述为渲染图像114和图像116,但是本文描述的各种示例不限于渲染图像114或图像116。例如,图像114和图像116不需要如图所示被完全渲染,但是可以更一般地指示在渲染最终输出图像的不同阶段的光照条件数据。作为示例,可以在那些阶段渲染图像114、图像116和/或其组件的视觉内容的一个或更多个部分(例如,入射辐射),并且可以执行进一步的处理以产生最终输出图像。
图像114被显示为示出了在使用光照重投影仪110进行光照贡献重投影之前或不使用光照重投影仪110进行光照贡献重投影的光照条件数据状态。根据所公开的实施例,所示示例对应于由图像渲染器102使用路径追踪以每像素1个样本执行渲染,所述路径追踪合并了共享光照贡献数据。尽管光照条件数据可以包括噪声,但所述噪声显著低于使用传统路径追踪以每像素1个样本进行渲染时的噪声。图像116被显示为示出了在使用光照重投影仪110进行光照贡献重投影之后的所述光照条件数据状态。尽管噪声可能仍然很明显,但是所述噪声比图像114中的噪声要小。在一些实施例中,可以通过附加地处理图像116的光照条件数据来进一步减轻噪声,诸如使用空间和/或时间降噪滤波器,所述空间和/或时间降噪滤波器应用于光照条件数据,所述光照贡献数据与图像116相对应。在一些实施例中,光照重投影仪110可以不包括在渲染***100中,或者可以不用于渲染输出图像。在这样的实施例中,例如,仍然可以对图像114的光照条件数据应用附加处理(诸如使用空间和/或时间降噪滤波器)。
图像渲染器102可以使用任何合适的方法来渲染图像114和图像116(和/或其部分或组件)的光照条件数据,所述方法使用光线来采样虚拟环境的光照条件(例如,生成像素渲染方程的解)。因此,尽管本文中的示例可以参考路径追踪和类似方法进行描述,但是本公开被认为是更广泛适用的。
现在参考图2,图2示出了根据本公开一些实施例的空间共享光传输路径光照贡献的示例图。图2显示了虚拟环境200,所述虚拟环境200包括照相机202、屏幕204以及表面206、208和210。照相机202可以是虚拟照相机(诸如视点相机),并且可以表示所述虚拟环境200的观看者视角,所述虚拟环境200由图像渲染器102来渲染。屏幕204可以是屏幕的虚拟表示,所述屏幕分辨率可以与图像114、图像116和/或在渲染管线(例如,可以转换、转译或裁剪分辨率)中生成的其他图像相同或更高。屏幕204可以包括虚拟像素或区域的矩阵,其中像素212、像素214和像素252被分别标记。
图像渲染器102可以使用类似或不同的方法来确定屏幕204的每个像素的光照条件数据(例如,路径追踪),关于像素212和光传输路径220描述了其示例。例如,类似或不同的方法可以用于涉及光传输路径222的像素214和/或涉及光传输路径224的像素252。为了确定像素212的至少一些光照条件数据(例如,对应于图1的图像114和/或图像116的像素),图像渲染器102可以使用光线投射仪104来确定光传输路径,所述光传输路径通过虚拟环境200的一个或更多个光线追踪。光传输路径220是用于像素212的光线追踪光传输路径之一的示例。在每个像素仅使用一个样本来渲染虚拟环境200的状态的实施例中,诸如生成图像114或图像116,光传输路径220可以是针对该状态投射的唯一路径和/或用于计算像素212的光照条件数据的唯一路径。在其他情况下,可以为像素投射任意数量的光传输路径,并进行组合(例如,使用本文所述的共享光照条件数据)来确定光照条件数据。
可以使用一个或更多个光传输路径来采样像素212的光照条件。为此,光线投射仪104可以通过屏幕204的像素212投射任意数量的光线(例如,一条或更多条光线),诸如光传输路径220的光线220A,以采样像素212的光照条件。作为示例,这些光线可以称为相机光线、眼睛光线、入射光线、视图向量或主光线。光线投射仪104可以使用相机光线来确定虚拟环境200中的可见点。例如,光线投射仪104可以使用光线220A来确定表面208上或附近的点216A。这可以包括光线投射仪104,所述光线投射仪104将点216A作为光线220A与表面208相互作用(例如,相交)的位置(否则,点216A可以至少部分地基于该位置)。尽管光线202A与表面208相互作用,但是在投射多于一个光线的示例中,并非所有光线都可以与表面相互作用。
从图像渲染器102使用通过像素212投射光线确定的虚拟环境200中的每个点,可以投射任意数量的光线(例如,一个或更多个光线),诸如光线220B,以采样点216A处光线220A的光照贡献(例如,入射辐射)。图像渲染器102可以使用随机采样策略(诸如蒙特卡洛(Monte Carlo)或准蒙特卡洛采样策略)来确定光线220B的方向。在一些示例中,采样策略和方向至少部分地基于在点216A处表面208的法线。例如,光线投射仪104可以至少部分地基于在点216A处的表面208的法线来定义点216A的正态分布函数(NDF)范围。光线投射仪104可以使用NDF和光线220A(以及在一些示例中与点216A相关联的表面208的粗糙度值)来定义双向反射率分布函数(BRDF)。光线投射仪104可对BRDF波瓣230进行采样(例如,随机地使用BRDF或使用另一采样策略)以确定光线220B。光线投射仪104可以使用光线220B来确定表面210上或附近的点216B。与点216A类似,这可以包括光线投射仪104,所述光线投射仪104将点216B确定为光线220B与表面210相互作用(例如,相交)的位置。尽管在图2中光线220B与表面210相互作用,但是在投射多于一条光线的示例中,并非所有光线都可以与表面210相互作用。例如,光线可以与不同的表面或物体相互作用,可以不与任意表面或物体相互作用,或者可以与光源相互作用,诸如源218。
类似于在216A处的相互作用,光线投射仪104可以从点216B投射任意数量的光线(诸如,一条或更多条光线),以采样在点216B(例如,使用随机采样)处的光线220B的光照贡献(例如,入射辐射)。该过程可以针对每个相互作用继续进行,直到形成光传输路径220。作为示例,除初级光线之外的光传输路径的光线可以被称为反射光线或次级光线。在光传输路径220中,光线220B、光线220C、光线220D和光线220E是次级光线的示例。通常,光传输路径可以包括至少一条次级光线。此外,光传输路径通常可以包括与诸如光源218之类(例如,在光传输路径的端点处)光源的相互作用。例如,每个光传输路径220、222和224可以与诸如光源218之类的光源相互作用。在这样的示例中,光传输路径220、222和224可以包括一个或更多个附加的次级光线(未示出),以到达光源218。
光照确定器106可以使用一个或更多个光传输路径来确定像素212光照条件的光线追踪样本。例如,光照确定器106可以通过组合(例如,平均)从与虚拟环境200的各种相互作用中得出的光照贡献数据,来确定像素212的至少一些光照条件数据。光照确定器106可以类似地确定屏幕204的每个像素或区域的至少一些光照条件数据(例如,使用任意数量的初级光线和次级光线)。例如,光照确定器106可以通过将来自沿光传输路径的任意数量相互作用的光照贡献数据应用于渲染方程,来计算像素的光照条件数据。
在各个示例中,图像渲染器102使用光线投射仪104来实现路径追踪,以确定光照条件数据。使用路径追踪,光线投射仪104可以生成从可见表面点到一个或更多个光源的光传输路径(例如,一串光线)。在生成光传输路径(例如,光传输路径220)时,可以递归地追踪光线,直到命中光源(例如,光源218)为止。光照确定器106可以沿每个光传输路径(例如,在其相互作用或其点处)递归地评估渲染方程。可以由一个或更多个光源和BRDF来控制光线的生成。递归深度可以例如由沿着光线计算的辐射量来控制。
使用光传输路径220的路径追踪方法(例如,对于像素212),光线220A可以穿过像素212进行投射。在点216A处,光照确定器106可以使用蒙特卡洛积分或其他基于积分的采样技术来评估渲染方程式。为了近似入射辐射,可以将一条或更多条次级光线(诸如光线220B)追踪到随机或伪随机选择的样本方向上。例如,可以至少部分地基于BRDF、一个或更多个光源和/或入射辐射的余弦加权,来确定样本方向。例如,只要确定存在沿着光线传输的辐射量的阈值量,就可以递归应用此方法。递归可能会由于各种可能的原因而停止,例如,如果命中光源,达到了最大深度/最小辐射度,光线离开场景/击中背景等。
图像渲染器102可以使用每个像素的光照条件数据来渲染图像114和/或116的一个或更多个对应像素。通常,确定器106针对像素相对于一个或多个光源计算的照明条件的准确度可以随着用于对照明条件进行采样的主要和/或次光线的数量而增加。然而,用于确定光照条件的计算资源也可能随着光线的数量而增加,这可能会增加渲染时间。
为了节省计算资源并减少渲染时间,用于采样光照条件的光线数可能低于使渲染质量收敛到理想光线追踪结果所需的光线数量。如图像114中所示,这可导致光照确定器106生成有噪声的光照条件数据。图像114是示例,在所述图像中屏幕204每个像素的光照条件基于虚拟环境200状态的单个光线追踪样本(例如,每个入射光线包括单个初级光线和单个次级光线)。可以进一步处理有噪声的光照条件数据,以减少或消除噪声并提供高质量的渲染图像。相反,使用常规方法(所述方法对每个像素采用虚拟环境200的状态的单个光线追踪样本)进行路径追踪来生成图像114,将导致光照条件数据中的噪声显著增加,并且渲染质量对于大多数使用情况而言会降低(带有明显的噪声或视觉伪像)。这样,传统方法通常对于每个像素需要数百个样本或更多样本。
根据本公开的各方面,例如,通过组合来自次级光线(例如,一个或更多个光传输路径)不同相互作用的光照贡献数据,可以减少图像渲染器102为虚拟环境准确渲染分段照明所需的样本数量,所述次级光线用于在计算像素的光照条件数据时考虑相互作用中的辐射。例如,当考虑沿光传输路径的相互作用的光照贡献以计算光照条件数据,而不是仅利用直接归因于所述相互作用的光照贡献数据时,光照确定器106可以基于至少一个对应于不同入射子光线的相互作用来计算所述相互作用的复合光照贡献,所述相互作用是光照贡献的结合。该方法可用于在用于计算像素光照条件数据的一个或更多个相互作用中增加有效样本计数。例如,另一种相互作用可以与所述相互作用足够相似,从而所述相互作用的光照贡献数据可以用作另一相互作用样本的近似值。
在各个示例中,光传输路径的光照贡献可以在空间和/或时间相互作用之间共享。图2主要用于描述空间共享光照贡献的情况,而图3主要用于描述时间共享光照贡献的示例(除了空间共享或代替空间共享)。空间共享光照贡献数据可以指与虚拟环境的公共时间和/或状态相对应的共享光照贡献数据,以确定该时间和/或状态的光照条件数据。临时共享光照贡献数据可以指与虚拟环境的不同时间和/或状态相对应的共享光照贡献数据,以确定虚拟环境的时间和/或状态的光照条件数据(例如,根据一个或更多个先前状态和/或帧)。例如,每个状态可以与虚拟环境的相应时间和相应渲染配置相关联。时间可以指游戏、视频和/或渲染帧的渲染序列和/或回放序列中的时间。所述渲染配置可以指虚拟环境中影响虚拟环境空间渲染对象(例如,所有可见对象)的渲染属性集合。例如,当每个状态的渲染属性相同时,两个状态可能具有相同的渲染配置。
图2显示了相互作用的示例,其中所述光照确定器106可以空间共享光照贡献数据,以计算用于至少一个相互作用的复合光照贡献数据。如图所示,所述虚拟环境包括区域240B、240B、240C、240D和240E,每个区域可以对应于虚拟环境200的区域(例如,表面区域)。用于被示为落入同一区域内的相互作用的光照贡献数据样本可以彼此组合以计算复合光照贡献数据,所述复合光照贡献数据用于计算对应的光传输路径的光贡献数据中所有相互作用。例如,可以将用于光传输路径220的点216B相互作用的光照贡献数据与用于光传输路径222的点230B相互作用的光照贡献数据进行组合,所述光照贡献数据可以用于计算用于光传输路径222和/或光传输路径220的光照条件数据(例如,在屏幕204的像素处)。尽管所述示例在两个相互作用和两个光传输路径之间共享光照贡献数据,但是可以共享对应于任意数量光传输路径任意数量的相互作用。
如图2所示,相互作用可以共享光照贡献数据,所述光照贡献数据在其相应的光传输路径中具有相同反弹次数或不同反弹次数的光照贡献数据。例如,点216B和230B都分别对应于光传输路径220和222的第二反弹。然而,区域240B包括对应于光传输路径222的第三反弹点230C和对应于光传输路径224的第四反弹的点232B。
现在参考图3,图3是示出根据本公开一些实施例的时间共享光传输路径的光照贡献的示例图。图3用于描述相互作用的示例,对于所述相互作用,光照确定器106可以时间共享光照贡献数据以计算用于相互作用的复合光照贡献数据。图3可以与相对于虚拟环境200的虚拟环境200的后续状态和/或时间相对应。例如,图3可以对应于图像渲染器102在与图2相对应的帧之后(例如,紧随其后)渲染的帧。图像渲染器102可以渲染与图2的状态相似的状态,所述状态可以包括生成任意数量的光传输路径,诸如光传输路径320、光传输路径322和光传输路径324。光传输路径320、322或324可以对应于与光传输路径220、222或224相同或不同的像素。
在渲染虚拟环境200时,用于沿光传输路径点的相互作用的光照贡献数据显示为落在图2和3的相同区域内,所述光照贡献数据可以彼此组合来计算针对所有交互的复合光照贡献数据,以计算对应的光传输路径的光照贡献数据。例如,可以将用于图3的光传输路径320的点316相互作用的光照贡献数据与用于图2的光传输路径220的点216B相互作和/或用于光传输路径222的点230B相互作用的光照贡献数据进行组合,其可以用于计算光传输路径322的光照条件数据。尽管所述示例在三个相互作用和三个光传输路径之间共享光照贡献数据,但是有任意数量的相互作用可以时间共享,对应于任意数量的光传输路径相互作用。类似于图2,可以另外从图3的一个或更多个空间共享样本计算复合光照条件数据。
图3还示出了区域340A、340B和340C,其可以类似于区域240A、240B、240C、240D和240E。然而,在图2中未示出区域340A、340B和340C,以指示在那些区域内图3的相互作用可能不与来自图2的光传输路径220、222和224的相互作用在时间上共享样本。然而,图3的那些相互作用可以在时间上与来自图2中未示出的其他光传输路径的相互作用共享样本。此外,相互作用可以使用来自虚拟环境200的任意数量的先前状态和/或帧的一个或更多个样本,可能是也可能不是连续的状态和/或帧。与利用空间样本类似,利用时间样本可以增加用于计算像素光照条件数据的每个相互作用的有效样本计数。确定是否在时间上不同的相互作用之间共享光照贡献数据(和/或在组合它们时权衡不同的光照贡献量),所述特性还可以基于虚拟环境状态之间的运动量和/或状态之间的时间或帧。
为确保与相互作用共享的光照贡献与所述相互作用相关(例如,与所述相互作用足够相似,以便该相互作用的光照贡献数据为其他相互作用的样本的近似值),所述光照贡献管理器108可以基于相互作用特性之间的相似性来进行共享。作为示例,可以基于相互作用相应表面点的相对位置,来共享针对不同相互作用的光照贡献。例如,可以共享在所述虚拟环境的定义区域内用于相互作用的光照贡献。在图2和图3中,这些定义的区域可以对应于图2的区域240A、240B、240C、240D和240E以及图3的区域340A、340B和340C。在一些实施例中,可以共享同一区域内的相互作用,但不会共享不在同一区域内的相互作用。但是,在一些示例中,可能基于其他因素不会共享同一区域内的相互作用,或者所述区域可能不会基于相对的相互作用位置。
光照贡献管理器108可以使用各种方法来确定和/或定义区域。在一些示例中,可以由用于渲染虚拟环境200的纹理映射(例如,光照贴图)的纹理纹素来定义所述区域。在纹理纹素的区域内的相互作用可以累加到纹理纹素,并计算所述复合光照贡献。例如,区域240A的大小和/或形状可以对应于纹理纹素,并且与点230B、216B和316相关联的每个相互作用可以在纹理纹素内,因此共享光照条件数据(那些样本的权重可以基于本文所述的一个或更多个特性)。
共享特性的其他示例可以基于与相互作用的入射次级光线相关联的命中距离、直至相互作用的光传输路径长度、反弹到相互作用的数量,和/或与入射次级光线相对应次级的路径足迹近似值来定义和/或确定是否共享相互作用的光照贡献。当那些特性中的一个或更多个的值在彼此的一个或更多个阈值之内时,可以共享相应相互作用的光照条件。
作为示例,可以基于在对应点216B和230B处的次级光线220B和222A的相应路径足迹近似值的面积具有相似的大小(例如,在彼此的阈值大小之内)来共享点216B、230B和/或316的光照贡献。例如,图3示出了在具有区域362的点316处的相互作用的路径足迹近似值。可以使用各种方法来确定路径足迹近似值,诸如路径扰动方法或光线微分。点216B和230B的区域可以类似于区域362(例如,在阈值量之内),从而导致光照贡献被共享。然而,基于相关联的入射光线的路径足迹近似值足够小于或大于点216B、230B或316的路径足迹近似值(例如,具有超出阈值范围的区域),落在区域240A内另一个点的光照贡献数据可能不会与点216B、230B或316共享。
在各种示例中,一个或更多个特性可以定义所述虚拟环境已定义区域的大小,在虚拟区域中可以共享用于相互作用的光照贡献。例如,可使用与相互作用的入射次级光线相关联的所述命中距离、至相互作用的光传输路径的长度、直至相互作用的反弹的数量和/或对应于入射次级光线的路径足迹近似值的区域来选择和/或计算经定义的区域的大小。通过基于特性确定用于共享光照贡献的区域的大小,对于使用光照贡献值的粗略近似是合适的相互作用,区域可以更大一些,在这种情况下,诸如考虑到相互作用距离视点相机越远则模糊度增加。
定义了与相互作用共享什么的区域的大小可以随着以下各项中的一个或更多个增加:与相互作用的入射次级光线相关联的命中距离、直至相互作用的光传输路径的长度、直至相互作用的反弹的数量和/或对应于入射次级光线的路径足迹近似值的区域。
在纹理映射被实现为多级渐远纹理的示例中,所述大小可以由光照贡献管理器108基于一个或更多个特性在多级渐远纹理中选择一个级别以及在所选级别处的纹理纹素来定义。***可以为每个相互作用选择一个级别,并且与所选级别的相互作用的光照贡献可以具有共享的光照贡献,其中它们各自对应于该级别处的纹理纹素。光照贡献管理器108选择的级别可以定义相互作用区域的大小和/或形状,所述区域的大小和/或形状定义哪些相互作用可以共享光照贡献数据。此外,光照贡献管理器108可以为每个相互作用选择级别。该选择可以基于本文所述的示例,并使用各种相互作用特性中的任意一种(例如,路径足迹区域、命中距离、反弹次数等)。例如,当光照贡献管理器108都为相互作用选择相同级别,并且相互作用落入所述级别的相同纹理纹素内时,光照贡献管理器108可以在相互作用之间共享光照贡献数据。
现在参考图4,图4是示出根据本公开一些实施例的可用于定义共享光照贡献的区域的多级渐远纹理400和纹理纹素的示例图。使用金字塔402图示了多级渐远纹理400,所述金字塔402可以表示同一图像的渐进较低分辨率表示的级别402A、402B和402C。尽管图4示出了三个级别,但是多级渐远纹理400可以包括任意数量的级别。另外,在一些示例中,可以不使用多级渐远纹理,但是可以类似于多级渐远纹理的贴图像素(例如,如上所述)来使用纹理映射的贴图像素。
如图所示,每个级别402A、402B和402C包括具有更多和更小纹理纹素的具有更高分辨率级别的多个纹理纹素,所述纹理纹素可以以网格状模式排列。在各个实施例中,可以至少部分地通过一个或更多个纹理纹素来定义用于共享光照贡献数据的区域。例如,每个纹理纹素可以对应于经定义的区域。作为示例,图2的区域240A可以由图4的纹理纹素404定义,并且具有与纹理纹素404相同的大小和/或形状,或者基于纹理纹素404的大小和/或形状。因此,在图2中点216B和230B的位置可以落在纹理纹素404内。在一些示例中,当光线投射仪104确定相互作用时,光照贡献管理器108可以确定与相互作用相对应的纹理纹素,并且将相互作用的光照贡献数据存储到纹理纹素。类似地,可以将其他相互作用的光照贡献数据存储到纹理纹素。例如,来自不同相互作用的光照贡献数据可以被累加到纹理纹素,诸如计算并存储组合的光照贡献数据到纹理纹素。
在一些实施例中,光照贡献管理器108至少部分地基于相互作用的一个或更多个特性来选择用于相互作用的纹理纹素。例如,光照贡献管理器108可以基于一个或更多个特性来选择多级渐远纹理的级别,并且使用纹理纹素来定义用于相互作用的区域,相互作用落入该级别所述纹理纹素中。如果光照贡献管理器108选择用于相互作用的级别402A,则如果相互作用落入纹理纹素404A内,则光照贡献管理器108可以选择所述级别的纹理纹素404A。然而,如果光照贡献管理器108替代地选择用于相互作用的级别402B,则光照贡献管理器108可以选择纹理纹素404,所述纹理纹素在等级402A中覆盖纹理纹素404A、纹理纹素404B、纹理纹素404C和纹理纹素404D的位置。
因此,纹理纹素404可以更大,并且基于相互作用的特性考虑了额外的样本。可用于定义区域大小(例如,选择多级渐远纹理400的级别)特性的示例包括与相互作用的入射次级光线相关联的命中距离、直至相互作用的光传输路径的长度、直至相互作用的反弹的数量和/或对应于入射次级光线的路径足迹近似值的区域。当这些特性中的一个或更多个值彼此在一个或更多个阈值之内(例如,在相同阈值范围内)时,可以共享相应相互作用的光照贡献。例如,用于定义与相互作用共享的区域多级渐远纹理的级别可以随着以下各项中的一个或更多个增加和减少:与相互作用的入射次级光线相关联的命中距离、直至相互作用的光传输路径的长度、直至相互作用的反弹的数量和/或对应于入射次级光线的路径足迹近似值的区域。
为了在相互作用之间共享光照贡献数据,光照贡献管理器108可以将光照贡献数据存储在高速缓存中。例如,高速缓存可以是存储空间辐照度数据的辐照度高速缓存。可以使用任意数量的高速缓存,并且可以对应于在相互作用之间共享光照贡献数据的区域。每个区域可以具有对应的高速缓存。作为示例,高速缓存可以是纹理纹素空间光照贴图集,也可以是三维(3D)空间散列,或者两者的组合。在对应于纹理纹素区域的示例中,高速缓存可以包括或对应于纹理纹素,如上文所述。纹理纹素是用于相互作用的本地数据存储或高速缓存的示例,因为它对应于虚拟环境中相互作用的位置。
仅通过示例方式描述了光照确定器106如何使用共享光照贡献数据来计算像素的光照条件数据的一些示例,并且可以使用其他合适的方法。光照确定器106可以使用光传输求解器,所述光传输求解器采用一个或更多个高速缓存来在空间和时间上平滑所述解。例如,光传输求解器可以是雅克比(Jacobi)辐射度求解器,并且可以使用屏幕空间路径采样器(例如,屏幕空间路径采样器蒙特卡洛)来更新每一帧的所述解,同时从一个或多个以前的框架中重用该解。
在任意合适的示例中,在场景相互作用之间共享光照贡献数据可以形成渲染方程的离散化有限元解,其可以将其表示为帧t处的解向量B。在帧t+1处,光照确定器106可以使用等式(1)来计算新的解向量B':
B`=TB+E (1)
其中,E是各种表面元素的发射,并且T是常用传输算子。
在各个实施例中,光照确定器106可通过对从相机202开始的路径进行采样,并且通过光线投射仪104在与虚拟环境200的每次相互作用时将它们散射(如常规路径追踪中所执行的)来计算帧的解向量。但是,与常规路径追踪不同,光照贡献管理器108可以使用每个散射事件来更新表面命中点(例如,点216B、230B等)处的本地高速缓存条目,将新的散射粒子视为本地传输算子T的单样本无偏估计量。因此,如果沿着光传输路径220的第i个顶点撞击区域240A,并且顶点i+1击中区域240D,则本质上,光照确定器106可以将它们之间的线段视为两个表面元素(p,q)之间形状因子F_pq的样本,并且光线投射仪104可以使用先前的帧解B_q来更新B'_p。
使用这种方法,光照确定器106可以使用光传输求解器来在空间上(在精细元素的范围内)和时间上(重用来自一个或更多个先前帧的信息)平滑所述解。为了限制时间范围,光照确定器106可以使用修改的指数平均法或其他算法(例如,移动平均算法)将新解向量与先前向量求平均。
修改后的指数平均法可以采用公式(2):
S_t=alpha*Y_t+(1-alpha)*S_{t-1} (2)
其中,S_t代表时间t的平均值,Y_t代表新样本。
然后,可以使用等式(3)的经修改的权重将采用等式(2)的指数平均法修改为执行简单的移动平均数:
alpha_t=1/t (3)
如果光照是静态的,则使用这样的公式将导致规则的(并且是最佳的)蒙特卡洛平均值。但是,在动态环境中,对象会移动并且在每一帧光照解都会发生变化,这种方法可能无法收敛到真正的解,并且可能会产生严重的重影。为了减少或消除重影,同时保留一些时间平均效应,可以使用公式(4)的经修改的权重将采用公式(2)的指数平均法修改为执行简单的运行平均:
alpha_t=alpha*sqrt(1/t) (4)
其中,alpha是基值,例如在[0.7或1)的范围内。如果虚拟环境200中的光源改变,导致对解向量的整体修改,则光照确定器106可以重置时间t。
在计算像素的光照条件数据时,光照确定器106可以可选地使用光照重投影仪110。如本文所述,当与共享光照贡献数据结合使用时,这可能导致图像116,而不是图像114。在计算表示光照条件的数据时,可由光照确定器106使用光照重投影仪110来重投影光传输路径的光照贡献。例如,代替简单地在每个可见表面上确定组合的光照贡献数据(例如,通过查找高速缓存),光照确定器106可以使用该光照重投影仪110在先前采样的光传输路径的第二个命中处获得并应用光照贡献数据。光照确定器106可以使用此方法来有效地导致在有限元求解器和普通蒙特卡罗路径追踪器之间使用混合-基本上取反弹2,...,N的有限元解,并第一次反弹使用原始的蒙特卡洛采样(或其他类型的采样)。这可能会导致更好地定义第一次反弹的光照条件数据,因为它不会像有限元解那样平滑。
在一些实施例中,光照确定器106可以在不共享光照贡献数据的情况下,或者更一般地,当使用光线追踪(诸如路径追踪)来计算像素的光照条件数据时使用光照重投影仪110。因此,上述示例可以更一般地描述为:当使用光传输求解器时,光照确定器106可不是简单地确定每个可见表面处的光照贡献数据,而是使用光照重投影仪110在第二命中处沿先前采样的光传输路径获得并应用光照贡献数据(复合或其他方式)。图5示出了根据本公开一些实施例的重投影光传输路径的光照贡献的示例图。为了说明上面的示例,光照确定器106可不是简单地在表面206的点530处确定光照贡献数据,而是使用光照投影仪110在第二命中处沿着先前采样的光传输路径获得并应用光照贡献数据(复合或其他方式),其示例包括在点520和点522处的光照贡献数据,如图5中的箭头524A和524B所示。
光照重投影仪110可以使用滤波器来重投影光照贡献数据,所述滤波器诸如双向滤波器,在屏幕空间中应用于所述像素的光照条件数据。如图5所示,考虑到所涉及的各种(无穷小)表面元素的物理配置,应用滤波器可以重投影来自相邻像素的样本,所述样本落在滤镜足迹范围内。为此,光照重投影仪110可以将每个像素的重投影权重乘以滤波器权重。现在参考图6,图6示出了根据本公开一些实施例的应用图像滤波器(例如,空间滤波器)以重投影光传输路径的光照贡献的示例图。所述图像滤波器具有覆盖区(footprint)602,光照重投影仪110可以针对所述覆盖区602内的每个像素进行过滤,如图6所示(除非丢弃像素的渲染数据)。这可能涉及将像素的渲染数据与图像滤波器的滤波核心进行卷积,其中可以围绕每个像素计算加权和。
对于每个像素,渲染数据可包括该位置或位置,像素的次光线(例如第一个次光线)所见的p_h,该位置处的法线N_h,以及该位置的光贡献数据或颜色C_h。为了应用滤波器,可以直接从高速缓存中获取颜色。当应用滤波器时,光照重投影仪110可以使用相邻像素的二次反弹的位置、法线和光照贡献数据来计算每个像素的重投影权重。对于每个相邻像素,可以通过计算几何项乘以该点处的光照贡献,然后将结果合并为加权总和,来计算像素的重投影权重,所述几何项是可见点和相邻像素命中点(例如,由图5中的箭头524A和524B指示)位置之间的几何项。该方法可以捕获像素也看到了由相邻像素的次光线看到的多少光。该方法可以捕获像素(例如,在点530处)也看到了由相邻像素的次级光线(例如,在点520和522处)看到的多少光。例如,可以使用等式(5)来计算与图5中的点520和箭头524A相对应的几何项G:
G=(N1·N2)/(r*r) (5)
其中,N1是点530处的法线,N2是点520处的法线,r是这些点之间的距离。
在一些示例中,将图像滤波器应用为滑动窗口滤波器,并且覆盖区602是滑动窗口的示例。此外,图像滤波器可以是跨步滤波器。当对每个像素进行滤波而不是考虑直接相邻时,使用跨步滤波器可以应用跨步,以便在像素之间引入间隔,如图6中的间隔点所示。例如,跨步可以是一个或两个像素。滤波过程可以等效于对噪声的低通滤波。通过跨步滤波器,可以修改低通滤波的频率,从而导致图像中出现光钳位,所述光钳位可能会出现斑点,并以较高的频率散布开来,从而更悦目。合适的跨步空间滤波器的一个示例是跨步框滤波器。作为非限制性示例,跨步空间滤波器可以每个像素使用五到十个抽头。
现在参考图7,方法700的每个方框以及本文所述的其他方法包括可以使用硬件、固件和/或软件的任何组合来执行的计算过程。例如,各种功能可以由执行存储在内存中的指令的处理器来实现。方法也可以具体化为存储在计算机存储介质上的计算机可用指令。仅举几例,方法可以由独立应用程序、服务或托管服务(独立地或者与另一个托管服务结合地)或者另一个产品的插件提供。另外,通过示例的方式,关于渲染***100(图1)描述了这些方法。然而,此外或者可替代地,这些方法可以由任意一种***或者任意***组合——包括但不限于本文描述的那些***执行。
图7是示出了根据本公开一些实施例的使用基于次级光线的一个或更多个特性的共享光线贡献来渲染虚拟环境的方法700的流程图。在框B702处,方法700包括在第一表面点处确定第一次级光线的第一光照贡献。例如,光照确定器106可以在虚拟环境200的点216B处确定光传输路径220的光线220B的光照贡献。
在框B704处,方法700包括在第二表面点处确定第二次级光线的第二光照贡献。例如,光照确定器106可以在虚拟环境200的点230B处确定光传输路径222的光线222A的光照贡献。
在框B706处,方法700包括从所述第一和第二光照贡献来计算复合光照贡献。例如,光照确定器106可以基于光线220B和光线222A的一个或更多个特性,根据第一光照贡献和第二光照贡献来计算光传输路径220的复合光照贡献。
在框B708处,方法700包括使用所述复合光照贡献来生成渲染帧。例如,图像渲染器102可以使用复合光照贡献来生成与图像114和/或图像116相对应的渲染帧。
图8是示出根据本公开一些实施例的使用基于虚拟环境中与次级光线的相互作用相对应的区域的共享光线贡献来渲染虚拟环境的方法800的流程图。
在B802处,方法800包括在虚拟环境表面点处计算光传输路径次级光线的光照贡献。例如,在虚拟环境200的表面点处,光照确定器106可以计算各种次级光线中任意一个光照贡献,所述次级光线属于图2的光传输路径220、222或224,图3的光传输路径320、322和324和/或在那些图中未示出的其他光传输路径。
在B804处,方法800包括存储所述光照贡献组,其中组对应于虚拟环境中的相应区域。例如,光照贡献管理器108可以基于与对应的区域相关联的光照贡献的一个或更多个特性来存储与区域240A相对应的第一组光照贡献和与区域240D相对应的第二组光照贡献。
在B806处,方法800包括计算来自所述光照贡献组的像素的光照条件。例如,光照确定器106可以从光照贡献组中计算与光传输路径相关联的屏幕204像素的光照条件。
图9是示出了根据本公开一些实施例的用于基于与次级光线的相互作用相对应的本地数据存储使用共享光照贡献来渲染虚拟环境的方法700的流程图。
在框B902处,方法900包括在次级光线的相互作用下散射光传输路径。例如,光线投射仪104可以在次级光线(诸如光线220B、222A、220C或220D)的相互作用下散射虚拟环境200中的光传输路径220、222和224。光线投射仪104还可以从虚拟环境200观看者角度来采样光传输路径,例如通过相机202。此外,光线投射仪104可以检测次级光线的相互作用,并且在检测到相互作用时散射光传输路径。
在框B904处,方法900包括使用多个所述相互作用的光照贡献数据来更新本地数据存储。例如,光照贡献管理器108可以基于所述散射,使用基于交互作用的位置的多个交互作用的光照贡献数据,来更新位于纹理像素处的局部缓存,所述纹理像素与区域240A相对应(例如,在纹理映射中)。
在框B906处,方法900包括从所述本地数据存储中的光照贡献数据来确定复合光照贡献。例如,光照确定器106可以确定光传输路径220的复合光照贡献,所述复合光照贡献包括来自本地数据存储器中的光照贡献数据的多个相互作用中的一个相互作用。
在框B908处,方法900包括使用所述复合光照贡献来生成渲染帧。例如,图像渲染器102可以使用复合光照贡献来生成与图像114和/或图像116相对应的渲染帧。
图10为适合用于实现本公开一些实施例的示例计算设备1000的框图。计算设备1000可以包括直接或间接耦合下列设备的总线1002:存储器1004,一个或更多个中央处理单元(CPU)1006,一个或更多个图形处理单元(GPU)1008,通信接口1010,输入/输出(I/O)端口1012,输入/输出组件1014,电源1016,以及一个或更多个呈现组件1018(例如一个或更多个显示器)。
尽管图10的各个框被示为经由具有线路的总线1002连接,但是这并不意图是限制性的,并且仅仅为了清楚起见。例如,在一些实施例中,诸如显示设备之类的呈现组件1018可以被认为是I/O组件1014(例如如果显示器为触摸屏)。作为另一个示例,CPU 1006和/或GPU 1008可以包括存储器(例如,存储器1004可以表示除了GPU 1008、CPU 1006和/或其他组件的内存以外的贮存设备)。换言之,图10的计算设备仅仅是说明性的。在诸如“工作站”、“服务器”、“膝上型电脑”、“台式机”、“平板电脑”、“客户端设备”、“移动设备”、“手持式设备”、“游戏控制台”、“电子控制单元(ECU)”、“虚拟现实***”和/或其他设备或***类型之类的类别之间不进行区分,因为所有这些都被考虑在图10的计算设备的范围内。
总线1002可以表示一条或更多条总线,例如地址总线、数据总线、控制总线或者其组合。总线1002可以包括一种或更多种总线类型,例如行业标准架构(ISA)总线、扩展行业标准架构(EISA)总线、视频电子标准协会(VESA)总线、***组件互连(PCI)总线、***组件互连快速(PCIe)总线,和/或另一种类型的总线。
存储器1004可以包括各种各样的计算机可读介质中的任何介质。计算机可读介质可以是可以由计算设备1000访问的任何可用介质。计算机可读介质可以包括易失性和非易失性介质以及可移除和不可移除介质。举例而言且非限制性地,计算机可读介质可以包括计算机存储介质和通信介质。
计算机存储介质可以包括易失性和非易失性介质和/或可移除和不可移除介质,其以用于存储诸如计算机可读指令、数据结构、程序模块和/或其他数据类型之类的信息的任何方法或技术实现。例如,存储器1004可以存储计算机可读指令(例如其表示一个或更多个程序和/或一个或更多个程序元件,例如操作***)。计算机存储介质可以包括但不限于RAM、ROM、EEPROM、闪存或者其他存储技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备,或者可以用来存储期望的信息且可以由计算设备1000访问的任何其他介质。当在本文使用时,计算机存储介质并不包括信号本身。
计算机存储介质可以在诸如载波之类的调制数据信号或其他传输机制中体现计算机可读指令、数据结构、程序模块和/或其他数据类型,并且包括任何信息输送介质。术语“调制数据信号”可以指这样的信号,该信号使它的特性中的一个或更多个以这样的将信息编码到该信号中的方式设置或改变。举例而言且非限制性地,计算机存储介质可以包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声音、RF、红外和其他无线介质之类的无线介质。任何以上所述的组合也应当包含在计算机可读介质的范围内。
一个或更多个CPU 1006可以被配置为执行计算机可读指令以便控制计算设备1000的一个或更多个组件执行本文描述的方法和/或过程中的一个或更多个。一个或更多个CPU 1006中的每一个可以包括能够同时处理大量软件线程的一个或更多个核(例如一个、两个、四个、八个、二十八个、七十二个等等)。一个或更多个CPU 1006可以包括任何类型的处理器,并且可以包括不同类型的处理器,这取决于实现的计算设备1000的类型(例如具有用于移动设备的较少核的处理器以及具有用于服务器的更多核的处理器)。例如,取决于计算设备1000的类型,处理器可以是使用精简指令集计算(RISC)实现的先进RISC机器(ARM)处理器或者使用复杂指令集计算(CISC)实现的x86处理器。除了一个或更多个微处理器或者诸如数学协处理器之类的补充协处理器之外,计算设备1000还可以包括一个或更多个CPU 1006。
一个或更多个GPU 1008可以由计算设备1000用来渲染图形(例如3D图形)。一个或更多个GPU 1008可以包括能够同时处理数百或数千个软件线程的数百或数千个核。一个或更多个GPU 1008可以响应于渲染命令(例如经由主机接口接收的来自一个或更多个CPU1006的渲染命令)而生成用于输出图像的像素数据。一个或更多个GPU 1008可以包括诸如显示内存之类的用于存储像素数据的图形内存。显示内存可以作为存储器1004的部分而被包括。一个或更多个GPU 1008可以包括(例如经由链路)并行操作的两个或更多GPU。当组合在一起时,每个GPU 1008可以生成用于输出图像的不同部分或者用于不同输出图像的像素数据(例如,第一GPU用于第一图像,第二GPU用于第二图像)。每个GPU可以包括它自己的内存,或者可以与其他GPU共享内存。
通信接口1010可以包括一个或更多个接收器、发送器和/或收发器,其使得计算设备1000能够经由电子通信网络与其他计算设备通信,包括有线和/或无线通信。通信接口1010可以包括使能通过若干不同网络中的任何网络进行通信的组件和功能,所述网络例如无线网络(例如Wi-Fi、Z波、蓝牙、蓝牙LE、ZigBee等等)、有线网络(例如通过以太网通信)、低功率广域网(例如LoRaWAN、SigFox等等)和/或互联网。
I/O端口1012可以使得计算设备1000能够逻辑地耦合到包括I/O组件1014、一个或更多个呈现组件1018和/或其他组件在内的其他设备,其中一些可以内置到(例如集成到)计算设备1000中。说明性I/O组件1014包括麦克风、鼠标、键盘、操纵杆、游戏垫、游戏控制器、碟形卫星天线、扫描仪、打印机、无线设备等等。I/O组件1014可以提供处理用户生成的空中手势、语音或其他生理输入的自然用户接口(NUI)。在一些实例中,输入可以传输至适当的网络元件以便进一步处理。NUI可以实现语音识别、手写笔识别、面部识别、生物特征识别、屏幕上和邻近屏幕的手势识别、空中手势、头部和眼睛跟踪以及与计算设备1000的显示器关联的触摸识别(如下文更详细地描述的)的任意组合。计算设备1000可以包括诸如立体照相机***之类的深度照相机、红外照相机***、RGB照相机***、触摸屏技术以及这些的组合,以用于手势检测和识别。此外,计算设备1000可以包括使能运动检测的加速度计或陀螺仪(例如作为惯性测量单元(IMU)的部分)。在一些示例中,加速度计或陀螺仪的输出可以由计算设备1000用来渲染沉浸式增强现实或者虚拟现实。
电源1016可以包括硬接线电源、电池电源或者其组合。电源1016可以向计算设备1000供电以使得计算设备1000的组件能够操作。
一个或更多个呈现组件1018可以包括显示器(例如监视器、触摸屏、电视屏幕、平视显示器(HUD)、其他显示器类型或者其组合)、扬声器和/或其他呈现组件。一个或更多个呈现组件1018可以接收来自其他组件(例如一个或更多个GPU 1008、一个或更多个CPU1006等等)的数据,并且输出该数据(例如作为图像、视频、声音等等)。
本公开可以在由计算机或者诸如个人数字助理或其他手持式设备之类的其他机器执行的、包括诸如程序模块之类的计算机可执行指令的机器可使用指令或者计算机代码的一般背景下进行描述。通常,包括例程、程序、对象、组件、数据结构等等的程序模块指的是执行特定任务或者实现特定抽象数据类型的代码。本公开可以在各种各样的***配置中实践,这些配置包括手持式设备、消费电子器件、通用计算机、更专业的计算设备等等。本公开也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实践。
如在本文中使用的,“和/或”关于两个或更多元素的叙述应当解释为仅指一个元素或者元素组合。例如,“元素A、元素B和/或元素C”可以包括仅仅元素A,仅仅元素B,仅仅元素C,元素A和元素B,元素A和元素C,元素B和元素C,或者元素A、B和C。此外,“元素A或元素B中的至少一个”可以包括元素A中的至少一个,元素B中的至少一个,或者元素A中的至少一个和元素B中的至少一个。
这里详细地描述了本公开的主题以满足法定要求。然而,描述本身并非意在限制本公开的范围。相反地,本发明人已经设想到,要求保护的主题也可以以其他的方式具体化,以包括与本文中结合其他当前或未来技术描述的步骤不同的步骤或者相似的步骤的组合。而且,尽管术语“步骤”和/或“块”在本文中可以用来隐含采用的方法的不同元素,但是这些术语不应当被解释为暗示本文公开的各个步骤之中或之间的任何特定顺序,除非明确描述了各步骤的顺序。

Claims (20)

1.一种方法,包括:
确定第一次级光线对第一光传输路径的第一光照贡献,所述第一光照贡献是在虚拟环境的第一表面点处的第一辐射样本;
确定第二次级光线对第二光传输路径的第二光照贡献,所述第二光照贡献是在所述虚拟环境的第二表面点处的第二辐射样本;
至少基于所述第一次级光线和所述第二次级光线的一个或更多个特性,从所述第一辐射样本和所述第二辐射样本计算所述第一表面点处的辐射值;以及
使用在计算所述第一光传输路径的光照时的所述辐射值生成所述虚拟环境的渲染帧。
2.根据权利要求1所述的方法,其中,所述一个或更多个特性包括所述虚拟环境中所述第一表面点和所述第二表面点的位置,并且所述计算至少是基于确定所述位置的相似性。
3.根据权利要求1所述的方法,其中,所述一个或更多个特性包括所述第一次级光线和所述第二次级光线的命中距离。
4.根据权利要求1所述的方法,还包括:确定所述第一表面点落在与表面的纹理图相对应的纹理纹素内,所述表面包括所述第一表面点和所述第二表面点;以及确定所述第二表面点落在所述纹理纹素内,其中,所述辐射值是使用所述第一辐射样本和所述第二辐射样本基于所述第一表面点和所述第二表面点每一者均落在所述纹理纹素内而计算的。
5.根据权利要求1所述的方法,还包括:基于所述第一次级光线的所述一个或更多个特性,来选择多级渐远纹理的级别;以及基于所述第二次级光线的所述一个或更多个特性,来选择所述多级渐远纹理的所述级别,其中,所述辐射值是使用所述第一辐射样本和所述第二辐射样本基于针对所述第一次级光线和所述第二次级光线选择的所述级别而计算的。
6.根据权利要求1所述的方法,其中,在所述虚拟环境的通用状态下,投射所述第一光传输路径和所述第二光传输路径。
7.根据权利要求1所述的方法,其中,在所述虚拟环境的不同状态下,投射所述第一光传输路径和所述第二光传输路径,每个状态对应于所述虚拟环境的相应时间和相应渲染配置。
8.根据权利要求1所述的方法,其中,所述第一光传输路径通过虚拟屏幕的第一像素投射,并且所述方法还包括将在所述第一表面点处的所述辐射值重投影到所述虚拟屏幕中的第二像素,以确定所述第二像素的光照贡献数据。
9.根据权利要求1所述的方法,其中,所述辐射值表示辐照度。
10.一种方法,包括:计算次级光线对多个光传输路径的光照贡献,所述光照贡献是在虚拟环境的多个表面点处的多个辐射样本;存储所述光照贡献的多个组,其中,一组光照贡献对应于所述虚拟环境中的相应区域的辐射,并且基于与所述区域相关联的光照贡献的一个或多个特性,将与所述区域相关联的所述光照贡献存储在该组中;以及从所述光照贡献的所述多个组计算与所述多个光传输路径相关联的像素的光照。
11.根据权利要求10所述的方法,其中,所述光照贡献基于对应的表面点位于所述区域内而被存储在该组中。
12.根据权利要求10所述的方法,其中,所述多个光传输路径中的每一者包括不同的初级光线。
13.根据权利要求10所述的方法,其中,所基于的该组存储在与所述区域相对应的纹理纹素中。
14.根据权利要求10所述的方法,其中,从所述虚拟环境的多个状态来计算该组光照贡献。
15.根据权利要求10所述的方法,其中,所述光照的所述计算是通过光传输求解器进行的,所述光传输求解器使用所述光照贡献的所述多个组来在空间和时间上平滑所述光传输求解器的解。
16.一种方法,包括:使用一个或更多个图形处理单元(GPU)来渲染光线追踪图像,所述渲染包括从多个次级光线对多个光传输路径的光照贡献确定在虚拟环境中的光传输路径的相互作用处的辐射值,所述光照贡献是在所述虚拟环境中的多条次级光线的相互作用处的多个辐射样本。
17.根据权利要求16所述的方法,其中,所述渲染光线追踪图像还包括:使用所述辐射值作为所述相互作用的辐照度值,来确定用于所述光传输路径的光传输求解器的解。
18.根据权利要求16所述的方法,其中,所述多个光传输路径中的每一者对应于不同的初级光线。
19.根据权利要求16所述的方法,其中,所述渲染光线追踪图像还包括:使用所述辐射值作为所述相互作用的辐照度值,在空间和时间上平滑所述光传输路径的光传输求解器的解。
20.根据权利要求16所述的方法,其中,所述光传输路径对应于所述光线追踪图像的第一像素,并且所述渲染光线追踪图像还包括:将所述辐射值重投影到所述光线追踪图像的第二像素,以确定用于所述第二像素的光传输求解器的解。
CN201980061184.3A 2018-07-26 2019-07-26 在路径追踪中使用共享光照贡献进行相互作用的全局照明 Active CN112840378B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862703605P 2018-07-26 2018-07-26
US62/703,605 2018-07-26
PCT/US2019/043673 WO2020023880A1 (en) 2018-07-26 2019-07-26 Global illumination using shared lighting contributions for interactions in path tracing

Publications (2)

Publication Number Publication Date
CN112840378A CN112840378A (zh) 2021-05-25
CN112840378B true CN112840378B (zh) 2024-06-07

Family

ID=69177489

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980061184.3A Active CN112840378B (zh) 2018-07-26 2019-07-26 在路径追踪中使用共享光照贡献进行相互作用的全局照明

Country Status (4)

Country Link
US (2) US11244493B2 (zh)
EP (1) EP3827415A1 (zh)
CN (1) CN112840378B (zh)
WO (1) WO2020023880A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI767179B (zh) * 2019-01-24 2022-06-11 宏達國際電子股份有限公司 混合實境中偵測真實世界光源的方法、混合實境系統及記錄媒體
WO2021231965A1 (en) * 2020-05-15 2021-11-18 Nvidia Corporation Using directional radiance for interactions in path tracing
CN112562051B (zh) * 2020-11-30 2023-06-27 腾讯科技(深圳)有限公司 虚拟对象显示方法、装置、设备及存储介质
US11948246B2 (en) * 2021-04-05 2024-04-02 Nvidia Corporation Spatiotemporal resampling with decoupled shading and reuse
US11922556B2 (en) * 2021-04-12 2024-03-05 Nvidia Corporation Ray-traced light resampling using screen space visibility
CN115861516A (zh) * 2021-09-23 2023-03-28 华为技术有限公司 图形渲染方法和装置
WO2024110013A1 (en) * 2022-11-22 2024-05-30 Huawei Cloud Computing Technologies Co., Ltd. Rendering controller configured to render a three-dimensional scene and method for the same
CN116030180B (zh) * 2023-03-30 2023-06-09 北京渲光科技有限公司 辐照度缓存光照计算方法及装置、存储介质、计算机设备
CN116109756B (zh) * 2023-04-13 2023-06-30 腾讯科技(深圳)有限公司 光线追踪方法、装置、设备及存储介质
CN116612225B (zh) * 2023-07-18 2023-12-22 腾讯科技(深圳)有限公司 光照渲染方法、装置、设备和介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4748609A (en) * 1985-03-29 1988-05-31 Hitachi, Ltd. Method and apparatus for composite tracking servo system with track offset correction and rotary optical disc having at least one correction mark for correcting track offset
US6750862B1 (en) * 1998-04-27 2004-06-15 Nvidia Corporation Method and system for performing enhanced lighting functions for texture map data
CN104112034A (zh) * 2013-04-22 2014-10-22 辉达公司 用于实施路径空间滤波的***、方法和计算机程序产品
CN105144245A (zh) * 2013-04-24 2015-12-09 高通股份有限公司 用于扩增现实的辐射转移取样的设备和方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7133041B2 (en) 2000-02-25 2006-11-07 The Research Foundation Of State University Of New York Apparatus and method for volume processing and rendering
US7952583B2 (en) * 2000-06-19 2011-05-31 Mental Images Gmbh Quasi-monte carlo light transport simulation by efficient ray tracing
WO2005081683A2 (en) 2004-02-12 2005-09-09 Pixar Method and apparatus for multiresolution geometry caching based on ray differentials
US7098915B2 (en) * 2004-09-27 2006-08-29 Harris Corporation System and method for determining line-of-sight volume for a specified point
US8248402B2 (en) 2006-11-28 2012-08-21 International Business Machines Corporation Adaptive ray data reorder for optimized ray temporal locality
US8223148B1 (en) 2007-11-12 2012-07-17 Adobe Systems Incorporated Method and apparatus for computing indirect lighting for global illumination rendering in 3-D computer graphics
US8207968B1 (en) 2008-08-29 2012-06-26 Adobe Systems Incorporated Method and apparatus for irradiance caching in computing indirect lighting in 3-D computer graphics
US8314797B1 (en) 2008-09-22 2012-11-20 Adobe Systems Incorporated Method and apparatus for irradiance computation in 3-D computer graphics
KR101511281B1 (ko) * 2008-12-29 2015-04-13 삼성전자주식회사 레이 트레이싱 고속화 방법 및 장치
FR2965652A1 (fr) * 2010-09-30 2012-04-06 Thomson Licensing Procede d’estimation de la quantite de lumiere recue en un point d’un environnement virtuel
US10289094B2 (en) 2011-04-14 2019-05-14 Suntracker Technologies Ltd. System and method for the optimization of radiance modelling and controls in predictive daylight harvesting
US9953457B2 (en) * 2013-04-22 2018-04-24 Nvidia Corporation System, method, and computer program product for performing path space filtering
KR20150034062A (ko) * 2013-09-25 2015-04-02 삼성전자주식회사 동일한 그룹의 데이터를 라우팅하는 방법 및 장치, 렌더링 유닛을 재구성하는 방법 및 장치
US20150102208A1 (en) * 2013-10-02 2015-04-16 The Joan & Irwin Jacobs Technion-Cornell Innovation Institute (Jacobs Institute) Wearable system and method to measure and monitor ultraviolet, visible light, and infrared radiations in order to provide personalized medical recommendations, prevent diseases, and improve disease management
US10679407B2 (en) 2014-06-27 2020-06-09 The University Of North Carolina At Chapel Hill Methods, systems, and computer readable media for modeling interactive diffuse reflections and higher-order diffraction in virtual environment scenes
JP6367624B2 (ja) * 2014-07-07 2018-08-01 株式会社スクウェア・エニックス プログラム、情報処理装置、算出方法及び記録媒体
EP3220356B1 (en) 2016-03-14 2020-06-17 Imagination Technologies Limited Methods and graphics processing units for determining differential data for rays of a ray bundle
US10055878B2 (en) 2016-08-31 2018-08-21 Siemens Healthcare Gmbh Method of visualizing a three-dimensional object from a data volume
US10062214B2 (en) * 2016-09-27 2018-08-28 Adobe Systems Incorporated Rendering digital virtual environments utilizing full path space learning
US10388059B2 (en) * 2016-10-03 2019-08-20 Nvidia Corporation Stable ray tracing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4748609A (en) * 1985-03-29 1988-05-31 Hitachi, Ltd. Method and apparatus for composite tracking servo system with track offset correction and rotary optical disc having at least one correction mark for correcting track offset
US6750862B1 (en) * 1998-04-27 2004-06-15 Nvidia Corporation Method and system for performing enhanced lighting functions for texture map data
CN104112034A (zh) * 2013-04-22 2014-10-22 辉达公司 用于实施路径空间滤波的***、方法和计算机程序产品
CN105144245A (zh) * 2013-04-24 2015-12-09 高通股份有限公司 用于扩增现实的辐射转移取样的设备和方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
"fast estimation and rendering of indirect highlights";J.Laurijssen等;《COMPUTER GRAPHICS FORUM》;第29卷(第4期);摘要,图1-10,第1307页左侧的3.Overview的第1-3段,第1307-1308页的4.1 The von Mises-Fisher Distribution和4.2 Mixture of vMF Distribution,第1309、1310页的6.3 Approximation Error *
"Texture space caching and reconstruction for ray tracing";Jacob Munkberg等;《ACM TRANSACTIONS ON GRAPHICS》;第35卷(第6期);摘要、图3、第249:1页右栏第2-3段、第249:2-249:3页的3 Texture Space Shading and Caching *
3D Rasterization-Unifying Rasterization and Ray Casting;Carsten Dachsbacher等;《Technical Report》;20090820;1-12 *
J.Laurijssen等."fast estimation and rendering of indirect highlights".《COMPUTER GRAPHICS FORUM》.2010,第29卷(第4期),摘要,图1-10,第1307页左侧的3.Overview的第1-3段,第1307-1308页的4.1 The von Mises-Fisher Distribution和4.2 Mixture of vMF Distribution,第1309、1310页的6.3 Approximation Error. *
基于路径追踪的能量重新分配全局光照算法研究;刘志起等;《基于路径追踪的能量重新分配全局光照算法研究》;20090430(第4期);I138-980 *

Also Published As

Publication number Publication date
CN112840378A (zh) 2021-05-25
US11961176B2 (en) 2024-04-16
WO2020023880A1 (en) 2020-01-30
US20220165016A1 (en) 2022-05-26
US11244493B2 (en) 2022-02-08
US20200035014A1 (en) 2020-01-30
EP3827415A1 (en) 2021-06-02

Similar Documents

Publication Publication Date Title
CN112840378B (zh) 在路径追踪中使用共享光照贡献进行相互作用的全局照明
US11941745B2 (en) Reflection denoising in ray-tracing applications
US10600167B2 (en) Performing spatiotemporal filtering
US10573058B2 (en) Stable ray tracing
US20170263046A1 (en) Perceptually-based foveated rendering using a contrast-enhancing filter
CN112868047B (zh) 光线追踪应用中的时空去噪
US8878849B2 (en) Horizon split ambient occlusion
US11823321B2 (en) Denoising techniques suitable for recurrent blurs
US11995759B2 (en) Adaptive ray tracing suitable for shadow rendering
CN114078077A (zh) 使用会话性能元数据评估定性流体验
CN112184873A (zh) 分形图形创建方法、装置、电子设备和存储介质
US20240177394A1 (en) Motion vector optimization for multiple refractive and reflective interfaces
US20210358198A1 (en) Using directional radiance for interactions in path tracing
Yang et al. Foveated light culling
US20240257439A1 (en) Reflection denoising in ray-tracing applications
CN114140335A (zh) 光线追踪应用中的时空自引导阴影去噪
Zhang et al. Perception-based model simplification for motion blur rendering

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant