CN112868047B - 光线追踪应用中的时空去噪 - Google Patents
光线追踪应用中的时空去噪 Download PDFInfo
- Publication number
- CN112868047B CN112868047B CN201980067917.4A CN201980067917A CN112868047B CN 112868047 B CN112868047 B CN 112868047B CN 201980067917 A CN201980067917 A CN 201980067917A CN 112868047 B CN112868047 B CN 112868047B
- Authority
- CN
- China
- Prior art keywords
- filter
- spatial
- pixel
- spatial filter
- image
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 132
- 230000002123 temporal effect Effects 0.000 claims abstract description 115
- 238000009877 rendering Methods 0.000 claims description 72
- 238000005286 illumination Methods 0.000 claims description 44
- 230000000694 effects Effects 0.000 abstract description 36
- 238000005070 sampling Methods 0.000 abstract description 29
- 238000001914 filtration Methods 0.000 abstract description 28
- 238000009826 distribution Methods 0.000 abstract description 14
- 230000000007 visual effect Effects 0.000 abstract description 9
- 230000008569 process Effects 0.000 description 49
- 239000000523 sample Substances 0.000 description 42
- 238000005315 distribution function Methods 0.000 description 33
- 239000011159 matrix material Substances 0.000 description 24
- 238000010586 diagram Methods 0.000 description 18
- 238000003860 storage Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 238000013459 approach Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 239000013598 vector Substances 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 239000012723 sample buffer Substances 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000007796 conventional method Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000012614 Monte-Carlo sampling Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000012152 algorithmic method Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000002146 bilateral effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000012732 spatial analysis Methods 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 238000012731 temporal analysis Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/70—Denoising; Smoothing
-
- 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
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/20—Image enhancement or restoration using local operators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/40—Image enhancement or restoration using histogram techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20172—Image enhancement details
- G06T2207/20182—Noise reduction or smoothing in the temporal domain; Spatio-temporal filtering
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Processing (AREA)
- Image Generation (AREA)
Abstract
公开了用于在图形渲染图像中在时间和空间上过滤(使用一条或更多条光线追踪效果生成的)有噪声图像数据的各种方法。不是使用空间滤波器对数据值进行完全采样,而是可以使用空间滤波器内的滤波器抽头对该数据值进行稀疏采样。为了说明稀疏采样,滤波器抽头的位置可以在空间和/或时间上抖动。为了滤波效率,当使用历史数据值对像素进行时间滤波时,可以减小空间滤波器的尺寸。此外,使用时间滤波器滤波的数据值可以被钳位以避免重影。为了进一步提高滤波效率,可以将空间滤波器应用为可分离滤波器,其中可以使用减小滤波器宽度在多次迭代中执行针对滤波器方向的滤波,从而当空间滤波器不遵循真实高斯分布时减少视觉伪像的机会。
Description
背景技术
光线追踪是在图像渲染应用中使用的一种技术,所述技术通过在虚拟环境中追踪光的路径并模拟光与虚拟对象相遇的效果来执行。光线追踪技术可用于模拟各种光学效果,诸如阴影、反射和折射、散射现象和色散现象(诸如色差)。渲染光线追踪效果的常规方法使用随机光线追踪来采样像素的光照条件,其中光线追踪相机和次级光线在虚拟环境中投射。采样的光照条件可以被组合并应用于图像中的像素。为了节省计算资源,通常会稀疏采样光线,这可能会导致有噪声渲染。随后可以对该有噪声渲染进行滤波以减少噪声,并产生近似于完全采样场景的渲染的最终渲染。
为了使最终渲染能够在滤波之后准确地描绘虚拟环境中的光照条件,常规方法需要针对每个像素的大量的光线追踪样本(例如,数百个样本或更多个样本)。由于样本数量众多,用于渲染虚拟环境的计算资源可能太大而无法对诸如游戏之类的实时渲染应用足够快地执行。常规系统可以使用来自先前图像的历史像素值来辅助渲染。然而,这些使用历史像素值的方法仍可能会影响渲染时间,并且在光照条件快速变化时可能导致重影和/或其他不希望的视觉伪像。
其他方法使用通用空间滤波器对光照条件数据进行去噪。但是,这些空间滤波器会导致较低质量的渲染。例如,这些常规系统假设所有空间滤波器在屏幕的水平和垂直方向上是轴向对准并且各向同性(例如,圆形),从而允许将空间滤波器应用于相同的水平和垂直通路(pass)。这无法说明场景中光线的方向性质,每个像素可能会有所不同。另外,常规系统假设像素的每个空间滤波器的滤波器核心遵循以像素为中心的真实高斯分布。这允许使用水平通路和垂直通路分别应用空间滤波器,水平通路和垂直通路共同等效于在单个通路中不可分离地应用空间滤波器。然而,为了提高空间滤波器的精度,可能希望使用不遵循真实高斯分布的滤波器内核,在这种情况下,可分离地应用空间滤波器可能不等同于不可分离地应用空间滤波器。
发明内容
本公开的实施例涉及光线追踪应用中的时空去噪。特别地,本公开涉及用于对使用光线追踪效果生成的光照条件数据进行去噪的方法。更具体地,本公开涉及在图形渲染图像中在时间和空间上对图像数据进行滤波的方法,该图像数据是使用一个或更多个光线追踪效果生成的。
除了对历史像素值进行采样的时间滤波器之外,用于对光线追踪图像进行去噪的所公开的方法还可以使用空间滤波器。为了更有效地对图像进行去噪,而不是使用空间滤波器对数据值进行完全采样,可以使用分散在空间滤波器中的滤波器抽头对数据值进行稀疏采样。为了解释稀疏采样,滤波器抽头的位置可以在空间上(例如,在应用于当前帧的空间滤波器之间)抖动(例如,随机地或伪随机地选择)和/或在时间上(例如,在应用于不同帧的空间滤波器之间)抖动(例如,随机地或伪随机选地择)。此外,可以至少部分地基于应用于像素的历史数据值的计数使用一个或更多个时间滤波器来计算应用于像素的空间滤波器的尺寸。当使用更多的历史数据值时,这可以减小尺寸,结果是,可减少滤波的计算需求。为了减少或消除因时间滤波而产生的重影和其他伪像,可以将经滤波的数据值钳位为来自当前图像的区域的数据值的均值和方差。此外,为了提高效率,可以将像素的空间滤波器应用为可分离滤波器,其中可以使用减小滤波器宽度在多个迭代中针对滤波器方向进行滤波-而不是使用空间滤波器的滤波器宽度在单个通路中进行滤波。这可以允许像素周围区域中的光照条件与附加像素共享,从而在空间滤波器不遵循真实高斯分布时减少视觉伪像的机会。
附图说明
下面参考所附附图详细描述用于光线追踪应用中时空去噪的本系统和方法,其中:
图1A是根据本公开一些实施例的时空去噪系统的示例系统图;
图1B是示出了根据本公开一些实施例的用于对包括像素的有噪声图像数据的光照条件数据进行滤波的过程的图;
图2是示出了根据本公开一些实施例的具有光线的虚拟环境的示例的图,该光线可以用于使用光线追踪效果来确定光照条件数据;
图3A是示出了根据本公开一些实施例的空间滤波器的示例的图,所述空间滤波器可以用于对帧的光照条件数据进行去噪;
图3B是示出了根据本公开一些实施例的用于对图3A的空间滤波器进行稀疏采样的滤波器抽头的位置的示例的图;
图3C是示出了根据本公开一些实施例的用于对另一个空间滤波器进行稀疏采样,以对图3A的帧的光照条件数据进行去噪的滤波器抽头的位置的示例的图;
图3D是示出了根据本公开一些实施例的用于对空间滤波器进行稀疏采样的滤波器抽头的位置的示例的图,所述空间滤波器用于对与图3A、图3B和图3C不同的帧的光照条件数据进行去噪;
图4是示出了根据本公开一些实施例的在每个滤波器方向上使用多次迭代来将滤波器内核应用为可分离滤波器的示例的图;
图5A是示出了根据本公开一些实施例的滤波器权重值的图表的示例的图,所述滤波器权重值的图表可以通过将分布函数沿滤波器方向拟合到空间滤波器的宽度来确定;
图5B是示出了根据本公开一些实施例的滤波器权重值的图表的示例的图,所述滤波器权重值的图表可以通过将分布函数沿滤波器方向拟合到图5A的空间滤波器的另一宽度来确定;
图6是示出了根据本公开一些实施例的用于对渲染帧进行去噪的方法的流程图,所述方法包括使用滤波器抽头的时间上抖动的位置来对像素进行稀疏采样;
图7是示出了根据本公开一些实施例的用于对渲染帧进行去噪的方法的流程图,所述方法包括使用滤波器抽头的空间上抖动的位置来对像素进行稀疏采样;
图8是显示了根据本公开一些实施例的用于对渲染帧进行去噪的方法的流程图,所述方法包括至少部分地基于时间滤波器来调整空间滤波器的尺寸;
图9是显示了根据本公开一些实施例的用于对渲染帧进行去噪的方法的流程图,所述方法包括针对滤波器方向使用多次迭代将空间滤波器应用为可分离滤波器。
图10为适合用于实现本公开一些实施例的示例计算设备的框图。
具体实施方式
本公开涉及光线追踪应用中的时空去噪。尤其是,本公开涉及用于对使用光线追踪效果生成的光照条件数据进行去噪的方法。更具体地,本公开涉及在图形渲染图像中在时间和空间上滤波图像数据的方法,所述图像数据使用一个或更多个光线追踪效果生成。
本公开的用于对光线追踪图像进行去噪的方法包括:在图形渲染图像中在时间和空间上滤波图像数据的方法,所述图像数据使用一个或更多个光线追踪效果生成。这些方法的各种组合可用于减少渲染时间,其可以支持诸如游戏之类的实时渲染应用,同时仍然产生可以准确地描绘场景中光照条件的高质量渲染。
虽然一些本公开的去噪技术可以与各向同性空间滤波器一起使用,以对光线追踪的光照条件数据进行去噪,但是本公开的方法可以采用各向异性的空间滤波器(例如,椭圆形),其反映场景中光的方向性质。这不仅可以减少图像过度模糊的机会,还可以产生更逼真的模糊图案。由于各向异性空间滤波器的准确性,在针对每个像素使用少量的光线追踪样本(例如,每个像素单个样本)进行滤波之后,最终渲染可以准确地描绘虚拟环境中的光照条件。然而,由于所有空间滤波器可能未在屏幕的水平和垂直方向上轴向对齐,并且可能并非全部是各向同性的(例如,圆形),因此空间滤波器可能不会全部应用在相同的水平和垂直通道中。所公开的方法可以用于减少用于应用各向异性空间滤波器和/或各向同性空间滤波器的计算需求,这可以减少渲染时间并实现实时渲染应用。
为了更有效地对图像进行去噪,而不是使用空间滤波器对数据值进行完全采样,可以使用分散在空间滤波器内的滤波器抽头对数据值进行稀疏采样。为了说明稀疏采样,滤波器抽头的位置可以在空间上(例如,在应用于当前帧的空间滤波器之间)和/或在时间上(例如,在应用于不同帧的空间滤波器之间)抖动(例如,随机地或伪随机地选择)。通过在时间和/或空间上抖动滤波器抽头,可以稀疏采样空间滤波器以减少计算需求,同时仍然产生准确的结果。在一些示例中,可以在空间滤波器之后应用时间滤波器,以进一步增强空间滤波器的时间稳定性。
本公开进一步提供了用于更有效地对图像进行去噪的方法,其中使用一个或更多个时间滤波器与空间滤波器结合来对像素的光照条件数据进行滤波。在所公开的方法中,可以至少部分地基于应用于像素的历史数据值的计数使用时间滤波器来计算空间滤波器的尺寸,以在使用更多历史数据值时减小尺寸。较小的空间滤波器通常将具有较低的计算需求以进行应用。由于一个或更多个时间滤波器可以增加空间滤波器的有效样本计数,因此可以使用较小的空间滤波器,同时仍然产生准确的滤波结果。
本公开进一步提供了用于减少或消除可能由时间滤波产生的重影和其他伪像的方法。为此,当应用时间滤波器时,可以将经滤波的数据值钳位为来自当前图像或帧的数据值的均值和方差。为了钳位像素的数据值,可以从像素周围的像素窗口来计算该均值和方差。为了节省处理能力,可以估计均值和方差,诸如通过稀疏采样和点击窗口。
本公开还提供了用于将像素的空间滤波器准确且有效地应用为可分离滤波器的方法,即使在空间滤波器不遵循以像素为中心的真实高斯分布的情况下(例如,空间滤波器可以是双边滤波器)。例如,除高斯分布之外或代替高斯分布,可使用一个或更多个因子来确定滤波器权重,从而导致更精确的滤波。在公开的方法中,在将滤波器内核应用为可分离滤波器中,可以使用减小滤波器宽度在多个迭代中执行针对滤波器方向的滤波,而不是使用空间滤波器的滤波器宽度在单个通道中执行针对滤波器方向的滤波。当可分离滤波器与滤波器内核不等效时,这可以允许像素周围区域中的光照条件与附加像素共享。因此,可以降低发生视觉伪像的机会。
参考图1,图1是根据本公开一些实施例的时空去噪系统100的示例系统图。应当理解的是,本文描述的这种和其他布置仅仅作为示例而进行阐述。除了所示之外或者代替所示,可以使用其他的布置和元素(例如机器、接口、功能、顺序、功能分组等等),并且可以完全省略一些元素。进一步,许多本文描述的元素是功能实体,其可以实现为分立的或分布式组件或者结合其他组件实现,以及以任何适当的组合和位置实现。本文描述的如由实体执行的各种功能可以由硬件、固件和/或软件实现。例如,各种功能可以通过执行存储在存储器中的指令的处理器而实施。举例来说,时空去噪系统100可以在图10的计算设备1000的一个或更多个实例上实现。
时空去噪系统100可以包括图像渲染器102、空间滤波器确定器104、时间滤波器确定器106和图像滤波器108以及其他元件。图像渲染器102可以被配置成渲染虚拟环境(也称为场景)的图像,诸如,图2的虚拟环境200。为了渲染虚拟环境的图像,图像渲染器102可以采用空间滤波器确定器104、时间滤波器确定器106和图像滤波器108。空间滤波器确定器104可以被配置为针对虚拟环境中的一个点和/或针对渲染图像的一个或更多个像素来确定空间滤波器和该空间滤波器的相应滤波器权重(例如,图1A和图1B的一个或更多个空间滤波器120或图1B的一个或更多个空间滤波器142)。时间滤波器确定器106可以被配置为针对虚拟环境中的点和/或一个或更多个像素确定时间滤波器和该时间滤波器的相应滤波器权重(例如,时间滤波器126,时间滤波器130,时间滤波器140或时间滤波器144,分别在图1B中示出)。图像滤波器108可以将一个或更多个空间滤波器和一个或更多个时间滤波器应用于一个或更多个像素,诸如像素132(例如,在滤波器的初始像素位置处),以对表示虚拟环境的图像114的图像数据进行去噪。类似地,图像渲染器102可以使用空间滤波器确定器104和时间滤波器确定器106来确定针对虚拟环境中的其他点和/或图像114的相应像素的滤波器,以产生图像116。因此,可以使用多个滤波器对与图像114相关联的光照条件数据进行去噪,以产生所述图像116(例如,每个像素至少一个滤波器),并且可以使用任意合适的通过(pass)次数,在同一通道中至少部分地应用多个滤波器。
尽管将图像渲染器102描述为渲染图像114,但是本文描述的示例不限于渲染。例如,图像114不需要如图所示被完全渲染。作为示例,可以渲染图像114和/或其组分的视觉内容的一个或更多个部分(例如,入射辐射等)。图像滤波器108可以将空间和/或时间滤波器应用于图像数据,所述图像数据表示图像114的视觉内容的一个或更多个部分和/或其组分,以产生表示图像116的图像数据。图像114被示出为图示了在本公开一些示例中可以被过滤的光照条件数据中的噪声。此外,尽管在图1A中示出了空间滤波器120,但是其是出于说明性目的而示出。
图像渲染器102可以使用任何合适的光线追踪方法,例如随机光线追踪来渲染图像114(和/或其部分或组分)。可以由图像渲染器102使用的随机光线追踪技术的示例包括那些采用蒙特卡洛或准蒙特卡洛采样策略的技术。图2用于进一步描述可以由图像渲染器102采用以使用光线追踪来渲染图像的合适的光线追踪方法的示例。图2提供了图像渲染器102可以如何渲染光线追踪阴影、光线追踪反射、光线追踪环境遮挡或光线追踪全局照明的示例。然而,可以使用其他方法来渲染这些光线追踪效果,并且其他类型所渲染的光线追踪效果也被认为在本公开的范围内。
图2示出了虚拟环境200,所述虚拟环境200包括相机202、屏幕204、对象226、表面208、表面210和遮挡物224。屏幕204可以是屏幕的虚拟表示,所述屏幕可以与图像114和/或图像116具有相同或更高分辨率。屏幕204可以包括虚拟像素或区域的矩阵,其像素212被单独地标记。为了确定像素212(例如,对应于图1A的像素132)的至少一些光照条件数据,图像渲染器102可以通过屏幕204的像素212投射任意数量的光线(例如,一条或更多条光线)(例如,光线214),以采样像素212的光照条件。作为示例,这些光线可以被称为相机光线、眼睛光线、视图向量或主光线。图像渲染器102可以使用相机光线来确定环境中的可见点,所述可见点可能会受到至少一个光源(例如光源206)的影响。例如,图像渲染器102可以使用光线214来确定表面208上或附近的点216。这可以包括图像渲染器102将点216确定为光线214与表面208相交的位置(或者,点216可以至少部分地基于该位置)。尽管光线214与表面208相交,但是在投射多于一条光线的示例中,并非所有光线都可以与表面相交。
在任何示例中,可以使用诸如光线214和光线218之类的光线来测试点(例如,点216)相对于相机202和/或对象226的可见性,并且可以只为被确定为可见的点确定滤波器(例如,空间滤波器120)。
从图像渲染器102使用通过像素212投射光线确定的虚拟环境200中的每个点,可以投射任意数量的光线(例如,一条或更多条光线),以针对点216的光线追踪效果进行建模。例如,为了渲染光线追踪的反射,可以投射任意数量的光线(例如,一条或更多条光线),例如光线218,以对点216处的光线214的反射进行建模。可以使用各种方法对光线214的反射进行建模,在此提供其示例。图像渲染器102可以至少部分地基于点216处的表面208的法线来确定光线218的方向。例如,图像渲染器102可以至少部分地基于点216处的表面208的法线来定义用于点216的正态分布函数(NDF)。图像渲染器102可以使用NDF、光线214和与点216相关联的表面208的粗糙度值来定义双向反射率分布函数(BRDF)叶片(lobe)(例如,当使用光滑微表面BRDF模型时)。例如,可以使用函数(NDF)来定义NDF,该函数定义微表面在特定方向上对齐的可能性。可以使用将NDF用作加权函数来缩放反射亮度的函数(BRDF)来定义BRDF叶片。图像渲染器102可以采样BRDF叶片(例如,随机地使用BRDF或使用另一采样策略)以确定光线218。作为示例,这些光线可以被称为反射光线或次级(secondary)光线。尽管光线218与对象226相交,但是在投射多于一条光线的示例中,并非所有光线都可以与对象226相交。例如,光线可以与不同对象相交或不与任何对象相交。
为了渲染光线追踪阴影,可以投射任意数量的光线(例如,一条或更多条光线,诸如,光线222),以采样点216相对于光源206的可见性和光照条件。例如,这些光线可以称为阴影光线或次级光线。图像渲染器102可对光源206的可见性进行采样(例如,随机地或使用另一种采样策略)以确定光线218。尽管光线218与遮挡物224相交,但是在投射多条光线的示例中,并非所有光线都可以与遮挡物224相交。在一些示例中,可以为虚拟环境200中的每个光源投射一条或更多条阴影光线,以确定光源对像素的光照条件的贡献。
为了渲染光线追踪的环境光遮挡或全局照明,可以投射任意数量的光线(例如,一条或更多条光线,诸如,光线222),以采样该点相对于光源206的可见性和光照条件(例如,随机地或使用另一种采样策略)。作为示例,这些光线可以称为遮挡光线或次级光线。
图像渲染器102可以使用各种光线(例如,光线214、光线218、光线220或光线222)来确定像素212的光照条件的光线追踪样本。例如,光线可以在像素212与一个或更多个光源和/或其他对象之间形成任意数量的虚拟光路的至少部分,其示例可以包括光线214、光线218、光线220和/或光线222。对象226可以是此类光源的示例,或者对象226可以是另一类型的对象,诸如不发光的反射对象。在对象226不是光源的情况下,包含光线218的虚拟光路可以进一步包括到光源的一条或更多条光线。图像渲染器102可以通过组合从各种光线追踪样本导出的光照条件数据来确定像素212的至少一些光照条件数据。图像渲染器102可以类似地确定屏幕204的每个像素或区域的至少一些光照条件数据(例如,使用任意数量的阴影光线和相机光线)。
被描述为用于模拟像素212的不同光线追踪效果的光线218、220和222还被描述为从使用同一光线214确定的同一点216投射。然而,可以使用虚拟环境200中的不同点和/或通过像素212的光线(例如,主光线)来模拟多种光线追踪效果。图像渲染器102可以使用每个虚拟像素的光照条件数据来渲染图像116的一个或更多个对应像素。通常,图像渲染器102针对像素使用光线追踪效果来计算的光照条件的精度可以随着用于对光照条件进行采样的相机光线和/或次级或后续光线的数量而增加。然而,用于确定光照条件的计算资源也可能随着光线的数量而增加,这可能会增加渲染时间。
为了节省计算资源并减少渲染时间,用于采样光照条件的光线数量可能少于使光线追踪效果的质量收敛到理想的光线追踪结果所必需的数量。如图像114中所示,这可导致图像渲染器102生成包括有噪声图像数据的光照条件数据。图像114示出了针对光线追踪的反射而生成的有噪声图像数据的示例。在该示例中,屏幕204的每个像素相对于对象226的光照条件是基于虚拟环境200的状态的单个光线追踪样本(例如,包含单个相机或眼睛光线,每个入射光线包含单个反射光线)的。然而,可以使用其他光线追踪效果(例如,光线追踪阴影、全局照明和/或环境遮挡)类似地生成有噪声图像数据。
为了减少像素的光照条件数据中的噪声,图像渲染器102可以对光照条件数据进行滤波以渲染图像116。这些滤波器可以包括一个或更多个空间滤波器和/或一个或更多个时间滤波器,所述空间滤波器由空间滤波器确定器104来确定,所述时间滤波器由时间滤波器确定器106来确定。空间滤波器可以使用相邻像素的渲染数据来滤波帧或图像的(一个或更多个)像素的渲染数据,所述相邻像素的渲染数据与帧和/或图像相对应,诸如在虚拟环境200的公共时间和/或状态下。渲染数据可以指表示用于渲染场景的光线追踪样本的数据,诸如光照条件数据(例如,渲染像素颜色数据和/或其一个或更多个组件)、命中距离数据或可见性数据。时间滤波器可以使用相邻像素的渲染数据来滤波帧或图像的(一个或更多个)像素的渲染数据,所述相邻像素的渲染数据与一个或更多个先前渲染帧和/或图像相对应,诸如虚拟环境200的不同先前时间和/或状态。例如,可以使用像素的渲染数据应用用于渲染图像116的空间滤波器,所述像素的渲染数据与图像114捕获的虚拟环境200的状态相对应,然而,使用像素的渲染数据应用用于渲染图像116的时间滤波器,所述像素的渲染数据与图像114捕获的虚拟环境200的状态之前的一个或更多个状态相对应。
现在参考图1B,图1B是示出了根据本公开一些实施例的用于滤波像素(例如,像素212和/或像素132)的有噪声光照条件数据以渲染虚拟环境的状态的过程160的图。可以针对正在渲染的每个像素执行过程160,并且可以重复过程160以随时间推移(例如,基于每帧)渲染虚拟环境的每个状态。
过程160可以对光照条件数据(例如,对应于图像114)的光线追踪样本进行操作,所述光照条件数据可以由图像渲染器102针对虚拟环境的状态使用关于图2所描述的方法或其他方法来确定。为了渲染虚拟环境的状态,过程160可以滤波每个光线追踪效果的光照条件数据,以对与该光线追踪效果相对应的有噪声图像数据进行去噪。例如,为了渲染帧(例如,对应于图像116),在过程160的各个实例中,(图1A的)空间滤波器确定器104可以为每个光线追踪效果确定并使用不同的空间滤波器120对有噪声图像数据进行去噪(例如,并行地),所述有噪声图像数据与该光线追踪效果相对应。此外,为了渲染帧,(图1A的)时间滤波器确定器106可以针对过程160的各个实例中的每个光线追踪效果确定不同的时间滤波器126和/或130,以对有噪声图像数据进行去噪,所述有噪声图像数据与该光线追踪效果相对应(当使用时间滤波器时)。可以在用于光线追踪阴影、光线追踪反射、光线追踪环境遮挡或光线追踪全局照明的光照条件数据上执行过程160。然而,过程160的不同变型可用于对不同的光线追踪效果进行去噪,本文描述了其中的一些示例。
过程160可以利用空间滤波器120来使用相邻像素的有噪声光照条件数据对像素的有噪声光照条件数据进行去噪。光照条件数据可以对应于(例如,图像114的)虚拟环境的当前渲染状态。经滤波的光照条件数据可用于生成图像116。过程160被进一步示出为包括时间滤波器,所述时间滤波器用于滤波像素的光照条件数据。然而,在一些示例中,过程160可以包括空间滤波器120,而不使用任何时间滤波器来滤波光照条件数据。例如,可以不采用时间滤波器126和/或时间滤波器130。然而,将一个或更多个时间滤波器应用于光照条件数据,可增加光线追踪样本的有效样本计数,所述光线追踪样本用于确定像素的经滤波的光照条件数据,和/或可增加像素的经滤波的光照条件数据的时间稳定性。
在过程160中,空间滤波器确定器可以至少部分地基于描述虚拟环境200的场景数据(诸如渲染数据)来确定空间滤波器(例如空间滤波器120)。例如,如图1B所示,空间滤波器确定器可以使用可见性数据152、命中距离数据154和/或与光线追踪样本相对应的其他数据作为输入来确定空间滤波器120。此外,在过程160中使用时间滤波器的情况下,时间滤波器确定器可以使用运动向量数据150和/或其他数据作为输入来确定时间滤波器(诸如时间滤波器126)。运动向量数据150还可以至少部分地基于可见性数据152和/或与光线追踪样本相对应的其他数据。
对于过程160的实例,为了确定用于确定像素的空间滤波器120的可见性数据152和/或命中距离数据154,空间滤波器确定器可以使用该像素的光线追踪样本。例如,对于像素212(和/或132),像素212的命中距离数据154、可见性数据152和/或其他场景数据可以与用于确定像素212的有噪声光照条件数据的一个或更多个主光线和/或次级光线(和/或其他光线)相对应。空间滤波器确定器可以至少部分地基于虚拟环境200的几何形状来确定空间滤波器120,所述几何形状可以使用场景数据来确定。例如,空间滤波器确定器可使用命中距离数据154来确定空间滤波器120的尺寸和/或形状(例如,一个或更多个维度,诸如长度和/或宽度)。示例包括点216与屏幕204之间、点216与对象226之间、点216与遮挡物224之间,和/或点216与表面210之间的命中距离。
例如,对于各种效果中的任何一种,用于该效果的空间滤波器120的尺寸(例如,宽度)可以至少部分地基于(例如,可能是函数)从点216投射的次级光线的光线命中距离(例如,由用于渲染图像114的命中距离缓冲区确定)来自适应地改变。例如,如本文所述,对于每个点216,图像渲染器102可以为点216投射任意数量的光线。至少部分地基于光线的长度,可以适配空间滤波器120的占用空间(footprint)尺寸。例如,空间滤波器120的尺寸可以与光线的长度相关(例如,一个或更多个较长的光线产生较大的尺寸,并且一个或更多个较短的光线产生较小的尺寸)。对于阴影,尺寸可以至少部分地基于光线220的长度,对于反射,尺寸可以至少部分地基于光线218,对于环境遮挡或全局照明,尺寸可以至少部分地基于光线222。空间滤波器确定器可以使用用于对像素212的光照条件进行采样的光线中的至少一些来确定像素212的空间滤波器的滤波器尺寸。然而,在任何示例中,空间滤波器确定器可以使用一条或更多条光线来确定像素212的空间滤波器的滤波器尺寸,所述一条或更多条光线与用于对像素212的光照条件进行采样的光线不同。在任何示例中,像素的空间滤波器的滤波器尺寸可以通过投射穿过像素的一个或更多个视图向量来确定。然而,在一些实施例中,除了或代替光线命中距离和/或光线可见性之外,还可以至少部分地基于图像114的图像空间分析来确定尺寸。
在各个实施例中,可以将一个或更多个空间滤波器和/或时间滤波器应用于用于确定过程160的空间和/或时间滤波器的输入。这些的示例包括时间滤波器126、空间滤波器120和/或时间滤波器130。例如,图像滤波器可将空间滤波器142和时间滤波器144应用于虚拟环境200的状态的命中距离数据154。例如,一个或更多个空间滤波器142可以包括最小滤波器(以保留联系方式(contact detail)),然后是盒式滤波器(box filter)。空间滤波器确定器104可以使用命中距离数据154来确定空间滤波器120的尺寸和/或形状(例如,一个或更多个维度,诸如长度和/或宽度)。滤波可以增强空间滤波器120的尺寸和/或形状的空间和时间稳定性。此外,图像滤波器108可以将时间滤波器140应用于虚拟环境200的状态的可见性数据152。例如,根据至少一条相应的主光线和/或次级光线(例如,用于光线追踪阴影的光线214和光线220),当点和/或像素具有可见性时,空间滤波器确定器104只能确定空间滤波器120并将其应用于一个或更多个渲染效果,所述主光线和/或次级光线可以由可见性数据152捕获。滤波可以增强空间滤波器120的生成的以及从可见性数据152导出的运动向量的时间稳定性。
空间滤波器120和/或本文所述的其他滤波器可以具有滤波器内核(kernel)。滤波器还可具有一个或更多个滤波器方向。滤波器的滤波器内核可以指代一矩阵(例如,矩形数组),该矩阵定义一个或更多个卷积以处理图像的图像数据(例如,像素的数据值),以改变图像的一个或更多个特征,诸如图像的像素的阴影和颜色。在一些示例中,可以将滤波器内核应用为可分离滤波器,还参考图4描述其示例。在将滤波器应用未可分离滤波器时,可以使用多个子矩阵或滤波器来表示矩阵,所述多个子矩阵或滤波器可以以多通道(pass)方式分别应用于图像数据。当确定或计算用于可分离滤波器的滤波器内核时,本公开内容设想可以直接计算子矩阵,或者可以从另一个矩阵导出子矩阵。
滤波器内核的矩阵的每个元素可以对应于相应的像素位置。矩阵的像素位置之一可以表示与对其应用滤波器的像素相对应的初始像素位置,并且可以位于矩阵的中心(例如,用于确定滤波器的位置)。例如,当将空间滤波器120应用于图像114的像素132时,像素132可以具有初始像素位置。在应用诸如空间滤波器120之类的一些滤波器时,可以在相对于像素132确定的图像位置处使用其他像素的数据值,以确定滤波器内核的占用空间中像素的一个或更多个数据值。滤波器方向可以沿着滤波器宽度定义矩阵相对于对其应用滤波器的图像和/或像素的对齐方式。因此,当将滤波器(诸如空间滤波器120)应用于像素时,可以使用一个或更多个滤波器方向和滤波器内核来确定滤波器内核的矩阵的其他像素位置相对于初始像素位置的其他像素。
滤波器内核的矩阵的每个元素可以包括用于像素位置的滤波器权重。可以使用卷积将矩阵应用于图像,其中可以添加图像的与矩阵的像素位置相对应的每个像素的数据值或以其他方式将其与对应于矩阵中局部邻居位置的像素的数据值组合,如由滤波器值(也称为滤波器权重)加权的。对于本文描述的一个或更多个滤波器(诸如空间滤波器120),滤波器值可被配置为模糊所述像素,诸如通过将一个或更多个分布拟合到滤波器内核(例如,拟合到宽度和高度)。图5A和图5B在本文中用于描述将分布函数拟合到(诸如空间滤波器120的)滤波器内核的一些示例。
对其应用时间滤波器126、空间滤波器120和时间滤波器130的数据值可以与像素的光照条件数据相对应。因此,将滤波器内核的矩阵应用于像素可以导致在与滤波器内核的像素位置相对应的像素之间至少部分地共享光照条件数据。光照条件数据的共享可以减轻由于在光线追踪中对光照条件进行稀疏采样而产生的噪声。
用于对光线追踪效果进行去噪的常规方法计算出各向同性的滤波器内核,所述滤波器内核始终是圆形对称的,并且通常不对应于光相对于虚拟环境中某个点的方向。对于滤波器使用这种各向同性滤波器内核可能会导致不逼真的模糊,其中滤波器会模糊太少或太多像素,并且滤波器的滤波器值不会导致光照条件数据以逼真方式在像素之间共享。在各种示例中,本公开可以提供用于计算各向异性滤波器内核,所述各向异性滤波器内核可以被拉长,使得滤波器内核的尺寸沿着第一轴线比沿着第二轴线延伸得更远,以更紧密地反映虚拟环境中的光相对于该点的方向性质。在空间滤波器是各向异性滤波器的情况下,空间滤波器的占用空间可以是椭圆的,而不是圆形的。例如,该占用空间可以具有多个不同的滤波器宽度和相应的滤波器方向(例如,空间滤波器120的滤波器方向136和滤波器方向138),所述滤波器方向定义了空间滤波器的尺寸和方向,以更准确地反映虚拟环境中的光的方向性质。
空间滤波器的稀疏采样
图3A是示出了根据本公开一些实施例的用于像素132的空间滤波器120的图。图像滤波器108在用于渲染图像116的渲染数据上应用诸如空间滤波器120之类的滤波器,会引入计算开销,这可能增加图像116的渲染时间。如果计算开销太大,则对于实时渲染应用(诸如游戏或其他渲染应用)渲染时间可能太长。例如,在将空间滤波器120应用于像素132时,一种方法是图像滤波器108针对图像116中的每个像素应用滤波,所述图像116在空间滤波器120的占用空间内,如图3A所示(除非丢弃用于像素的渲染数据)。这可以涉及将像素的渲染数据与空间滤波器120的滤波器内核进行卷积,其中可围绕每个像素计算加权和。在一些示例中,空间滤波器120的占用空间可以大到500像素×100像素。此外,如本文所述,可以将空间滤波器120应用于图像116中的每个光线追踪效果和像素。这些因素中的每一个在滤波渲染数据以渲染图像116时都可能会增加计算开销。
为了减少在应用空间滤波器120时的计算开销,可以将滤波器内核应用为可分离滤波器,其中图像滤波器108在多个通道中应用滤波器内核。每个通道可以在各自的滤波器方向上,并且可以使用子滤波器内核或沿着滤波器方向与滤波器内核相对应的子矩阵来应用每个通道。例如,如关于图4进一步描述的,图像滤波器108可以在一个或更多个通道中沿着滤波器方向136应用空间滤波器120,并且在一个或更多个通道中沿着滤波器方向138应用空间滤波器120。
在一些示例中,用于不同像素和/或渲染效果的空间滤波器120的滤波器方向136和138可以不同,以更准确地捕获虚拟环境200的几何特性。这可能会限制某些计算优化,诸如,使用相同的垂直通道和水平通道来同时应用每个空间滤波器120。在这些实施例中,当使用图像滤波器108应用过程160的一个或更多个滤波器(诸如空间滤波器120)时,可能希望进一步减少计算开销。根据本公开的一些方面,当将滤波器应用于渲染数据时,图像滤波器108可以对滤波器进行稀疏采样。诸如在图3B-3D的示例中,对滤波器进行稀疏采样的方法可以与将滤波器应用为不可分离滤波器或可分离滤波器结合使用。
现在参考图3B-3D,图3B-3D是示出了根据本公开一些实施例的空间滤波器的稀疏采样和抖动的图。在一些示例中,图像滤波器108可以对空间滤波器120进行稀疏采样,而不是对空间滤波器120进行完全采样。例如,可以对历史值在(例如,仅在)滤波器抽头的位置处进行稀疏采样,而不是对空间滤波器120的占用空间中的每个像素进行滤波,所述滤波器抽头散布在空间滤波器120内。现在参考图3B,图3B示出了根据本公开一些实施例的使用滤波器抽头的空间滤波器120的稀疏采样。例如,在滤波器方向136上可分离地应用空间滤波器120时,图像滤波器108可以使用抽头(tap)312A、312B和312C。另外,在滤波器方向138上应用空间滤波器120时,图像滤波器108可以使用抽头310A、310B、310C、310D、310E、310F和310G。在空间滤波器为500×100的示例中,在没有稀疏采样的情况下,图像滤波器108可以在一个方向上抽取(tap)每个像素500次,并且在另一个方向上抽取每个像素100次。当空间滤波器102是分离滤波器时,抽头可以包括沿着特定滤波器方向的加权和。使用稀疏采样,针对每个帧每个滤波器方向只能采用10-20个抽头(例如,等距间隔)。在一些示例中,每个帧可以采用相同数量的抽头,并且如果像素数少于阈值数目,则可以对像素进行完全采样。
图像滤波器108可以使用各种因素来确定滤波器抽头的数目和/或滤波器抽头的位置。由图像滤波器108确定的可影响滤波器抽头的数目和/或滤波器抽头的位置中的一个或更多个的因素可以包括以下中的一个或更多个:空间滤波器120的占用空间的尺寸、占用空间的一个或更多个维度(例如,沿着特定的滤波器方向)、滤波器抽头的数目的预算(例如,所有维度的总和或沿着特定的滤波器方向)、时间滤波器126和/或时间滤波器130使用的时间样本的数目,和/或空间滤波器120的占用空间中像素的渲染数据的方差。
关于滤波器抽头数目的一个或更多个预算,每个滤波器方向的预算可以不同,和/或可以是集体总预算(或者每个方向的预算都可以从共享预算中分配)。例如,至少部分地基于空间滤波器120沿着滤波器方向136比沿着滤波器方向138短,图像滤波器108可以向滤波器方向136分配较低的预算(例如,滤波器抽头的一部分,诸如10个滤波器抽头vs.20个滤波器抽头)。在由图像滤波器108动态确定滤波器抽头数目的实施例中(例如,基于空间滤波器120的占用空间的尺寸和/或其他因素),滤波器抽头的预算可以用作滤波器抽头数目的上限(cap)。在其他示例中,可以将滤波器抽头的数目设置为预算,尽管滤波器抽头的分布可以基于空间滤波器120的占用空间的尺寸和/或其他因素而变化。
关于占用空间的尺寸和/或维度,沿着滤波器方向136的滤波器抽头的数目可以至少部分地基于沿着滤波器方向136的占用空间的尺寸,并且沿着滤波器方向138的滤波器抽头的数目可以至少部分地基于沿着滤波器方向138的占用空间的尺寸。例如,沿着滤波器方向的滤波器抽头的数目可以随着维度的长度而增加。关于时间滤波器126和/或时间滤波器130使用的时间样本的数量,滤波器抽头的数目可以随着时间滤波器中使用的时间样本的数目而增加。关于用于空间滤波器120的占用空间中像素的渲染数据的变化,滤波器抽头的数目可以随着当前和/或先前帧的渲染数据的变化而增加。
在一些示例中,图像滤波器108确定滤波器抽头的位置,使得它们彼此均等间隔。然而,在其他示例中,特定滤波器抽头之间的间隔可以相对于彼此不同地间隔,或者可以另外根据上述因素或其他因素的任意组合来动态地确定位置和/或间隔。
空间滤波器的抖动
尽管对空间滤波器进行稀疏采样可以降低应用滤波器的计算成本,但是它还可导致滤波器抽头位置之间的渲染数据中的噪声。为了减少或消除噪声,用于空间滤波器的滤波器抽头的位置可以在空间和/或时间上抖动。这可以通过图像滤波器108随机地或伪随机地(和/或使用某种其他算法方法)为一个或更多个空间滤波器确定一个或更多个滤波器抽头的位置来实现。例如,图像滤波器108可以随机地确定一个或更多个滤波器抽头的一个或更多个位置。作为示例,给定沿滤波器方向136的滤波器抽头(其将是等间隔的)的数目,图像滤波器108可以随机地选择滤波器抽头的位置(例如,在距中心像素一定范围的位置内,所述中心像素在间隔距离内)。类似的方法可用于滤波器方向138。作为进一步的示例,可以使用类似的方法来随机地分别选择滤波器抽头位置。
在各个示例中,为了确定一个或更多个滤波器抽头的一个或更多个位置,图像滤波器108可以使用一个或更多个位置选择参数,所述位置选择参数选择空间滤波器120内的一个或更多个位置。例如,位置选择参数可以是沿着相对于空间滤波器120的位置的滤波器方向的每个滤波器抽头的一个或更多个偏移值。为了使空间滤波器之间的滤波器抽头的位置抖动,图像滤波器108可以对于不同空间滤波器改变一个或更多个位置选择参数。在滤波器抽头等间隔分布的示例中,可以使用偏移值来设置每个滤波器抽头的位置。通过使用不同的偏移值,每个滤波器抽头可以位于不同的位置。在一些示例中,虽然一个或更多个位置选择参数可以由图像滤波器108随机地或伪随机地选择(例如,使用一个或更多个随机种子来确定一个或更多个位置选择参数),但是一个或更多个位置选择参数可以使用不同的方法进行调整,诸如至少部分地基于对场景的渲染数据和/或图像数据的空间和/或时间分析、请求旋转位置配置等等。
现在参考图3C,图3C是用于示出根据本公开一些实施例的空间上抖动空间滤波器的滤波器抽头的示例。图3C可以对应于图像116的像素310的空间滤波器120的滤波器抽头,所述像素310与像素132不同和/或用于不同的渲染效果。如图3C所示,在空间滤波器120内滤波器抽头的至少一个或更多个相对位置可以不同于图3B(例如,通过随机采样滤波器抽头的位置)。这可能导致针对不同像素的空间滤波器和/或共同利用更多像素的渲染数据的渲染效果,从而降低了噪声。
现在参考图3D,图3D是用于示出根据本公开一些实施例的时间上抖动空间滤波器的滤波器抽头的示例。图3D可以对应于用于图像302中的像素132的空间滤波器120的滤波器抽头,所述图像302可使用过程160渲染。图像302可以对应于虚拟环境200的状态,所述虚拟环境200的状态在图像116的虚拟环境200的状态之后(例如,后续帧)。如图3D所示,空间滤波器120内滤波器抽头的至少一个或更多个相对位置可以与图3D不同(例如,通过对滤波器抽头的位置进行随机采样)。这可能导致用于不同帧的空间滤波器,该不同帧共同利用更多像素的渲染数据,从而降低了噪声。例如,时间滤波器130可以累加光照条件数据的样本,所述光照条件数据在过程160的多次迭代中由空间滤波器120进行滤波,使得与图像302相对应的光照条件数据可以至少部分地基于将图3B中的空间滤波器120应用于像素132和将图3D中的空间滤波器120应用于像素132。
渲染数据的时间滤波
时间滤波器126可以是图像渲染器102使用的时间重投影滤波器,以增加光线追踪样本的有效样本计数,所述光线追踪样本用于针对虚拟环境的状态生成像素的光照条件数据。在确定时间滤波器126时,时间滤波器确定器106可以使用由运动向量数据150捕获的运动向量进行时间重投影。时间滤波器126可用于使用相邻像素的光线追踪样本来对像素的光照条件数据进行滤波,该光照条件数据与虚拟环境200的一个或更多个先前渲染状态相对应。时间滤波器130可用于增强空间滤波器120的时间稳定性。
为了确定时间滤波器,时间滤波器确定器106可以累加像素的时间渲染数据的样本,所述像素与虚拟环境的任何数量的先前状态相对应。例如,为了确定时间滤波器126,时间滤波器确定器106可以累加像素的光线追踪的光照条件数据的样本,所述像素来自任何数量的先前状态。为了确定时间滤波器130,时间滤波器确定器106可以累加像素的经滤波的光照条件数据的样本,所述像素来自空间滤波器120来自任何数量的先前状态。
时间滤波器确定器106可以将时间滤波器的累加样本存储在时间样本缓冲区中,所述时间样本缓冲区可使用更新162针对每个渲染状态来对其进行更新。例如,在过程160的迭代中,时间滤波器确定器106可以使用正在渲染的当前状态的样本,以在更新162中更新时间样本缓冲区。在过程160的后续迭代中,随后可使用更新的时间样本缓冲区来确定并应用时间滤波器,以渲染后续状态。
在确定时间滤波器时,例如,累加样本的数目可以设置上限为样本上限数(例如,从八个样本到十六个样本中的任何一个)。作为示例,对于每个像素,时间滤波器126可以累加来自八个先前帧的多达八个光线追踪的样本,从而将潜在的有效样本计数增加八倍。因此,在每个渲染帧对应于每个像素单个样本的情况下,时间滤波器126可以将有效样本计数增加到每个像素多达八个样本。图1B的各种时间滤波器(例如,时间滤波器126或时间滤波器130)可以使用相同或不同的样本上限数。此外,一个或更多个样本上限数可以保持恒定或可以随时间变化,诸如基于虚拟环境200的状态。
在各种示例中,时间样本缓冲区可包括样本的滚动窗口(例如,多达样本上限数的样本),所述样本可针对每个渲染帧而被更新。图像滤波器108可以将时间滤波器应用于类似于空间滤波器的像素。然而,用于卷积滤波器内核的像素的数据值可以替代地是用于虚拟环境200的当前状态的像素的数据值与用于虚拟环境200的一个或更多个先前状态(例如,帧)的数据值的聚合。在确定像素的聚合数据值时,时间滤波器确定器106可以对每个数据值进行加权。例如,每个数据值可以被相等地加权,或者可以为不同的数据值分配不同的权重。在一些示例中,每个像素的历史数据值在时间样本缓冲区中被累加,并且图像滤波器108将像素的历史数据值与当前数据值相组合,以确定像素的聚合数据值。
例如,由图像滤波器108所应用的时间滤波器(诸如时间滤波器126、130、140和/或144)可以是指数滤波器,诸如指数加权移动平均(EWMA)滤波器。为了应用指数滤波器,图像滤波器108可以在屏幕空间中使用指数平均通道,其中每个像素的根据累加的每像素时间样本计数计算的指数权重不同。
像素的光照条件数据可能会迅速变化,诸如,由于虚拟环境200的光照条件的变化。这可以降低像素的历史数据值的相关性。结果,使用历史数据值可导致图像116中的视觉伪像,诸如延迟或重影。根据本公开的一些方面,可以通过将像素的经滤波的数据值钳位到正被渲染的当前帧,来减少或消除延迟或重影。例如,为了钳位由时间滤波器产生的经滤波的数据值,图像滤波器108可以确定像素的数据值范围,所述范围定义了经滤波的数据值的最大值和最小值。图像滤波器108可以使用最大或最小数据值将由时间滤波器产生的经滤波的数据值钳位到该范围内。
为了计算像素的数据值的范围,图像滤波器108可以使用当前帧的像素的相邻像素的数据值(例如,颜色值)的统计信息。例如,对于像素,图像滤波器108可以确定像素周围的像素窗口的数据值中的均值μ和标准偏差γ。数据值范围的最小值可以对应于[μ–γ],数据值范围的最大值可以对应于[μ+γ]。在一些示例中,对于1080p分辨率,窗口的分辨率可能小于帧分辨率的百分之一,诸如3x3、5x5、7x7、10x10等。为了节省处理能力,诸如通过稀疏采样和点击窗口来估计均值μ和标准偏差γ。这对于较大的窗口尤其有用,诸如对于1080p分辨率,其中该窗口的分辨率大于帧分辨率的五十分之一,诸如30x30、40x40、50x50等。
针对时间滤波,数据值的钳位可以与图1B的至少一个时间滤波器一起使用。在过程160中使用时间滤波器126和时间滤波器130,并且两者都应用了数据值钳位的情况下,由于当应用时间滤波器126时光照条件数据的滤波器126具有较少的噪声,因此时间滤波器130可以比时间滤波器126具有更小的钳位半径或窗口。
调整滤波器
在各种示例中,空间滤波器确定器104可以至少部分地基于用于确定像素132和/或像素212的光照条件的光线量(例如,光线追踪的样本)来确定空间滤波器120的尺寸和/或其一个或更多个几何形状。例如,本公开可以使用虚拟环境200的状态的单个光线追踪样本来提供精确的反射,虚拟环境200包括光线214和光线218。在使用多个光线追踪样本的情况下,空间滤波器确定器104可以计算空间滤波器120的尺寸和/或一个或更多个几何形状,以使得大小和/或一个或更多个几何形状基于(例如,与其成比例地)样本(和/或反射的光线和/或眼睛的光线)的数量而减小。用于尺寸和/或一个或更多个几何形状的合适的调整因子可以由空间滤波器确定器104计算为1/√n,其中n是光线追踪样本的数量。
在一些示例中,图像渲染器102使用虚拟环境200(例如,每个状态可以对应于表示虚拟环境200的渲染帧)的至少一个先前状态的至少一个光线追踪样本,来确定在虚拟环境200的后续状态下像素132和/或像素212的光照条件。例如,除了用于确定像素132和/或像素212(例如,使用可以使用空间滤波器120的几何形状的时间滤波器)的光照条件的一个或更多个空间或当前光线追踪样本之外,还可以使用任意数量的时间光线追踪的样本来确定像素132和/或像素212的光照条件。在使用多个时间光线追踪样本的情况下,可以将这些样本计数到光线追踪样本的数量n,或者可以将其用于减少空间滤波器120的尺寸和/或一个或更多个几何形状。
至少部分地基于样本计数来调整空间滤波器的尺寸
在各种示例中,空间滤波器确定器104可以至少部分地基于用于确定像素132和/或像素212的光照条件的光线(例如,光线追踪样本)的数量来确定空间滤波器120的尺寸和/或其一个或更多个尺寸(例如,覆盖区沿滤波器方向136的宽度或覆盖区沿滤波器方向138的宽度),所述光线的量。例如,本公开可以提供具有光线追踪效果的精确渲染,所述光线追踪效果使用虚拟环境200的状态的单个光线追踪样本,所述虚拟环境200包括光线214和与虚拟环境200的每个相互作用的单个次级光线。在使用不止一个光线追踪样本的情况下,空间滤波器确定器104可以计算空间滤波器120的尺寸和/或一个或更多个几何形状,以使尺寸和/或一个或更多个几何形状至少部分地基于(例如,与之成比例地)样本(和/或反射光线和/或眼睛光线)的数量。空间滤波器确定器104可以根据下面的方程(1)来计算用于尺寸和/或一个或更多个几何形状的合适的调整因子:
其中n是光线追踪样本的数目。
在一些示例中,图像渲染器102使用虚拟环境200的至少一个先前状态的至少一个光线追踪样本(例如,每个状态可以对应于表示虚拟环境200的渲染帧)来确定在虚拟环境200后续状态下像素132和/或像素212的光照条件。例如,如本文所述,使用时间滤波器126,除了用于确定像素132和/或像素212的光照条件的一个或更多个空间或当前光线追踪样本之外,还可以使用任意数量的累加的时间光线追踪样本来滤波像素132和/或像素212的光照条件数据。累加的时间光线追踪样本的数量也可以称为时间样本计数或时间滤波器的历史数据值的计数,并且可以由图1B中的时间样本计数数据156捕获,所述累加的时间光线追踪样本用于滤波像素的光照条件数据。例如,所述计数可以被设置为或被计算为从其生成时间滤波器126的历史像素值的帧的数目,和/或每像素和、平均值和/或至少部分地基于帧的数量计算的其他值,针对每个像素从所述帧生成历史像素值(例如,在某些示例中,至少某些历史像素值可能未用于至少某些像素和/或可能未包括在计数中,或者由于钳位在计数中可能被赋予较低的权重)。除了或代替像素的空间样本的数量之外,还可以将时间样本计数包括到方程(2)的光线追踪样本n的数量中,或可以以其他方式用于减小和调整空间滤波器120的尺寸和/或一个或更多个尺寸。使用方程(2)或另一合适的方程,空间滤波器的尺寸可以与历史像素值的计数反向地相关。
可分离滤波的示例
如本文所述,在一些示例中,图像滤波器108可以将滤波器内核应用为可分离滤波器。现在参考图4,图4示出了根据本公开一些实施例的将滤波器内核迭代地应用为可分离滤波器的示例。图4示出了针对每个滤波器方向在多次迭代中应用可分离滤波器(诸如空间滤波器120)。例如,空间滤波器120的应用可以包括针对滤波器方向136的迭代400和迭代404,以及针对滤波器方向138的迭代402和迭代406。针对图像区域408示出了每个迭代,所述图像区域408可对应于图像114和/或图像116的像素区域。如图所示,图像区域408包括像素410和像素412。
在将滤波器应用为可分离滤波器时,可以使用多个子矩阵或滤波器来表示滤波器内核,所述子矩阵或滤波器可以在多个通道中应用到图像数据以减少应用滤波器的计算成本。例如,不是将二维矩阵应用于滤波器通道中的像素,而是通常可以使用两个独立的一维通道中的两个矩阵来应用滤波器,其中两个矩阵的乘积等效于二维矩阵。此方法可以产生与将二维矩阵应用于单个通道时等效的结果,其中滤波器是真正的高斯滤波器。然而,在一些实施例中,空间滤波器120和/或本文使用的其他滤波器可以不是真正的高斯滤波器。例如,对于光线追踪反射,可以将NDF权重用作像素的滤波器权重,或者可以将所述NDF权重用于导出空间滤波器120的像素的滤波器权重,以解决虚拟环境200中的点之间BRDF的不匹配问题。在其他示例中,即使在使用高斯分布来确定空间滤波器120的滤波器权重的情况下,空间滤波器确定器104仍可以使用一个或更多个其他因子来设置或修改一个或更多个像素位置的滤波器权重。例如,在像素位置处的像素法线与初始像素位置处的像素法线显著不同(指示它们可能面向不同的方向)的情况下,可以将该像素位置的滤波器权重值减小和/或设置为零。因此,即使在将高斯分布拟合到滤波器以确定滤波器权重的情况下,所述滤波器也可能不是真正的高斯滤波器。
在两个独立的一维通道中,使用两个矩阵应用空间滤波器120可能与仅使用迭代400和迭代402的图像滤波器108相似,因此可用于说明此方法的潜在缺点。例如,在一个通道中,尽管图像滤波器108具有不同的子矩阵和完整的滤波器半径,但是仍可以使用图4的迭代400沿滤波器方向136(例如,水平)应用空间滤波器120。在这种情况下,像素410的像素数据可以与滤波器方向136上的像素共享。在另一通道中,尽管图像滤波器108具有不同的子矩阵和完整的滤波器半径,但仍可以使用图4的迭代402沿滤波器方向138(例如,垂直)应用空间滤波器120。在这种情况下,像素410的像素数据可以与滤波器方向138上的像素共享。然而,如对于迭代402所见,当应用滤波器时,对某些像素使用这种方法的像素信息可能不再与某些其他像素共享,这会将视觉伪像引入图像116。例如,即使像素422在滤波器的占用空间内,像素410的像素信息也不可以与像素422(和其他像素)共享。
根据本公开的一些方面,图像滤波器108可以对每个滤波器方向(例如,水平和垂直)使用多次迭代来应用滤波器,诸如空间滤波器120。使用这种方法,像素可以与附加像素共享像素信息,从而减少或消除视觉伪像。例如,如图所示,图像滤波器108除了使用迭代400之外,还可以使用迭代404来在滤波器方向136上应用空间滤波器120,从而允许像素410的像素信息与像素412共享。另外,除了迭代402之外,图像滤波器108还可以使用迭代406来在滤波器方向138上应用空间滤波器120,从而允许像素与附加像素共享像素信息。
尽管图4示出了针对每个滤波器方向的两次迭代,但是本公开考虑了针对每个滤波器方向的任意数目的通道或迭代。通常,对于给定的滤波器方向,每次迭代所使用的滤波器半径可以为使得通道共同等效于使用该滤波器方向的滤波器的总滤波器半径的通道。此外,在每个随后的通道中,滤波器半径可以更小。在一些非限制性示例中,空间滤波器确定器104可以使用方程(2)来计算每个通道i的滤波器方向的滤波器半径或宽度如下所示:
其中N是迭代的总数,而σH是滤波器方向的总滤波器半径或宽度。对光照条件数据进行去噪的附加示例
在一些实施例中,过程160可以不使用图1B的时间滤波器126、130、140或144中的一个或更多个来对光照条件数据进行滤波,或者可以使用不同的或附加的时间滤波器。而且,过程160可以不使用图1B的空间滤波器120或142中的一个或更多个来滤波光照条件数据,或者可以使用不同的或附加的空间滤波器。此外,用于不同光线追踪效果的过程160可以使用不同的或附加的时间和/或空间滤波器来对光照条件数据进行滤波。此外,对于不同的光线追踪渲染效果和/或滤波器,时间和/或空间滤波器的一个或更多个超参数可以是不同的,诸如滤波器抽头的预算、滤波器卷积的步长、时间滤波器的样本上限数目、像素(用于使用时间滤波器来钳位像素值)周围的像素窗口、滤波器的一个或更多个维度,和/或用于可分离滤波的迭代数目。
在任何示例中,一个或更多个附加空间滤波器可用于在时间滤波器(例如,时间滤波器126)之前对图像114的光照条件数据进行滤波。附加空间滤波器可以包括跨步空间滤波器。跨步空间滤波器可以起到增加光照条件数据的局部方差的作用。此方法可以允许随后的时间滤波器重新使用更多历史像素数据。合适的跨步空间滤波器的示例是跨步盒式滤波器。作为非限制性示例,跨步空间滤波器可以每个像素使用五到十个抽头。使用跨步空间滤波器对于光线追踪的全局照明可能有用,但是可用于本文所述的各种光线追踪渲染效果中的任何一种。
确定滤波器的滤波器权重的附加示例
可以使用各种方法来确定本文所述的滤波器的滤波器权重。如上所述,作为一个示例,空间滤波器确定器104可以使用NDF值来确定空间滤波器120的用于光线追踪反射的滤波器权重。对于本文描述的任何滤波器,可以至少部分地基于将分布函数拟合到空间滤波器120的宽度,来确定空间滤波器120的滤波器权重,如关于图3A和图3B所述,或者可以使用一种或更多种其他方法。
现在参考图5A,图5A是示出了根据本公开一些实施例的滤波器权重值的图表500A的示例的图,所述滤波器权重值可以通过将分布函数沿滤波器方向136拟合到空间滤波器120的宽度来确定,所述滤波器方向136可以用来确定空间滤波器120的滤波器权重。
空间滤波器确定器104可以至少部分地基于将分布函数沿滤波器方向136拟合到空间滤波器120的宽度,来计算空间滤波器120的滤波器权重,如图5A所示。所述宽度可以跨越像素位置514和像素位置516,像素位置512位于像素位置514和像素位置516之间。例如,像素位置512可以对应于滤波器内核的中点或中心,并且可以是对其应用空间滤波器120的初始像素位置。例如,在图像滤波器108将空间滤波器120应用于像素212的情况下,像素212可以对应于初始像素位置。
通过将分布函数拟合到所述宽度,空间滤波器确定器104可以计算空间滤波器120的滤波器值,使得宽度510的像素位置上的滤波器值基本上对应于分布函数,或者以其他方式至少部分地基于分布函数。例如,图5A的分布函数可以是高斯分布函数,其中空间滤波器确定器104将高斯分布函数的均值或中心设置或映射到像素位置512。因此,像素位置512可以与最高滤波器值相关联。
空间滤波器确定器104还可以沿着分布函数将一个或更多个其他点设置或映射到一个或更多个其他像素位置。例如,空间滤波器确定器104可以从分布函数的均值或中心设置或映射第一位置,所述第一位置对应于从均值或中心到像素位置514的一个或更多个标准偏差(或其他距离)。类似地,空间滤波器确定器104可以从分布函数的均值或中心设置或映射第二位置,所述第二位置对应于从均值或中心到像素位置516的一个或更多个标准偏差(或其他距离)。在所示的示例中,由于使用高斯分布函数,像素位置514和像素位置516均可各自与沿着宽度的最低滤波器值相关联。像素位置514和像素位置516相对于分布函数的位置作为示例在图5A中示出,并且可以变化。例如,像素位置514和像素位置516可以与相对于彼此不同的滤波器值相关联。此外,如本文所述,可以调整、丢弃或以其他方式确定滤波器值中的一个或更多个,使得空间滤波器120不是真正的高斯滤波器。
现在参考图5B,图5B示出了根据本公开一些实施例的滤波器权重值的图表500B的示例的图,所述滤波器权重值可以通过将分布函数沿滤波器方向158拟合到空间滤波器120的宽度520来确定,所述滤波器方向158可以用来确定空间滤波器120的滤波器权重。可以以与图500B相同的比例来描绘图500A。
空间滤波器确定器104可以至少部分地基于将分布函数沿滤波器方向158拟合到空间滤波器120的宽度520,来计算空间滤波器120的滤波器权重,如图5B所示。所述宽度520可以跨越像素位置524和像素位置526,像素位置512位于像素位置524和像素位置526之间。
通过将分布函数拟合到宽度520,空间滤波器确定器104可以计算空间滤波器120的滤波器值,使得宽度520的像素位置上的滤波器值基本上对应于分布函数,或者以其他方式至少部分地基于分布函数。例如,图5B的分布函数可以是类似于图5A的高斯分布函数,其中空间滤波器确定器104将高斯分布函数的均值或中心设置或映射到像素位置512。在其他示例中,不同的分布函数可以拟合到不同的滤波器方向,以确定空间滤波器120的滤波器权重。一个或更多个分布函数可以捕获相邻像素的光照条件对初始像素位置处的像素(例如,像素212)的相对贡献,从而可以与该像素适当共享信息。例如,像素离初始像素位置越远,对初始像素位置处像素的光照条件作出贡献的可能性越小。
空间滤波器确定器104还可以沿着分布函数将一个或更多个其他点设置或映射到一个或更多个其他像素位置。例如,空间滤波器确定器104可以从分布函数的均值或中心设置或映射第一位置,所述第一位置对应于从均值或中心到像素位置514的一个或更多个标准偏差(或其他距离)。类似地,空间滤波器确定器104可以从分布函数的均值或中心设置或映射第二位置,所述第二位置对应于从均值或中心到像素位置516的一个或更多个标准偏差(或其他距离)。在所示的示例中,由于使用高斯分布函数,像素位置524和像素位置526均可各自与沿着宽度520的最低滤波器值相关联。像素位置524和像素位置526相对于分布函数的位置作为示例在图5B中示出,并且可以变化。例如,像素位置524和像素位置526可以与相对于彼此不同的滤波器值相关联。
在图5A和图5B的示例中,至少部分地基于宽度520大于宽度510(例如,因为高斯分布函数以相似方式被映射到每个宽度),沿宽度520的滤波器权重值的分布比沿宽度510的分布更广。此外,如本文所述,尽管可以使用一种或更多种分布来确定滤波器权重,但是一个或更多个滤波器权重可以不遵循该分布。例如,在像素位置处像素的法线与初始像素位置处像素的法线显著不同(指示它们可能面向不同的方向)的情况下,可以将该像素位置的滤波器权重值减小和/或设置为零。图表500A和500B可以对应于空间滤波器120的跨双侧(cross-bilateral)分量。
现在参考图6,方法600的每个框以及本文所述的其他方法包括可以使用硬件、固件和/或软件的任何组合来执行的计算过程。例如,各种功能可以由执行存储在存储器中的指令的处理器来实现。方法也可以具体化为存储在计算机存储介质上的计算机可用指令。仅举几例,方法可以由独立应用程序、服务或托管服务(独立地或者与另一个托管服务结合地)或者另一个产品的插件提供。另外,通过示例的方式,关于时空去噪系统100(图1A)描述了这些方法。然而,此外或者可替代地,这些方法还可以由任意一种系统或者任意系统组合——包括但不限于本文描述的那些系统执行。
图6是示出了根据本公开一些实施例的用于对渲染帧进行去噪的方法600的流程图,所述方法包括使用滤波器抽头的时间抖动位置来对像素进行稀疏采样。在框B602,方法600包括确定用于渲染帧的像素的空间滤波器。例如,对于过程160的实例,空间滤波器确定器104可以至少部分地基于渲染数据,来确定用于图像116和/或图像114的像素的空间滤波器120的尺寸,所述渲染数据表示虚拟环境200的状态的光线追踪样本。
在B604处,方法600包括选择在渲染帧之间抖动的空间滤波器的滤波器抽头的位置。例如,对于过程160的实例,空间滤波器确定器104可以选择抽头312A、312B、312C、310A、310B、310C、310D、310E、310F和/或310G的位置,所述位置可以对应于空间滤波器120的像素位置的子集。可以选择所述位置,使得滤波器抽头的位置在渲染帧的序列之间抖动,每个渲染帧与场景的相应状态相对应。例如,空间滤波器确定器104可以抖动偏移和/或一个或更多个其他滤波器抽头位置选择参数,以确定(例如,随机地或伪随机地)用于不同渲染帧的空间滤波器120的位置(例如,在过程160的不同实例中)。与图3D中的图像302相对应的空间滤波器120可以与其他渲染帧(例如,后续帧)之一相对应。
在B606处,方法600包括使用滤波器抽头将空间滤波器应用于像素,以对该像素进行稀疏采样。例如,在过程160的实例中,图像滤波器108可以使用抽头312A、312B、312C、310A、310B、310C、310D、310E、310F和310G将空间滤波器120应用于像素,以对与(例如,图像114的)场景的光照条件的有噪声光线追踪样本相对应的数据值进行稀疏采样。如所指示的,可以使用过程160的不同实例针对其他渲染帧重复方法600(例如,和/或并行地执行)。作为各种示例,空间滤波器120的滤波器抽头的位置可以针对每个渲染帧、每隔一个渲染帧、仅针对所选的渲染帧等等进行抖动。
图7示出了根据本公开一些实施例的一种用于对渲染帧进行去噪的方法700的流程图,所述方法包括使用滤波器抽头的空间抖动的位置来对像素进行稀疏采样。在框B702处,方法700包括确定用于渲染帧的像素的空间滤波器的尺寸。例如,对于用于生成图像116的过程160(例如,并行地执行)的不同实例,空间滤波器确定器104可以至少部分地基于表示虚拟环境200的状态的光线追踪样本的渲染数据,来确定用于图像116和/或图像114的各个像素的空间滤波器120的尺寸(例如,一个或更多个宽度)。
在B704处,方法700包括通过抖动空间滤波器之间的位置来选择空间滤波器的滤波器抽头的位置。例如,对于过程160的一个实例,空间滤波器确定器104可以选择抽头312A、312B、312C、310A、310B、310C、310D、310E、310F和/或310G的位置,该位置可以对应于空间滤波器120的像素位置的子集。对应于图3C的空间滤波器120可以与其他空间滤波器(例如,用于相邻像素)之一相对应。可以选择位置,使得滤波器抽头的位置在空间滤波器之间抖动。例如,空间滤波器确定器104可以使偏移和/或一个或更多个其他滤波器抽头位置选择参数进行抖动,以确定用于不同空间滤波器的空间滤波器120的位置(例如,随机地或伪随机地)。
在B706处,方法700包括使用滤波器抽头将空间滤波器应用于像素,以对该像素进行稀疏采样。例如,对于过程160的每个实例,图像滤波器108可以使用至少抽头312A、312B、312C、310A、310B、310C、310D、310E、310F和310G,以及图3D所示的抽头来应用空间滤波器120,以对数据值进行稀疏采样,所述数据值与(例如,图像114的)场景的光照条件的有噪声光线追踪样本相对应。作为各种示例,空间滤波器120的滤波器抽头的位置可以针对渲染帧的每个空间滤波器120、每个其他空间滤波器120、仅针对所选择的(例如,随机地)空间滤波器120等进行抖动。如所指示的,作为各种示例,可以针对每个渲染帧、每隔一个渲染帧、仅针对所选择的渲染帧等,使用过程160的不同实例针对其他渲染帧重复(例如,和/或并行地执行)方法700。并且,方法700可以与方法600一起使用,以在空间上抖动并在时间上抖动过程160的空间滤波器120的滤波器抽头的位置。
图8是示出了根据本公开一些实施例的用于对渲染帧进行去噪的方法800的流程图,所述方法包括至少部分地基于时间滤波器来调整空间滤波器的尺寸。在B802处,方法800包括将时间滤波器应用于像素。例如,对于过程160的实例,图像滤波器108可以将时间滤波器126应用于图像114和/或图像116的像素的数据值,以生成像素的经滤波的数据值。
在B804处,方法800包括至少部分地基于时间滤波器的历史数据值的计数来确定空间滤波器的尺寸。例如,空间滤波器确定器104可以至少部分地基于时间滤波器126的历史数据值的计数,例如在过程160的实例中,确定空间滤波器120的尺寸(例如,一个或更多个宽度),所述时间滤波器126用于对场景的光照条件的有噪声光线追踪样本进行去噪(例如,使用方程(2))。
在B806处,方法800包括将空间滤波器应用于像素。例如,在过程160的实例中,图像滤波器108可以将空间滤波器120应用于像素。如所指示的,可以使用过程160的不同实例针对其他渲染帧和/或针对当前渲染帧的其他像素重复(例如,和/或并行执行)方法600。
图9是示出了根据本公开一些实施例的用于对渲染帧进行去噪的方法900的流程图,所述方法包括针对滤波器方向使用多次迭代将空间滤波器应用为可分离滤波器。在框B902处,方法900包括至少部分地基于渲染数据来确定用于渲染帧的像素的空间滤波器。例如,对于过程160的实例,空间滤波器确定器104可以至少部分地基于渲染数据确定用于针对图像116和/或图像114的像素的空间滤波器120,所述渲染数据表示虚拟环境200的状态的光线追踪样本。
在B904处,方法900包括使用第一滤波器宽度在第一滤波器方向上将空间滤波器应用为可分离滤波器。例如,对于过程160的实例,空间滤波器确定器104可以使用滤波器方向136的滤波器宽度来计算滤波器宽度(例如,使用方程(1))和相应的子矩阵,图像滤波器108在图4的迭代400中应用该子矩阵。类似地,对于过程160的实例,空间滤波器确定器104可以使用滤波器方向138的滤波器宽度来计算滤波器宽度(例如,使用方程(1))和相应的子矩阵,图像滤波器108在图4的迭代402中应用该子矩阵。
在B906处,方法900包括使用第二滤波器宽度在第一滤波器方向上将空间滤波器应用为可分离滤波器,第二滤波器宽度小于第一滤波器宽度。例如,对于过程160的实例,空间滤波器确定器104可以使用滤波器方向136的滤波器宽度来计算滤波器宽度(例如,使用方程(1))和相应的子矩阵,图像滤波器108在图4的迭代404中应用该子矩阵。类似地,对于过程160的实例,空间滤波器确定器104可以使用滤波器方向138的滤波器宽度来计算滤波器宽度(例如,使用方程(1))和相应的子矩阵,图像滤波器108在图4的迭代406中应用该子矩阵。
图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中的每一个可以包括能够同时处理大量软件线程的一个或更多个核心(例如一个、两个、四个、八个、二十八个、七十二个等等)。CPU1006可以包括任何类型的处理器,并且可以包括不同类型的处理器,这取决于实现的计算设备1000的类型(例如具有用于移动设备的较少核心的处理器以及具有用于服务器的更多核心的处理器)。例如,取决于计算设备1000的类型,处理器可以是使用精简指令集计算(RISC)实现的高级RISC机器(ARM)处理器或者使用复杂指令集计算(CISC)实现的x86处理器。除了一个或更多个微处理器或者诸如数学协处理器之类的补充协处理器之外,计算设备1000还可以包括一个或更多个CPU 1006。
GPU 1008可以由计算设备1000用来渲染图形(例如3D图形)。GPU1008可以包括能够同时处理数百或数千个软件线程的数百或数千个核心。GPU 1008可以响应于渲染命令(例如经由主机接口接收的来自CPU 1006的渲染命令)而生成用于输出图像的像素数据。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可以接收来自其他组件(例如GPU1008、CPU1006等等)的数据,并且输出该数据(例如作为图像、视频、声音等等)。
本公开可以在由计算机或者诸如个人数字助理或其他手持式设备之类的其他机器执行的、包括诸如程序模块之类的计算机可执行指令的机器可使用指令或者计算机代码的一般背景下进行描述。通常,包括例程、程序、对象、组件、数据结构等等的程序模块指的是执行特定任务或者实现特定抽象数据类型的代码。本公开可以在各种各样的系统配置中实践,这些配置包括手持式设备、消费电子器件、通用计算机、更专业的计算设备等等。本公开也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实践。
如在本文中使用的,“和/或”关于两个或更多元素的叙述应当解释为仅指一个元素或者元素组合。例如,“元素A、元素B和/或元素C”可以包括仅仅元素A,仅仅元素B,仅仅元素C,元素A和元素B,元素A和元素C,元素B和元素C,或者元素A、B和C。此外,“元素A或元素B中的至少一个”可以包括元素A中的至少一个,元素B中的至少一个,或者元素A中的至少一个和元素B中的至少一个。
本文详细地描述了本公开的主题以满足法定要求。然而,描述本身并非意在限制本公开的范围。相反地,本发明人已经设想到,要求保护的主题也可以以其他的方式具体化,以包括与本文中结合其他当前或未来技术描述的步骤不同的步骤或者相似的步骤的组合。而且,尽管术语“步骤”和/或“框”在本文中可以用来隐含采用的方法的不同元素,但是这些术语不应当被解释为暗示本文公开的各个步骤之中或之间的任何特定顺序,除非明确描述了各步骤的顺序。
Claims (14)
1.一种用于在光线追踪中去噪的方法,包括:
使用被抖动的空间滤波器的滤波器抽头的位置来生成场景的渲染帧,其中对于多个渲染帧中的每个渲染帧,生成所述渲染帧包括:
至少部分地基于表示所述场景的光线追踪样本的渲染数据来确定空间滤波器中针对所述渲染帧的像素的空间滤波器的尺寸;
至少部分地基于在所述空间滤波器之间抖动与至少一个选择参数相对应的至少一个位置,选择所述空间滤波器的与所述空间滤波器的像素位置的子集相对应的所述滤波器抽头的位置;以及
使用所述滤波器抽头将所述空间滤波器应用于所述像素,以对所述空间滤波器中的与所述场景的光照条件的光线追踪样本相对应的数据值进行稀疏采样。
2.根据权利要求1所述的方法,其中所述抖动包括在所述多个渲染帧之间随机地或伪随机地确定所述至少一个选择参数。
3.根据权利要求1所述的方法,其中将多个所述空间滤波器应用于不同像素以生成所述渲染帧,以及针对多个所述空间滤波器中的每个空间滤波器的所述滤波器抽头的位置在多个所述空间滤波器之间抖动。
4.根据权利要求1所述的方法,其中所述空间滤波器是可分离滤波器,所述可分离滤波器具有第一滤波器方向和第二滤波器方向,以及选择所述滤波器抽头包括:沿着所述第一滤波器方向选择所述滤波器抽头的第一子集;以及
沿着所述第二滤波器方向选择所述滤波器抽头的第二子集。
5.根据权利要求1所述的方法,其中所述空间滤波器是可分离滤波器,所述可分离滤波器具有第一滤波器方向,所述第一滤波器方向具有第一数量的所述滤波器抽头,所述滤波器抽头的第一数量与所述空间滤波器的第二滤波器方向的所述滤波器抽头的第二数量不同。
6.根据权利要求1所述的方法,其中所述空间滤波器是可分离滤波器,并且所述可分离滤波器在滤波器方向上的应用是使用减小滤波器宽度通过多次迭代来执行的。
7.根据权利要求1所述的方法,其中生成所述渲染帧还包括:使用所述像素的历史数据值将时间滤波器应用于所述像素,其中所述空间滤波器的所述尺寸还至少部分地基于所述历史数据值的计数。
8.根据权利要求1所述的方法,其中确定所述空间滤波器的所述尺寸至少部分地基于所述场景的表面上的点与所述场景中另一对象之间的命中距离。
9.根据权利要求1所述的方法,其中将多个所述渲染帧中的每个渲染帧的所述空间滤波器应用于在所述空间滤波器的初始像素位置处的相同像素。
10.根据权利要求1所述的方法,其中所述场景的光照条件的所述光线追踪样本从由以下组成的组中选择:所述像素的光线追踪阴影样本;所述像素的光线追踪反射样本;所述像素的光线追踪环境遮挡样本;以及所述像素的光线追踪全局照明样本。
11.一种用于在光线追踪中去噪的方法,包括:
至少部分地基于表示场景的状态的光线追踪样本的渲染数据确定针对所述场景的渲染帧的各个像素的空间滤波器的尺寸;
针对多个所述空间滤波器中的每个空间滤波器,至少部分地基于在所述空间滤波器之间抖动与所述空间滤波器的滤波器抽头的位置相对应的至少一个滤波器抽头位置选择参数,来选择所述滤波器抽头的位置,所述滤波器抽头的位置与所述空间滤波器的像素位置的子集相对应;以及
使用所述空间滤波器的所述滤波器抽头将所述空间滤波器应用于所述渲染帧的所述各个像素,以对与所述场景的所述状态的光照条件的光线追踪样本相对应的所述空间滤波器中的数据值进行稀疏采样。
12.根据权利要求11所述的方法,其中所述至少一个滤波器抽头位置选择参数随机地或伪随机地抖动。
13.根据权利要求11所述的方法,其中所述空间滤波器属于应用于所述场景的包括所述渲染帧的不同渲染帧的像素的多个空间滤波器中的空间滤波器,以及至少部分地基于在所述渲染帧之间抖动的所述至少一个滤波器抽头位置选择参数确定针对所述多个空间滤波器中的每个空间滤波器的滤波器抽头的位置。
14.根据权利要求11所述的方法,进一步包括:使用所述各个像素的历史数据值将时间滤波器应用于所述渲染帧的所述各个像素,其中所述空间滤波器的尺寸还至少部分地基于所述历史数据值的相应计数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410739439.XA CN118887120A (zh) | 2018-08-14 | 2019-08-14 | 光线追踪应用中的时空去噪 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862718923P | 2018-08-14 | 2018-08-14 | |
US62/718,923 | 2018-08-14 | ||
PCT/US2019/046561 WO2020037073A1 (en) | 2018-08-14 | 2019-08-14 | Temporal-spatial denoising in ray-tracing applications |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410739439.XA Division CN118887120A (zh) | 2018-08-14 | 2019-08-14 | 光线追踪应用中的时空去噪 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112868047A CN112868047A (zh) | 2021-05-28 |
CN112868047B true CN112868047B (zh) | 2024-06-11 |
Family
ID=69523281
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410739439.XA Pending CN118887120A (zh) | 2018-08-14 | 2019-08-14 | 光线追踪应用中的时空去噪 |
CN201980067917.4A Active CN112868047B (zh) | 2018-08-14 | 2019-08-14 | 光线追踪应用中的时空去噪 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410739439.XA Pending CN118887120A (zh) | 2018-08-14 | 2019-08-14 | 光线追踪应用中的时空去噪 |
Country Status (4)
Country | Link |
---|---|
US (5) | US10991079B2 (zh) |
EP (1) | EP3837672A1 (zh) |
CN (2) | CN118887120A (zh) |
WO (1) | WO2020037073A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2541179B (en) * | 2015-07-31 | 2019-10-30 | Imagination Tech Ltd | Denoising filter |
WO2019182911A1 (en) | 2018-03-17 | 2019-09-26 | Nvidia Corporation | Reflection denoising in ray-tracing applications |
WO2020191066A1 (en) * | 2019-03-18 | 2020-09-24 | Nvidia Corporation | Adaptive ray tracing suitable for shadow rendering |
CN114424239A (zh) * | 2020-03-17 | 2022-04-29 | 辉达公司 | 用于光线追踪应用中的循环模糊的去噪技术 |
CN113628317A (zh) * | 2020-05-09 | 2021-11-09 | 华为技术有限公司 | 渲染方法、设备以及系统 |
US11798135B2 (en) * | 2021-02-24 | 2023-10-24 | Gn Audio A/S | Method and system for three-dimensional noise reduction and contrast enhancement of images |
CN113888392A (zh) * | 2021-08-27 | 2022-01-04 | 清华大学 | 一种图像渲染方法、装置、电子设备及存储介质 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5384869A (en) * | 1991-12-24 | 1995-01-24 | Sony United Kingdom Limited | Image processing apparatus |
US6310982B1 (en) * | 1998-11-12 | 2001-10-30 | Oec Medical Systems, Inc. | Method and apparatus for reducing motion artifacts and noise in video image processing |
US6389310B1 (en) * | 1999-03-02 | 2002-05-14 | Georges Demonceau | Method and apparatus for analyzing heart function using 4D ECG synchronized heart cavity tomoscintigraphy |
CN101192310A (zh) * | 2006-11-28 | 2008-06-04 | 国际商业机器公司 | 执行射线追踪的方法和系统 |
CN102270339A (zh) * | 2011-07-21 | 2011-12-07 | 清华大学 | 一种空间各异模糊核三维运动去模糊的方法及系统 |
CN104584032A (zh) * | 2012-04-13 | 2015-04-29 | 莱特克拉夫特科技有限责任公司 | 混合式精确跟踪 |
CN105405103A (zh) * | 2014-09-10 | 2016-03-16 | 辉达公司 | 通过在空间上和/或在时间上改变采样模式增强抗锯齿 |
CN106408523A (zh) * | 2015-07-31 | 2017-02-15 | 想象技术有限公司 | 降噪滤波器 |
CN106898038A (zh) * | 2017-01-22 | 2017-06-27 | 浙江大学 | 一种使用光线频率曲线合并hm滤波器的迭代式自适应渲染方法 |
CN107292965A (zh) * | 2017-08-03 | 2017-10-24 | 北京航空航天大学青岛研究院 | 一种基于深度图像数据流的虚实遮挡处理方法 |
CN107665501A (zh) * | 2016-07-29 | 2018-02-06 | 北京大学 | 一种实时变焦光线追踪渲染引擎 |
CN107850777A (zh) * | 2015-04-22 | 2018-03-27 | 易赛特股份有限公司 | 光学相差校正的方法和装置 |
US9990761B1 (en) * | 2017-08-30 | 2018-06-05 | Go Ghost, LLC | Method of image compositing directly from ray tracing samples |
CN108335349A (zh) * | 2017-01-18 | 2018-07-27 | 辉达公司 | 利用神经网络滤波图像数据 |
Family Cites Families (62)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2669599B2 (ja) | 1994-09-16 | 1997-10-29 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 陰影描画方法及び3次元グラフィック・コンピュータ・システム |
US6028608A (en) | 1997-05-09 | 2000-02-22 | Jenkins; Barry | System and method of perception-based image generation and encoding |
US6335990B1 (en) | 1997-07-03 | 2002-01-01 | Cisco Technology, Inc. | System and method for spatial temporal-filtering for improving compressed digital video |
FR2772956A1 (fr) | 1997-12-23 | 1999-06-25 | Philips Electronics Nv | Procede de traitement d'image incluant des etapes de filtrage spatiotemporel du bruit et appareil d'imagerie medicale mettant en oeuvre ce procede |
WO2000010372A2 (en) | 1998-08-20 | 2000-03-02 | Apple Computer, Inc. | System, apparatus and method for spatially sorting image data in a three-dimensional graphics pipeline |
US6760024B1 (en) | 2000-07-19 | 2004-07-06 | Pixar | Method and apparatus for rendering shadows |
JP2004518360A (ja) | 2001-01-26 | 2004-06-17 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 空間−時間フィルタユニット及びそのような空間−時間フィルタユニットを含む画像表示装置 |
JP2003331313A (ja) | 2002-05-14 | 2003-11-21 | Konami Computer Entertainment Japan Inc | 画像処理プログラム |
US7199838B2 (en) | 2004-06-17 | 2007-04-03 | Samsung Electronics Co., Ltd. | Motion adaptive noise reduction apparatus and method for video signals |
US8139059B2 (en) | 2006-03-31 | 2012-03-20 | Microsoft Corporation | Object illumination in a virtual environment |
US7969438B2 (en) | 2007-01-23 | 2011-06-28 | Pacific Data Images Llc | Soft shadows for cinematic lighting for computer graphics |
US8189003B2 (en) | 2007-05-08 | 2012-05-29 | Dreamworks Animation Llc | System and method for rendering computer graphics utilizing a shadow illuminator |
EP2058764B1 (en) | 2007-11-07 | 2017-09-06 | Canon Kabushiki Kaisha | Image processing apparatus and image processing method |
US8447130B2 (en) | 2007-12-31 | 2013-05-21 | Intel Corporation | History-based spatio-temporal noise reduction |
JP2010033296A (ja) | 2008-07-28 | 2010-02-12 | Namco Bandai Games Inc | プログラム、情報記憶媒体及び画像生成システム |
KR101508386B1 (ko) | 2008-09-29 | 2015-04-03 | 엘지전자 주식회사 | 움직임 적응적 잡음 제거 방법 및 그 장치 |
GB2465793A (en) | 2008-11-28 | 2010-06-02 | Sony Corp | Estimating camera angle using extrapolated corner locations from a calibration pattern |
GB2465792A (en) | 2008-11-28 | 2010-06-02 | Sony Corp | Illumination Direction Estimation using Reference Object |
GB2465791A (en) | 2008-11-28 | 2010-06-02 | Sony Corp | Rendering shadows in augmented reality scenes |
US9411413B2 (en) | 2010-08-04 | 2016-08-09 | Apple Inc. | Three dimensional user interface effects on a display |
JP5618721B2 (ja) | 2010-09-13 | 2014-11-05 | 株式会社小糸製作所 | レンズの製造方法 |
US8471932B2 (en) | 2010-09-30 | 2013-06-25 | Apple Inc. | Spatial filtering for image signal processing |
US8773593B2 (en) * | 2011-01-03 | 2014-07-08 | Arm Limited | Noise reduction filter circuitry and method |
CN102346919B (zh) | 2011-11-21 | 2013-08-21 | 长春理工大学 | 在3d动画绘制中利用帧间时间相关的方法 |
WO2013144898A2 (en) | 2012-03-29 | 2013-10-03 | Ecole Polytechnique Federale De Lausanne (Epfl) | Methods and apparatus for imaging with multimode optical fibers |
WO2014053165A1 (en) | 2012-10-01 | 2014-04-10 | Telefonaktiebolaget L M Ericsson (Publ) | Method and apparatus for generating a depth cue |
KR101524085B1 (ko) | 2013-01-04 | 2015-05-29 | 삼성메디슨 주식회사 | 의료 영상 제공 장치 및 방법 |
JP5731566B2 (ja) | 2013-04-23 | 2015-06-10 | 株式会社スクウェア・エニックス | 情報処理装置、制御方法、及び記録媒体 |
US9232119B2 (en) * | 2013-10-08 | 2016-01-05 | Raytheon Company | Integrating image frames |
KR20150054195A (ko) | 2013-11-11 | 2015-05-20 | 삼성전자주식회사 | 영상신호의 노이즈 제거 방법과 이를 이용한 영상표시장치 |
KR102197067B1 (ko) * | 2014-04-02 | 2020-12-30 | 삼성전자 주식회사 | 멀티 프레임들의 동일한 영역을 연속으로 렌더링하는 방법 및 장치 |
AU2015202235B2 (en) | 2014-04-30 | 2020-08-06 | Xrsciences Llc | Air slide analyzer system and method |
CN105096375B (zh) | 2014-05-09 | 2020-03-13 | 三星电子株式会社 | 图像处理方法和设备 |
US10242493B2 (en) | 2014-06-30 | 2019-03-26 | Intel Corporation | Method and apparatus for filtered coarse pixel shading |
US9747718B2 (en) * | 2014-08-12 | 2017-08-29 | Nvidia Corporation | System, method, and computer program product for performing object-space shading |
CN104346831B (zh) | 2014-11-01 | 2017-02-22 | 长春理工大学 | 用于近似绘制三维场景柔和阴影的方法 |
EP3032241B1 (en) | 2014-12-11 | 2023-03-01 | X-Rite Europe GmbH | Method and apparatus for digitizing the appearance of a real material |
GB2537729B (en) | 2015-03-03 | 2017-07-19 | Imagination Tech Ltd | Systems and methods for soft shadowing in 3-D rendering |
US9984493B2 (en) | 2015-03-09 | 2018-05-29 | Siemens Healthcare Gmbh | Method and system for volume rendering based on 3D image filtering and real-time cinematic rendering |
JP6463177B2 (ja) | 2015-03-11 | 2019-01-30 | キヤノン株式会社 | 画像処理装置およびその制御方法 |
US9672596B2 (en) * | 2015-03-31 | 2017-06-06 | Olympus Corporation | Image processing apparatus to generate a reduced image of an endoscopic image |
US9659405B2 (en) | 2015-04-01 | 2017-05-23 | Toshiba Medical Systems Corporation | Image processing method and apparatus |
US10303973B2 (en) | 2015-04-15 | 2019-05-28 | Canon Kabushiki Kaisha | Image processing apparatus, image processing method, and storage medium for lighting processing on image using model data |
US20160321523A1 (en) | 2015-04-30 | 2016-11-03 | The Regents Of The University Of California | Using machine learning to filter monte carlo noise from images |
WO2017029061A1 (en) | 2015-08-20 | 2017-02-23 | Philips Lighting Holding B.V. | A method of visualizing a shape of a linear lighting device |
US9936151B2 (en) * | 2015-10-16 | 2018-04-03 | Capsovision Inc | Single image sensor for capturing mixed structured-light images and regular images |
US11010956B2 (en) * | 2015-12-09 | 2021-05-18 | Imagination Technologies Limited | Foveated rendering |
KR102636243B1 (ko) | 2016-02-19 | 2024-02-14 | 삼성전자주식회사 | 이미지를 처리하기 위한 방법 및 그 전자 장치 |
US9942970B2 (en) | 2016-02-29 | 2018-04-10 | Symmetric Labs, Inc. | Method for automatically mapping light elements in an assembly of light structures |
US10438400B2 (en) * | 2016-03-08 | 2019-10-08 | Nvidia Corporation | Perceptually-based foveated rendering using a contrast-enhancing filter |
US20170323471A1 (en) | 2016-05-06 | 2017-11-09 | National Taiwan University | 3D rendering method and 3D graphics processing device |
US9892549B2 (en) | 2016-06-15 | 2018-02-13 | Pixar | Adaptive rendering with linear predictions |
CN106228599B (zh) | 2016-06-24 | 2019-04-05 | 长春理工大学 | 基于两级可见性平滑滤波的近似柔和阴影绘制方法 |
DE102016214196B4 (de) | 2016-08-02 | 2019-11-21 | Siemens Aktiengesellschaft | Unterbrechereinheit für einen Leistungsschalter |
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 |
CN106485778B (zh) | 2016-10-19 | 2019-03-05 | 长春理工大学 | 利用位置敏感可见性平滑滤波实现三维场景近似柔和阴影绘制的方法 |
AU2016427777B2 (en) | 2016-10-31 | 2022-12-15 | Victoria Link Limited | A rendering process and system |
US11113800B2 (en) * | 2017-01-18 | 2021-09-07 | Nvidia Corporation | Filtering image data using a neural network |
US10586310B2 (en) | 2017-04-06 | 2020-03-10 | Pixar | Denoising Monte Carlo renderings using generative adversarial neural networks |
EP3399502A1 (en) | 2017-05-02 | 2018-11-07 | Thomson Licensing | Method and device for determining lighting information of a 3d scene |
WO2019182911A1 (en) | 2018-03-17 | 2019-09-26 | Nvidia Corporation | Reflection denoising in ray-tracing applications |
-
2019
- 2019-08-02 US US16/530,854 patent/US10991079B2/en active Active
- 2019-08-14 US US16/540,946 patent/US11113792B2/en active Active
- 2019-08-14 CN CN202410739439.XA patent/CN118887120A/zh active Pending
- 2019-08-14 EP EP19762269.9A patent/EP3837672A1/en active Pending
- 2019-08-14 WO PCT/US2019/046561 patent/WO2020037073A1/en unknown
- 2019-08-14 CN CN201980067917.4A patent/CN112868047B/zh active Active
-
2021
- 2021-04-27 US US17/241,782 patent/US11663701B2/en active Active
- 2021-07-15 US US17/376,939 patent/US11688042B2/en active Active
-
2023
- 2023-05-15 US US18/317,766 patent/US20230289924A1/en active Pending
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5384869A (en) * | 1991-12-24 | 1995-01-24 | Sony United Kingdom Limited | Image processing apparatus |
US6310982B1 (en) * | 1998-11-12 | 2001-10-30 | Oec Medical Systems, Inc. | Method and apparatus for reducing motion artifacts and noise in video image processing |
US6389310B1 (en) * | 1999-03-02 | 2002-05-14 | Georges Demonceau | Method and apparatus for analyzing heart function using 4D ECG synchronized heart cavity tomoscintigraphy |
CN101192310A (zh) * | 2006-11-28 | 2008-06-04 | 国际商业机器公司 | 执行射线追踪的方法和系统 |
CN102270339A (zh) * | 2011-07-21 | 2011-12-07 | 清华大学 | 一种空间各异模糊核三维运动去模糊的方法及系统 |
CN104584032A (zh) * | 2012-04-13 | 2015-04-29 | 莱特克拉夫特科技有限责任公司 | 混合式精确跟踪 |
CN105405103A (zh) * | 2014-09-10 | 2016-03-16 | 辉达公司 | 通过在空间上和/或在时间上改变采样模式增强抗锯齿 |
CN107850777A (zh) * | 2015-04-22 | 2018-03-27 | 易赛特股份有限公司 | 光学相差校正的方法和装置 |
CN106408523A (zh) * | 2015-07-31 | 2017-02-15 | 想象技术有限公司 | 降噪滤波器 |
CN107665501A (zh) * | 2016-07-29 | 2018-02-06 | 北京大学 | 一种实时变焦光线追踪渲染引擎 |
CN108335349A (zh) * | 2017-01-18 | 2018-07-27 | 辉达公司 | 利用神经网络滤波图像数据 |
CN106898038A (zh) * | 2017-01-22 | 2017-06-27 | 浙江大学 | 一种使用光线频率曲线合并hm滤波器的迭代式自适应渲染方法 |
CN107292965A (zh) * | 2017-08-03 | 2017-10-24 | 北京航空航天大学青岛研究院 | 一种基于深度图像数据流的虚实遮挡处理方法 |
US9990761B1 (en) * | 2017-08-30 | 2018-06-05 | Go Ghost, LLC | Method of image compositing directly from ray tracing samples |
Non-Patent Citations (1)
Title |
---|
Removing the Noise in Monte Carlo Rendering with General Image Denoising Algorithms;NIMA KHADEMI KALANTARI 等;COMPUTER GRAPHICS FORUM;第32卷(第2期);第93-102页 * |
Also Published As
Publication number | Publication date |
---|---|
WO2020037073A1 (en) | 2020-02-20 |
US20230289924A1 (en) | 2023-09-14 |
US11663701B2 (en) | 2023-05-30 |
US20210264571A1 (en) | 2021-08-26 |
US11113792B2 (en) | 2021-09-07 |
US20200058103A1 (en) | 2020-02-20 |
US20210342980A1 (en) | 2021-11-04 |
EP3837672A1 (en) | 2021-06-23 |
US11688042B2 (en) | 2023-06-27 |
US10991079B2 (en) | 2021-04-27 |
CN112868047A (zh) | 2021-05-28 |
CN118887120A (zh) | 2024-11-01 |
US20200058105A1 (en) | 2020-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112868047B (zh) | 光线追踪应用中的时空去噪 | |
US12026822B2 (en) | Shadow denoising in ray-tracing applications | |
US11961176B2 (en) | Global illumination using shared lighting contributions for interactions in path tracing | |
US20190295311A1 (en) | Stable ray tracing | |
CN106408523A (zh) | 降噪滤波器 | |
US11823321B2 (en) | Denoising techniques suitable for recurrent blurs | |
US11995759B2 (en) | Adaptive ray tracing suitable for shadow rendering | |
WO2021167704A1 (en) | Planar deviation based image reprojection | |
US9215440B2 (en) | Efficient EWA video rendering | |
US11600036B2 (en) | Spatiotemporal self-guided shadow denoising in ray-tracing applications |
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 | ||
GR01 | Patent grant |