IP Library › Granted Patent US 9,305,324
Granted Patent B2
US 9,305,324 · App. 14/015,955 · Granted Apr 5, 2016

System, method, and computer program product for tiled deferred shading

Inventors: Morgan McGuire (Williamstown, MA); Michael Thomas Mara (Williamstown, MA); David Patrick Luebke (Charlottesville, VA); Jacopo Pantaleoni (Berlin, DE)
Assignee: NVIDIA Corporation
G06T1/20G06T11/40G06T15/005G06T15/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,305,324
App. No.
14/015,955
Granted
Apr 5, 2016
Kind
B2
Abstract

A system, method, and computer program product are provided for tiled deferred shading. In operation, a plurality of photons associated with at least one scene are identified. Further, a plurality of screen-space tiles associated with the at least one scene are identified. Additionally, each of the plurality of screen-space tiles capable of being affected by a projection of an effect sphere for each of the plurality of photons are identified. Furthermore, at least a subset of photons associated with each of the screen-space tiles from which to compute shading are selected. Moreover, shading for the at least one scene is computed utilizing the selected at least a subset of photons.

Claims (44)

1. A method, comprising:

identifying a plurality of photons associated with at least one scene;

identifying a plurality of screen-space tiles associated with the at least one scene;

for each of the photons:

(a) determining which of the plurality of screen-space tiles would contain a projection of an effect sphere of the photon,

(b) storing a copy of, or a pointer to, the photon in a bucket corresponding to each of the determined screen-space tiles, and

(c) for each of the screen-space tiles, culling the photon when the photon does not intersect a depth range of the scene within the screen-space tile,

wherein (a)-(c) results in each of the screen-space tiles having a corresponding bucket with one or more photons therein;

after performing (a)-(c) for each of the photons, selecting at least a subset of photons within each bucket from which to compute shading for the corresponding screen-space tile; and

computing shading for the at least one scene by shading pixels within each screen-space tile utilizing the one or more photons selected from the corresponding bucket.

2. The method of claim 1 , wherein computing the shading includes reconstructing smooth shading at each pixel associated with the at least one scene.

3. The method of claim 1 , wherein computing the shading includes reconstructing smooth shading at each pixel associated with the at least one scene from neighbor pixel values.

4. The method of claim 1 , wherein computing the shading includes utilizing a lateral filter.

5. The method of claim 1 , wherein selecting the at least a subset of photons from which to compute shading includes iterating over all pixels in each of the plurality of screen-space tiles.

6. The method of claim 1 , wherein selecting the at least a subset of photons from which to compute shading includes iterating over all pixels in each of the plurality of screen-space tiles and selecting a subset of the photons included in the corresponding bucket from which to compute shading.

7. The method of claim 1 , wherein selecting at least a subset of photons from which to compute shading includes selecting all photons within each bucket.

8. The method of claim 1 , wherein a stochastic process is utilized to select the at least a subset of photons from which to compute shading.

9. The method of claim 1 , wherein an interleaving process is utilized to select the at least a subset of photons from which to compute shading.

10. The method of claim 1 , further comprising storing a copy of each photon in each bucket corresponding to a screen-space tile that would contain the projection of the effect sphere of the photon.

11. The method of claim 1 , further comprising inserting a pointer to each photon in each bucket corresponding to a screen-space tile that that would contain the projection of the effect sphere of the photon.

12. The method of claim 1 , wherein the plurality of photons associated with the at least one scene are associated with a photon mapping process.

13. The method of claim 1 , further comprising rendering the at least one scene.

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

identifying a plurality of photons associated with at least one scene;

identifying a plurality of screen-space tiles associated with the at least one scene;

for each of the photons:

(a) determining which of the plurality of screen-space tiles would contain a projection of an effect sphere of the photon,

(b) storing a copy of, or a pointer to, the photon in a bucket corresponding to each of the determined screen-space tiles, and

(c) for each of the screen-space tiles, culling the photon when the photon does not intersect a depth range of the scene within the screen-space tile,

wherein (a)-(c) results in each of the screen-space tiles having a corresponding bucket with one or more photons therein;

after performing (a)-(c) for each of the photons, selecting at least a subset of photons within each bucket from which to compute shading for the corresponding screen-space tile; and

computing shading for the at least one scene by shading pixels within each screen-space tile utilizing the one or more photons selected from the corresponding bucket.

15. A system comprising:

a memory system; and

one or more processing cores coupled to the memory system and that are each configured to:

identify a plurality of photons associated with at least one scene;

identify a plurality of screen-space tiles associated with the at least one scene;

for each of the photons:

(a) determine which of the plurality of screen-space tiles would contain a projection of an effect sphere of the photon,

(b) store a copy of, or a pointer to, the photon in a bucket corresponding to each of the determined screen-space tiles, and

(c) for each of the screen-space tiles, cull the photon when the photon does not intersect a depth range of the scene within the screen-space tile,

wherein (a)-(c) results in each of the screen-space tiles having a corresponding bucket with one or more photons therein;

after performing (a)-(c) for each of the photons, select at least a subset of photons within each bucket from which to compute shading for the corresponding screen-space tile; and

compute shading for the at least one scene by shading pixels within each screen-space tile utilizing the one or more photons selected from the corresponding bucket.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 18, 2013
From: MCGUIRE, MORGAN; MARA, MICHAEL THOMAS; LUEBKE, DAVID PATRICK; PANTALEONI, JACOPO
To: NVIDIA CORPORATION
Reel/Frame 031235/0790 →
Continuity (2)
Provisional Application 61745264 · Dec 21, 2012
Related Publication 20140176575A1 · Jun 26, 2014