IP Library Granted Patent US 8,411,088
Granted Patent B2
US 8,411,088 · App. 12/434,844 · Granted Apr 2, 2013

Accelerated ray tracing

Inventors: Igor Sevastianov (Berlin, DE); Alexander Keller (Berlin, DE)
Assignee: Nvidia Corporation
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 8,411,088
App. No.
12/434,844
Granted
Apr 2, 2013
Kind
B2
Abstract

Methods, systems and computer program code (software) products executable in a computer processor element include computing, in the processor element, a minimal axis-aligned bounding box of the intersection of a given axis-aligned bounding box and a triangle under linear motion, and/or traversing, in the processor element, a ray tracing acceleration hierarchy for a given set of rays, wherein the traversing includes computing decisions for a representative form of the rays, without requiring a traversing of all rays in turn.

Claims (57)

1. A method, executable in a computer processor element, the processor element being operable to generate pixel values for an image using a ray-tracing methodology comprising calculating intersections of rays and surfaces of objects in the image, the method comprising:

(A) computing, in the processor element, a minimal axis-aligned bounding box of an intersection of a given axis-aligned bounding box B and a triangle under linear motion, the motion of the triangle having associated motion vectors

{right arrow over ( V i s V i e )},

by:

(1) using the processor element, initializing a bounding box B I as empty; and

(2) using the processor element, executing an intersection process that intersects edges of the triangle at times t s and t e and the triangle's motion vectors

{right arrow over ( V i s V i e )}

with slabs S x , S y , and S z whose intersection is the given axis-aligned bounding box B, and extending bounding box B I by intersection points resulting from the intersection process until the minimal axis-aligned bounding box is computed, wherein t s is a start time and t e is an end time, and wherein V i s is a vertex of the triangle at time t s and V i e is a vertex of the triangle at time t e ; and

(B) traversing, in the processor element, a ray tracing acceleration hierarchy for a given set of rays, the traversing comprising computing decisions for a representative form of the rays, without requiring a traversing of all rays in turn.

2. The method of claim 1 , further comprising:

partitioning, in the processor element, object lists or space.

3. The method of claim 1 , further comprising:

enabling, in the processor element, determination of whether or not a given set of rays overlaps a given half space, by computing only decisions for a representative ray, without requiring traversal of all rays in turn.

4. The method of claim 3 , further comprising applying the computing of decisions to efficiently compute collision detection.

5. The method of claim 1 , further comprising:

executing the computing of a minimal axis-aligned bounding box, traversing of ray tracing acceleration hierarchy and computing decisions for a representative form of the rays to provide any of anti-aliasing, simulating glossy reflections, final gathering, ambient occlusion, or robust global illumination.

6. The method of claim 1 , further comprising applying the computing of a minimal axis-aligned bounding box to efficiently compute ray tracing hierarchies.

7. The method of claim 1 , further comprising applying the computing of a minimal axis-aligned bounding box to efficiently compute collision detection.

8. A subsystem operable in a computer system comprising a processor element, the processor element being operable to generate pixel values for an image using a ray-tracing methodology comprising calculating intersections of rays and surfaces of objects in the image, the subsystem comprising:

a module operable to: (A) use the processor element to compute a minimal axis-aligned bounding box of an intersection of a given axis-aligned bounding box and a triangle under linear motion, the motion of the triangle having associated motion vectors

{right arrow over ( V i s V i e )},

by:

(1) using the processor element, initializing a bounding box B I as empty; and

(2) using the processor element, executing an intersection process that intersects edges of the triangle at times t s and t e and the triangle's motion vectors

{right arrow over ( V i s V i e )}

with slabs S x , S y , and S z whose intersection is the given axis-aligned bounding box B, and extending bounding box B I by intersection points resulting from the intersection process until the minimal axis-aligned bounding box is computed, wherein t s is a start time and t e is an end time, and wherein V i s is a vertex of the triangle at time t s and V i e is a vertex of the triangle at time t e ; and

(B) traverse, in the processor element, a ray tracing acceleration hierarchy for a given set of rays, the traversing comprising computing decisions for a representative form of the rays, without requiring a traversing of all rays in turn.

9. The subsystem of claim 8 , further comprising:

a module operable to partition object lists or space.

10. The subsystem of claim 8 , further comprising:

