Accelerated ray tracing
AssigneeNVIDIA Corporation
InventorsIgor Sevastianov, Alexander Keller
Life of this patent
Estimating the term…
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.
Claims21
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 (VisVie)},
- by:
- (1) using the processor element, initializing a bounding box BI as empty;
- and
- (2) using the processor element, executing an intersection process that intersects edges of the triangle at times ts and te and the triangle's motion vectors
- {right arrow over (VisVie)}
- with slabs Sx, Sy, and Sz whose intersection is the given axis-aligned bounding box B, and extending bounding box BI by intersection points resulting from the intersection process until the minimal axis-aligned bounding box is computed, wherein ts is a start time and te is an end time, and wherein Vis is a vertex of the triangle at time ts and Vie is a vertex of the triangle at time te;
- 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.
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 (VisVie)},
- by:
- (1) using the processor element, initializing a bounding box BI as empty;
- and
- (2) using the processor element, executing an intersection process that intersects edges of the triangle at times ts and te and the triangle's motion vectors
- {right arrow over (VisVie)}
- with slabs Sx, Sy, and Sz whose intersection is the given axis-aligned bounding box B, and extending bounding box BI by intersection points resulting from the intersection process until the minimal axis-aligned bounding box is computed, wherein ts is a start time and te is an end time, and wherein Vis is a vertex of the triangle at time ts and Vie is a vertex of the triangle at time te;
- 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.
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 (VisVie)},
- by:
- (1) using the processor, initializing a bounding box BI as empty;
- and
- (2) using the processor, executing an intersection process that intersects edges of the triangle at times ts and te and the triangle's motion vectors
- {right arrow over (VisVie)}
- with slabs Sx, Sy, and Sz whose intersection is the given axis-aligned bounding box B, and extending bounding box BI by intersection points resulting from the intersection process until the minimal axis-aligned bounding box is computed, wherein ts is a start time and te is an end time, and wherein Vis is a vertex of the triangle at time ts and Vie is a vertex of the triangle at time te;
- 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.
Dependencies are inferred from the claim text.