IP Library › Granted Patent US 9,953,457
Granted Patent B2
US 9,953,457 · App. 14/166,794 · Granted Apr 24, 2018

System, method, and computer program product for performing path space filtering

Inventors: Alexander Keller (Berlin, DE); Ken Patrik Dahm (Berlin, DE); Nikolaus Binder (Berlin, DE)
Assignee: NVIDIA Corporation
G06T15/506G06T15/06
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,953,457
App. No.
14/166,794
Granted
Apr 24, 2018
Kind
B2
Abstract

A system, method, and computer program product are provided for performing path space filtering. In use, a set of light transport paths associated with a scene is sampled. Additionally, a plurality of vertices associated with the sampled set of light transport paths is selected, where each selected vertex has an associated throughput and light contribution. Further, an averaged light contribution of each of the selected plurality of vertices is determined, utilizing one or more weights. Further still, the averaged light contribution of each of the selected plurality of vertices is combined after multiplying the averaged light contribution of each of the selected vertices by the associated throughput of the vertex.

Claims (99)

1. A method, comprising:

sampling a set of light transport paths associated with a scene;

selecting a plurality of vertices associated with the sampled set of light transport paths, wherein each selected vertex in the plurality of vertices is associated with a throughput and a light contribution;

determining an averaged light contribution of each selected vertex in the plurality of vertices, utilizing one or more weights, wherein the averaged light contribution for a particular selected vertex is calculated based on the light contributions for vertices in proximity to the particular selected vertex;

combining the averaged light contribution c of each selected vertex in the plurality of vertices with the throughput α associated with the selected vertex to generate a product, α· c , for the selected vertex, wherein the throughput associated with each selected vertex includes an accumulated attenuation of light as transported from that vertex to at least one of a camera or a screen;

forming an image by accumulating the product for each selected vertex in the plurality of vertices; and

for the i-th light transport path within the sampled set of light transport paths, storing at least one vertex x i , an attenuation α i along an eye path segment to the vertex x i , and a radiance contribution c i , of a light path segment to the vertex x i .

2. The method of claim 1 , further comprising repeating the selecting, determining, and combining in an iterative manner.

3. The method of claim 1 , further comprising locally filtering the sampled set of light transport paths.

4. The method of claim 3 , wherein the filtering is performed before the determining of the averaged light contribution of each selected vertex in the plurality of vertices.

5. The method of claim 3 , wherein one or more of a random, pseudo-random, or quasi-random selection of the samples to be filtered is performed.

6. The method of claim 3 , wherein the local filtering improves an efficiency of a numerical integro-approximation.

7. The method of claim 3 , wherein combining the averaged light contribution of each selected vertex in the plurality of vertices is performed during a light transport simulation, and the local filtering improves an efficiency of the light transport simulation.

8. The method of claim 3 , wherein locally filtering the sampled set of light transport paths is performed linearly and is applied on top of a sampling based rendering engine.

9. The method of claim 1 , wherein the set of light transport paths is sampled by one or more of generating eye paths, generating light paths, and connecting one or more eye paths and light paths by one or more of shadow rays and proximity.

10. The method of claim 1 , wherein the method is implemented as a progressive method.

11. The method of claim 1 , wherein c i is a ratio of the sum of weighted contributions

w

i

,

j

·

c

⌊

i

b

m

⌋

⁢

b

m

+

j

and the sum of weights w i,j for all vertices

x

⌊

i

b

m

⌋

⁢

b

m

+

j

⁢

⁢

in a ball B of radius r(n) around the vertex x i , as selected by a characteristic function χ B(n) , for m contiguous blocks b m of n light transport paths.

12. The method of claim 11 , wherein the radius r(n) of the ball B has the property of

r

2

⁡

(

n

)

:=

r

0

2

n

α

⁢

⁢

for

⁢

⁢

α

∈

(

0

,

1

)

.

