IP Library › Granted Patent US 11,663,773
Granted Patent B2
US 11,663,773 · App. 17/184,401 · Granted May 30, 2023

Using importance resampling to reduce the memory incoherence of light sampling

Inventors: Christopher Ryan Wyman (Redmond, WA); Robert Anthony Alfieri (Chapel Hill, NC); William Parsons Newhall, Jr. (Woodside, CA); Peter Schuyler Shirley (Salt Lake City, UT)
Assignee: NVIDIA CORPORATION
G06T15/50G06T1/60
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 11,663,773
App. No.
17/184,401
Granted
May 30, 2023
Kind
B2
Abstract

Devices, systems, and techniques to incorporate lighting effects into computer-generated graphics. In at least one embodiment, a virtual scene comprising a plurality of lights is rendered by randomly sampling a set of lights from among the plurality of lights prior to rendering a frame of graphics. A subset of the set of lights is selected and used to render pixels within one or more portions of the frame.

Claims (51)

1. A system, comprising:

at least one processor; and

at least one memory comprising instructions that, in response to execution by the at least one processor, cause the system to at least:

select a set of light sources from among a plurality of light sources associated with a virtual scene, the set of light sources selected based, at least in part, on a first one or more random factors;

select, based at least in part on a second one or more random factors, a subset of light sources from the set of light sources, the subset of light sources to be used to generate a frame of graphics, wherein the subset of light sources is selected so that data indicative of the subset has a total size less than memory predicted to be available in a processor cache; and

render a pixel of the frame of graphics based, at least in part, on the subset of light sources.

2. The system of claim 1 , the at least one memory comprising further instructions that, in response to execution by the at least one processor, cause the system to at least:

select an additional set of light sources to use to generate an additional frame of graphics, the additional set of light sources selected from among the plurality of light sources associated with the virtual scene.

3. The system of claim 1 , the at least one memory comprising further instructions that, in response to execution by the at least one processor, cause the system to at least:

render a second pixel of the frame of graphics using a second subset of light sources selected from the set of light sources.

4. The system of claim 1 , wherein the pixel is one of a plurality of pixels in a first tile of the frame of graphics, and wherein pixels in a second tile are rendered using a different subset of light sources.

5. The system of claim 1 , the at least one memory comprising further instructions that, in response to execution by the at least one processor, cause the system to at least:

render a plurality of tiles of the frame of graphics using the subset of light sources, the plurality of tiles non-contiguous in the frame of graphics, the plurality of tiles rendered consecutively to preserve residency of the subset of light sources in the processor cache.

6. The system of claim 1 , the at least one memory comprising further instructions that, in response to execution by the at least one processor, cause the system to at least:

shuffle one or more light sources from the subset of light sources into an additional subset of light sources; and

use the additional subset of light sources to render an additional pixel of the frame of graphics.

7. The system of claim 1 , wherein the subset of light sources is selected to have a total size that is less than an amount of processor cache memory available during rendering of the frame of graphics.

8. The system of claim 1 , wherein the first one or more random factors are weighted to favor selection of light sources based, at least in part, on intensity of a selected light.

9. A method, comprising:

selecting, based at least in part on a first one or more random factors, a set of light sources from a plurality of light sources associated with a virtual scene; and

generating a frame of graphics using light sources from the set of light sources, by at least:

selecting, based at least in part on a second one or more random factors, a subset of light sources from the set of light sources; and

rendering a pixel of the frame of graphics based, at least in part, on the subset of light sources.

10. The method of claim 9 , further comprising:

generating an additional frame of graphics using an additional set of light sources, the additional set of light sources selected from among the plurality of light sources associated with the virtual scene.

11. The method of claim 9 , further comprising:

rendering a second pixel of the frame of graphics using a second subset of light sources selected from the set of light sources.

12. The method of claim 9 , further comprising:

rendering pixels in different tiles of the frame of graphics using a different subset of light sources.

13. The method of claim 9 , further comprising:

rendering a plurality of tiles of the frame of graphics using the subset of light sources, the plurality of tiles non-contiguous in the frame of graphics and rendered consecutively.

14. The method of claim 9 , further comprising:

selecting the subset of light sources to have a size less than a processor cache size.

15. The method of claim 9 , further comprising:

generating an additional subset of light sources based, at least in part, on randomly selecting at least a portion of the subset of light sources for inclusion in the additional subset of light sources; and

generating an additional tile of the frame of graphics using the additional subset of light sources.

16. The method of claim 9 , further comprising:

generating an additional subset of light sources by at least replacing a portion of the subset of light sources with one or more additional light sources selected from the set of light sources.

17. A non-transitory computer-readable storage medium comprising instructions that, in response to execution by at least one processor of a computing device, cause the computing device to at least:

select a set of light sources from among light sources associated with a virtual scene, the set of light sources selected at least partially at random, wherein a frame of graphics is to be rendered based, at least in part, on the set of light sources; and

generate a portion of the frame of graphics using a subset of light sources from the set of light sources, the subset of light sources selected at least partially at random from the set of light sources, wherein a pixel of the portion of the frame of graphics is rendered based at least in part on the subset of light sources.

18. The non-transitory computer-readable storage medium of claim 17 , comprising further instructions that, in response to execution by at least one processor of the computing device, cause the computing device to at least:

generate an additional frame of graphics using an additional set of light sources, the additional set of light sources selected from among the light sources associated with the virtual scene.

19. The non-transitory computer-readable storage medium of claim 17 , comprising further instructions that, in response to execution by at least one processor of the computing device, cause the computing device to at least:

render pixels in different portions of the frame of graphics using a different subset of light sources.

20. The non-transitory computer-readable storage medium of claim 17 , comprising further instructions that, in response to execution by at least one processor of the computing device, cause the computing device to at least:

render a plurality of portions of the frame of graphics using the subset of light sources, the plurality of portions rendered consecutively.

21. The non-transitory computer-readable storage medium of claim 17 , comprising further instructions that, in response to execution by at least one processor of the computing device, cause the computing device to at least:

generate an additional subset of light sources based, at least in part, on selecting one or more light sources from the subset of light sources.

22. The non-transitory computer-readable storage medium of claim 17 , wherein a majority of lights in the subset of light sources remain resident in a processor cache during rendering of one or more portions of the frame of graphics.

23. The non-transitory computer-readable storage medium of claim 17 , wherein the set of light sources and subset of light sources are selected based, at least in part, on at least one of intensity of a selected light source or distance to the selected light source.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2021
From: WYMAN, CHRISTOPHER RYAN; ALFIERI, ROBERT ANTHONY; NEWHALL, WILLIAM PARSONS, JR.; SHIRLEY, PETER SCHUYLER
To: NVIDIA CORPORATION
Reel/Frame 055396/0847 →
Continuity (2)
Provisional Application 63068906 · Aug 21, 2020
Related Publication 20220058861A1 · Feb 24, 2022