a module operable to determine whether or not a given set of rays overlaps a given half space, by computing only decisions for a representative ray, without requiring traversal of all rays in turn.

11. The subsystem of claim 10 , further comprising a module operable to apply the computing of decisions to efficiently compute collision detection.

12. The subsystem of claim 8 , further comprising:

a module operable to apply the computing of a minimal axis-aligned bounding box, traversing of ray tracing acceleration hierarchy and computing decisions for a representative form of the rays to provide any of anti-aliasing, simulating glossy reflections, final gathering, ambient occlusion, or robust global illumination.

13. The subsystem of claim 8 , further comprising a module operable to apply the computing of a minimal axis-aligned bounding box to efficiently compute ray tracing hierarchies.

14. The subsystem of claim 8 , further comprising a module operable to apply the computing of a minimal axis-aligned bounding box to efficiently compute collision detection.

15. A computer program product operable in a computer system comprising a processor, the processor being operable to generate pixel values for an image using a ray-tracing methodology comprising calculating intersections of rays and surfaces of objects in the image, the computer program product comprising computer executable program instructions stored in a non-transitory tangible computer readable medium, the computer executable program instructions comprising:

(A) first computer program instructions that when executed by the processor cause the processor to compute a minimal axis-aligned bounding box of an intersection of a given axis-aligned bounding box and a triangle under linear motion, the motion of the triangle having associated motion vectors

{right arrow over ( V i s V i e )},

by:

(1) using the processor, initializing a bounding box B I as empty; and

(2) using the processor, executing an intersection process that intersects edges of the triangle at times t s and t e and the triangle's motion vectors

{right arrow over ( V i s V i e )}

with slabs S x , S y , and S z whose intersection is the given axis-aligned bounding box B, and extending bounding box B I by intersection points resulting from the intersection process until the minimal axis-aligned bounding box is computed, wherein t s is a start time and t e is an end time, and wherein V i s is a vertex of the triangle at time t s and V i e is a vertex of the triangle at time t e ; and

(B) second computer program instructions that when executed by the processor cause the processor to traverse a ray tracing acceleration hierarchy for a given set of rays, the traversing comprising computing decisions for a representative form of the rays, without requiring a traversing of all rays in turn.

16. The computer program product of claim 15 , wherein the computer executable program instructions further comprise:

computer program instructions that when executed by the processor cause the processor to partition object lists or space.

17. The computer program product of claim 15 , wherein the computer executable program instructions further comprise:

computer program instructions that when executed by the processor cause the processor to determine whether or not a given set of rays overlaps a given half space, by computing only decisions for a representative ray, without requiring traversal of all rays in turn.

18. The computer program product of claim 17 , wherein the computer executable program instructions further comprise:

computer program instructions that when executed by the processor cause the processor to apply the computing of decisions to efficiently compute collision detection.

19. The computer program product of claim 15 , wherein the computer executable program instructions further comprise:

computer program instructions that when executed by the processor cause the processor to apply the computing of a minimal axis-aligned bounding box, traversing of ray tracing acceleration hierarchy and computing decisions for a representative form of the rays to provide any of anti-aliasing, simulating glossy reflections, final gathering, ambient occlusion, or robust global illumination.

20. The computer program product of claim 15 , wherein the computer executable program instructions further comprise:

computer program instructions that when executed by the processor cause the processor to apply the computing of a minimal axis-aligned bounding box to efficiently compute ray tracing hierarchies.

21. The computer program product of claim 15 , wherein the computer executable program instructions further comprise:

computer program instructions that when executed by the processor cause the processor to apply the computing of a minimal axis-aligned bounding box to efficiently compute collision detection.

Continuity (11)
Continuation In Part 12390590 · Feb 23, 2009
Continuation 11737424 · Apr 19, 2007
Continuation In Part 11474517 · Jun 23, 2006
Continuation In Part 10299574 · Nov 19, 2002
Continuation In Part 09884861 · Jun 19, 2001
Provisional Application 61080938 · Jul 15, 2008
Provisional Application 60793063 · Apr 19, 2006
Provisional Application 60693231 · Jun 23, 2005
Provisional Application 60265934 · Feb 1, 2001
Provisional Application 60212286 · Jun 19, 2000
Related Publication 20090256845A1 · Oct 15, 2009