13. The method of claim 11 , wherein the radius r(n) is chosen by at least one of a distance along a path or a solid angle.

14. The method of claim 13 , wherein each of the one or more weights measure a similarity between one or more of the selected plurality of vertices, where such similarity depends on one or more of a geometric similarity, a transport similarity, and a visibility similarity between one or more of the selected plurality of vertices.

15. The method of claim 1 , wherein the plurality of vertices are selected utilizing a range search.

16. The method of claim 15 , wherein the range search is performed by at least one of a hash grid, a classic range search, and a divide-and-conquer method.

17. The method of claim 1 , wherein the method is applied across multiple views for one or more of rendering stereo image pairs, rendering multiple frames in an animation, and rendering a set of images required for one or more light field displays.

18. The method of claim 1 , further comprising simulating motion blur by averaging one or more images at one or more distinct points in time.

19. The method of claim 1 , wherein sampling the set of light transport paths is decoupled from one or more shading operations.

20. The method of claim 1 , wherein the sampling a set of light transport paths is performed by one or more of a random, pseudo-random, or quasi-random sampling.

21. The method of claim 1 , further comprising averaging the radiance contribution c i with an associated wavelength λ i to consistently simulate spectral light transport.

22. The method of claim 1 , wherein the light transport paths include light transport paths with vertices in one or more of participating media and translucent matter.

23. The method of claim 1 , wherein the determining of an averaged light contribution of each selected vertex in the plurality of vertices, utilizing one or more weights, is iterated.

24. A non-transitory computer-readable storage medium storing instructions that, when executed by a processor, cause the processor to perform steps comprising:

sampling a set of light transport paths associated with a scene;

selecting a plurality of vertices associated with the sampled set of light transport paths, wherein each selected vertex in the plurality of vertices is associated with a throughput and a light contribution;

determining an averaged light contribution of each selected vertex in the plurality of vertices, utilizing one or more weights, wherein the averaged light contribution for a particular selected vertex is calculated based on the light contributions for vertices in proximity to the particular selected vertex; combining the averaged light contribution c of each selected vertex in the plurality of vertices with the throughput α associated with the selected vertex to generate a product, α· c , for the selected vertex, wherein the throughput associated with each selected vertex includes an accumulated attenuation of light as transported from that vertex to at least one of a camera or a screen;

forming an image by accumulating the product for each selected vertex in the plurality of vertices; and

for the i-th light transport path within the sampled set of light transport paths, storing at least one vertex x i , an attenuation α i along an eye path segment to the vertex x i , and a radiance contribution c i , of a light path segment to the vertex x i .

25. A system comprising:

a processor for:

sampling a set of light transport paths associated with a scene;

selecting a plurality of vertices associated with the sampled set of light transport paths, wherein each selected vertex in the plurality of vertices is associated with a throughput and a light contribution;

determining an averaged light contribution of each selected vertex in the plurality of vertices, utilizing one or more weights, wherein the averaged light contribution for a particular selected vertex is calculated based on the light contributions for vertices in proximity to the particular selected vertex;

combining the averaged light contribution c of each selected vertex in the plurality of vertices with the throughput α associated with the selected vertex to generate a product, α· c , for the selected vertex, wherein the throughput associated with each selected vertex includes an accumulated attenuation of light as transported from that vertex to at least one of a camera or a screen;

forming an image by accumulating the product for each selected vertex in the plurality of vertices; and

for the i-th light transport path within the sampled set of light transport paths, storing at least one vertex x i , an attenuation α i along an eye path segment to the vertex x i , and a radiance contribution c i , of a light path segment to the vertex x i .

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 2, 2014
From: KELLER, ALEXANDER; DAHM, KEN; BINDER, NIKOLAUS
To: NVIDIA CORPORATION
Reel/Frame 032587/0651 →
Continuity (2)
Provisional Application 61814734 · Apr 22, 2013
Related Publication 20140313198A1 · Oct 23, 2014