IP Library › Granted Patent US 11,756,254
Granted Patent B2
US 11,756,254 · App. 17/115,010 · Granted Sep 12, 2023

Light importance caching using spatial hashing in real-time ray tracing applications

Inventors: Blagovest Borislavov Taskov (Saratoga, CA); Apollo Ellis (University Place, WA)
Assignee: Nvidia Corporation
G06T15/06G06T1/60G06T15/506
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,756,254
App. No.
17/115,010
Granted
Sep 12, 2023
Kind
B2
Abstract

Light contribution information can be determined and cached for use in rendering image frames for a scene. In at least one embodiment, a spatial hash data structure can be used to split the scene into regions, such as octahedral voxels. Using cast light rays, an average light contribution can be computed for each individual voxel. Those light values can then be used to build a cumulative distribution function for each voxel that can be used to select which lights to sample for a given frame during rendering. The sampling for a region or voxel can be based at least in part upon the number of contributing lights for that region, as well as the relative contributions of those lights. Such an approach can be very bandwidth and cache efficient, while providing high image quality.

Claims (61)

1. A computer-implemented method, comprising:

determining light information for a first set of rays cast for two or more light sources in a virtual environment, the light information including average light contribution from the first set of rays determined based at least on a directional magnitude of the two or more light sources;

determining, based at least in part on the light information, values for the two or more light sources with respect to a plurality of spatial regions of the virtual environment, wherein a spatial hashing algorithm segments the virtual environment into the plurality spatial regions corresponding to a plurality of non-cubic voxels;

selecting, based at least in part upon the values, a second set of rays to sample for the two or more light sources with respect to the plurality of spatial regions, the second set of rays including a greater number of samples for the light sources with higher values;

sampling the second set of rays to obtain updated illumination information for the plurality of spatial regions; and

rendering an image for the virtual environment using the updated illumination information.

2. The computer-implemented method of claim 1 , further comprising:

using the spatial hashing algorithm to determine the plurality of spatial regions of the virtual environment, wherein the spatial regions also provide directional information.

3. The computer-implemented method of claim 2 , wherein the plurality of non-cubic voxels is a plurality of octahedral voxels, the plurality of octahedral voxels being of one or more sizes.

4. The computer-implemented method of claim 3 , further comprising:

determining the values for a selected light source based at least in part upon directionality information for the selected light source with respect to respective octahedral voxels.

5. The computer-implemented method of claim 1 , further comprising:

using the values to build cumulative distribution functions (CDFs) for the plurality of spatial regions; and

caching selection probability data determined according to the CDFs for the plurality of spatial regions, the selection probability data to be used to select the second set of rays.

6. The computer-implemented method of claim 5 , further comprising:

updating the CDFs for the plurality of spatial regions for at least a subset of images of an image sequence for the virtual environment.

7. The computer-implemented method of claim 1 , further comprising:

selecting up to a maximum number of light sources with highest values from which to sample the second set of rays.

8. The computer-implemented method of claim 1 , further comprising:

determining the values for the two or more light sources with respect to the plurality of spatial regions based at least in part upon average light contributions for individual light sources with respect to individual spatial regions.

9. The computer-implemented method of claim 1 , further comprising:

causing two or more light sources with determined values below a threshold to be considered for sampling for one or more subsequent images to be rendered.

10. A system, comprising:

a processor; and

memory including instructions that, when executed by the processor, cause the system to:

determine light information for a first set of rays cast for two or more light sources in a virtual environment, the light information including average light contribution from the first set of rays determined based at least on a directional magnitude of the two or more light sources;

determine, based at least in part on the light information, values for the two or more light sources with respect to a plurality of spatial regions of the virtual environment, wherein a spatial hashing algorithm segments the virtual environment into the plurality spatial regions corresponding to a plurality of non-cubic voxels;

select, based at least in part upon the values, a second set of rays to sample for the two or more light sources with respect to the plurality of spatial regions, the second set of rays including a greater number of samples for light sources with higher values;

sample the second set of rays to obtain updated illumination information for the plurality of spatial regions; and

render an image for the virtual environment using the updated illumination information.

11. The system of claim 10 , wherein the instructions when executed further cause the system to:

use the spatial hashing algorithm to determine the plurality of spatial regions of the virtual environment.

12. The system of claim 11 , wherein the plurality of non-cubic voxels is a plurality of octahedral voxels, the plurality of octahedral voxels being of one or more sizes.

13. The system of claim 11 , wherein the instructions when executed further cause the system to:

determine the values for a selected light source based at least in part upon directionality information for the selected light source with respect to respective octahedral voxels.

14. The system of claim 10 , wherein the instructions when executed further cause the system to:

use the values to build cumulative distribution functions (CDFs) for the plurality of spatial regions; and

cache selection probability data determined according to the CDFs for the plurality of spatial regions, the selection probability data to be used to select the second set of rays.

15. The system of claim 14 , wherein the instructions when executed further cause the system to:

update the CDFs for the plurality of spatial regions for at least a subset of images of an image sequence for the virtual environment.

16. The system of claim 10 , wherein the instructions when executed further cause the system to:

determine the values for the two or more light sources with respect to the plurality of spatial regions based at least in part upon average light contributions for individual light sources with respect to individual spatial regions.

17. The system of claim 10 , wherein the system comprises at least one of:

a system for performing graphical rendering operations;

a system for performing simulation operations;

a system for performing simulation operations to test or validate autonomous machine applications;

a system for performing deep learning operations;

a system implemented using an edge device;

a system incorporating one or more Virtual Machines (VMs);

a system implemented at least partially in a data center; or

a system implemented at least partially using cloud computing resources.

18. A non-transitory computer-readable storage medium including instructions that, when performed by one or more processors, cause the one or more processors to:

determine light information for a first set of rays cast for two or more light sources in a virtual environment, the light information including average light contribution from the first set of rays determined based at least on a directional magnitude of the two or more light sources;

determine, based at least in part on the light information, values for the two or more light sources with respect to a plurality of spatial regions of the virtual environment, wherein a spatial hashing algorithm segments the virtual environment into the plurality spatial regions corresponding to a plurality of non-cubic voxels;

select, based at least in part upon the values, a second set of rays to sample for the two or more light sources with respect to the plurality of spatial regions, the second set of rays including a greater number of samples for light sources with higher values;

sample the second set of rays to obtain updated illumination information for the plurality of spatial regions; and

render an image for the virtual environment using the updated illumination information.

19. The non-transitory computer-readable storage medium of claim 18 , wherein the instructions when performed further cause the one or more processors to:

use the spatial hashing algorithm to determine the plurality of spatial regions of the virtual environment, wherein the plurality of spatial regions are octahedral voxels of one or more sizes.

20. The non-transitory computer-readable storage medium of claim 19 , wherein the instructions when performed further cause the one or more processors to:

determine the values for a selected light source based at least in part upon directionality information for the selected light source with respect to respective octahedral voxels.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2020
From: TASKOV, BLAGOVEST BORISLAVOV; ELLIS, APOLLO
To: NVIDIA CORPORATION
Reel/Frame 054578/0132 →
Continuity (1)
Related Publication 20220180591A1 · Jun 9, 2022