IP Library Granted Patent US 9,129,443
Granted Patent B2
US 9,129,443 · App. 13/899,053 · Granted Sep 8, 2015

Cache-efficient processor and method of rendering indirect illumination using interleaving and sub-image blur

Inventors: Holger Gruen (Munich, DE); Louis Bavoil (Courbevoie, FR)
Assignee: NVIDIA CORPORATION
G06T15/503G06T1/60G06T15/506G06T15/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 9,129,443
App. No.
13/899,053
Granted
Sep 8, 2015
Kind
B2
Abstract

A cache-efficient processor and method for rendering indirect illumination using interleaving and sub-image blur. One embodiment of the processor is configured to render an indirect illumination image and includes: (1) a buffer restructurer configured to organize a reflective shadow map (RSM), rendered with respect to a reference point, into a plurality of unique sub-RSMs, each having sub-RSM pixels, (2) an indirect illumination computer configured to employ interleaved sampling on the plurality of unique sub-RSMs to generate a plurality of indirect illumination sub-images, and (3) a filter operable to smooth accumulated light values of the indirect illumination sub-images for subsequent interleaving into the indirect illumination image.

Claims (37)

1. A processor configured to render an indirect illumination image, comprising:

a buffer restructurer configured to organize a reflective shadow map (RSM), rendered with respect to a reference view, into a plurality of unique sub-RSMs, each having sub-RSM pixels;

an indirect illumination computer configured to employ interleaved sampling on said plurality of unique sub-RSMs to generate a plurality of indirect illumination sub-images; and

a filter operable to smooth accumulated light values of said indirect illumination sub-images for subsequent interleaving into said indirect illumination image, wherein said organizing said RSM into said plurality of unique sub-RSMs comprises assigning each pixel of said RSM to a single sub-RSM so that each sub-RSM has a same resolution and number of said sub-RSM pixels as all other sub-RSMs.

2. The processor recited in claim 1 wherein said RSM includes pixel-wise buffers configured to store depth, color and normal data.

3. The processor recited in claim 1 further comprising a renderer configured to render said RSM and said reference view is a light source.

4. The processor recited in claim 1 wherein said filter is a cross-bilateral blurring filter.

5. The processor recited in claim 1 wherein said indirect illumination computer is further configured to employ interleaved sampling about each of said sub-RSM pixels to calculate and accumulate light contributions from neighboring sub-RSM pixels, thereby generating said plurality of indirect illumination sub-images.

6. The processor recited in claim 1 wherein each of said sub-RSM pixels is drawn from said RSM at irregular intervals.

7. A method of rendering indirect illumination for a full-resolution image of a scene, comprising:

rendering said scene into a reflective shadow map (RSM) in light-space and a camera-view G-buffer;

restructuring said RSM into sub-RSMs and said camera-view G-buffer into camera-view sub-buffers representing sub-images of said full-resolution image;

employing interleaved sampling on said sub-RSMs and said camera-view sub-buffers to compute indirect illumination for each pixel in each of said sub-images, thereby generating indirect illumination sub-images;

blurring said indirect illumination sub-images; and

interleaving blurred indirect illumination sub-images into a higher-resolution indirect illumination image, wherein said restructuring said RSM into said sub-RSMs comprises assigning each pixel of said RSM to a single sub-RSM so that each sub-RSM has a same resolution and number of said sub-RSM pixels as all other sub-RSMs.

8. The method recited in claim 7 further comprising shuffling pixels of said RSM before said restructuring.

9. The method recited in claim 7 wherein said blurring includes cross-bilateral blurring.

10. The method recited in claim 7 wherein said employing includes:

determining a pixel position in one of said sub-RSMs based on screen-space position;

applying a sampling pattern about said pixel position to arrive at neighboring sub-RSM pixels; and

accumulating light contributions from said neighboring sub-RSM pixels based on surface normal data.

11. The method recited in claim 7 wherein said RSM is rendered with respect to a light source.

12. The method recited in claim 7 further comprising:

generating a direct illumination image based on said camera-view G-buffer; and

combining said higher-resolution indirect illumination image with said direct illumination image to form a global illumination image.

13. The method recited in claim 12 further comprising applying cross-bilateral up-sampling to said higher-resolution indirect illumination image to match the resolution of said camera-view G-buffer.

14. A graphics processing subsystem, comprising:

a memory configured to store a light-space reflective shadow map (RSM) data structure according to which a RSM rendered with respect to a light source is organized into a plurality of unique reduced-resolution sub-RSMs; and

a processor configured to gain access to said memory via a data bus and operable to:

employ said plurality of unique reduced-resolution sub-RSMs to compute a plurality of reduced-resolution indirect illumination sub-images,

apply a blurring effect to each of said plurality of reduced-resolution indirect illumination sub-images, and

interleave said plurality of reduced-resolution indirect illumination sub-images into a higher-resolution indirect illumination image, wherein said organizing said RSM into said plurality of unique sub-RSMs comprises assigning each pixel of said RSM to a single sub-RSM so that each sub-RSM has a same resolution and number of said sub-RSM pixels as all other sub-RSMs.

15. The graphics processing subsystem recited in claim 14 wherein said memory is further configured to store a camera-view geometry buffer (G-buffer) rendered with respect to a camera view-point and a camera-view G-buffer data structure according to which said camera-view G-buffer is represented by a plurality of unique reduced-resolution camera-view sub-buffers.

16. The graphics processing subsystem recited in claim 15 wherein said processor is further operable to employ said plurality of unique reduced-resolution camera-view sub-buffers to apply said blurring effect.

17. The graphics processing subsystem recited in claim 15 wherein said processor is further operable to employ said plurality of unique reduced-resolution camera-view sub-buffers to compute said plurality of reduced-resolution indirect illumination sub-images.

18. The graphics processing subsystem recited in claim 15 wherein said processor is further operable to render a direct illumination image based on said camera-view G-buffer.

19. The graphics processing subsystem recited in claim 18 wherein said processor is further operable to apply another blurring effect to said higher-resolution indirect illumination image and combine the blurred higher-resolution indirect illumination image with said direct illumination image to form a global illumination image.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 21, 2013
From: GRUEN, HOLGER; BAVOIL, LOUIS
To: NVIDIA CORPORATION
Reel/Frame 030459/0158 →
Continuity (1)
Related Publication 20140347359A1 · Nov 27, 2014