IP Library Granted Patent US 10,600,232
Granted Patent B2
US 10,600,232 · App. 16/022,506 · Granted Mar 24, 2020

Creating a ray differential by accessing a G-buffer

Inventors: Tomas Akenine-Moller (Lund, SE); Robert Toth (Lund, SE); Magnus Andersson (Lund, SE); Jim Kjell David Nilsson (Lund, SE)
Assignee: NVIDIA CORPORATION
G06T15/06G06T11/001G06T15/005G06T15/10G06T15/80G06T2210/36
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 10,600,232
App. No.
16/022,506
Granted
Mar 24, 2020
Kind
B2
Abstract

A texture level of detail (LOD) approximation may be performed utilizing ray differentials and a G-buffer. For example, a scene to be rendered is identified, and a G-buffer of the scene is rendered. Additionally, ray tracing is started for the scene, and during the ray tracing, a ray differential is created by accessing the G-buffer. Further, the created ray differential is appended to a current ray, and the created ray differential is traced.

Claims (40)

1. A method comprising:

identifying a scene to be rendered;

rendering a G-buffer of the scene;

starting ray tracing for the scene;

during the ray tracing, creating a ray differential for a pixel by accessing the G-buffer for the pixel and one or more additional pixels neighboring the pixel;

appending the created ray differential to a current ray; and

tracing the created ray differential.

2. The method of claim 1 , wherein the G-buffer is a screen-sized buffer generated using a pixel shader.

3. The method of claim 1 , wherein one or more attributes are written to the G-buffer for each pixel in the scene when the G-buffer of the scene is rendered.

4. The method of claim 1 , wherein creating the ray differential by accessing the G-buffer includes accessing entries in the G-buffer for the pixel and the one or more additional pixels that neighbor the pixel to the right and to the left within the G-buffer in order to create the ray differential in a x-direction.

5. The method of claim 1 , wherein creating the ray differential by accessing the G-buffer includes accessing entries in the G-buffer for the pixel and the one or more additional pixels that neighbor the pixel above and/or below within the G-buffer in order to create the ray differential in a y-direction.

6. The method of claim 1 , wherein G-buffer entries for pixels closest to the pixel both horizontally and vertically are accessed in order to create the ray differential in a x-direction and a y-direction.

7. The method of claim 1 , wherein a distance t to a hit point is stored in the G-buffer.

8. The method of claim 1 , wherein accessing the G-buffer for the pixel and one or more additional pixels neighboring the pixel includes accessing entries in the G-buffer for the pixel and one or more additional pixels neighboring the pixel, each entry of the entries storing a normal and a distance to a hit point for a corresponding pixel.

9. A system comprising:

a processor that is configured to:

identify a scene to be rendered;

render a G-buffer of the scene;

start ray tracing for the scene;

during the ray tracing, create a ray differential for a pixel by accessing the G-buffer for the pixel and one or more additional pixels neighboring the pixel;

append the created ray differential to a current ray; and

trace the created ray differential.

10. The system of claim 9 , wherein the G-buffer is a screen-sized buffer generated using a pixel shader.

11. The system of claim 9 , wherein one or more attributes are written to the G-buffer for each pixel in the scene when the G-buffer of the scene is rendered.

12. The system of claim 9 , wherein creating the ray differential by accessing the G-buffer includes accessing entries in the G-buffer for the pixel and the one or more additional pixels that neighbor the pixel to the right and to the left within the G-buffer in order to create the ray differential in a x-direction.

13. The system of claim 9 , wherein creating the ray differential by accessing the G-buffer includes accessing entries in the G-buffer for the pixel and the one or more additional pixels that neighbor the pixel above and/or below within the G-buffer in order to create the ray differential in a y-direction.

14. The system of claim 9 , wherein G-buffer entries for pixels closest to the pixel both horizontally and vertically are accessed in order to create the ray differential in a x-direction and a y-direction.

15. The system of claim 9 , wherein a distance t to a hit point is stored in the G-buffer.

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

identifying a scene to be rendered;

rendering a G-buffer of the scene;

starting ray tracing for the scene;

during the ray tracing, creating a ray differential for a pixel by accessing the G-buffer for the pixel and one or more additional pixels neighboring the pixel;

appending the created ray differential to a current ray; and

tracing the created ray differential.

17. The non-transitory computer-readable storage medium of claim 16 , wherein the G-buffer is a screen-sized buffer generated using a pixel shader.

18. The non-transitory computer-readable storage medium of claim 16 , wherein one or more attributes are written to the G-buffer for each pixel in the scene when the G-buffer of the scene is rendered.

19. The non-transitory computer-readable storage medium of claim 16 , wherein creating the ray differential by accessing the G-buffer includes accessing entries in the G-buffer for the pixel and the one or more additional pixels that neighbor the pixel to the right and to the left within the G-buffer in order to create the ray differential in a x-direction.

20. The non-transitory computer-readable storage medium of claim 16 , wherein creating the ray differential by accessing the G-buffer includes accessing entries in the G-buffer for the pixel and the one or more additional pixels that neighbor the pixel above and/or below within the G-buffer in order to create the ray differential in a y-direction.

21. The non-transitory computer-readable storage medium of claim 16 , wherein G-buffer entries for pixels closest to the pixel both horizontally and vertically are accessed in order to create the ray differential in a x-direction and a y-direction.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 11, 2018
From: AKENINE-MOLLER, TOMAS; TOTH, ROBERT; ANDERSSON, MAGNUS; NILSSON, JIM KJELL DAVID
To: NVIDIA CORPORATION
Reel/Frame 046840/0838 →
Continuity (2)
Continuation In Part 15881619 · Jan 26, 2018
Related Publication 20190236831A1 · Aug 1, 2019