IP Library Granted Patent US 8,243,073
Granted Patent B2
US 8,243,073 · App. 12/361,006 · Granted Aug 14, 2012

Tree insertion depth adjustment based on view frustum and distance culling

Assignee: International Business Machines 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,243,073
App. No.
12/361,006
Granted
Aug 14, 2012
Kind
B2
Abstract

A method, program product and system for conducting a ray tracing operation where the rendering compute requirement is reduced by varying the size of bounding volumes into which image data is divided and/or by varying a number of primitives included within nodes of an acceleration data structure that correspond to the bounding volumes.

Claims (34)

1. A method building an acceleration data structure having a plurality of nodes corresponding to a plurality of bounding volumes comprising divided portions of image data, the method comprising:

storing the image data in a memory;

determining a distance between a bounding volume of the plurality of bounding volumes and a reference; and

modifying the size of the bounding volume according to the distance, wherein the size of the bounding volume is determined using information relating to a ray intersection with a leaf node, wherein modifying the size of the bounding volume further comprises generating the bounding volume with a size that increases proportionally at a constant ratio with respect to the distance.

2. The method of claim 1 further comprising rendering the image using the acceleration data structure.

3. The method of claim 1 , wherein modifying the size of the bounding volume further comprises determining that a primitive is a first primitive to be included within a node corresponding to the bounding volume.

4. The method of claim 3 , further comprising subdividing the node corresponding to the bounding volume.

5. The method of claim 4 , further comprising generating a leaf node threshold associated with the subdivided node.

6. The method of claim 1 , wherein determining the distance further comprises determining a distance between the bounding volume and a reference comprising at least one of: a point in the image data, a ray origin, and a frustum.

7. The method of claim 1 further comprising repeating the steps of claim 1 in response to receiving another frame comprising other image data.

8. The method of claim 1 further comprising determining whether to include a primitive in a node corresponding to the bounding volume according to the distance.

9. The method of claim 1 further comprising determining whether to include a primitive in a node corresponding to the bounding volume according to historical data concerning a ray intersection.

10. The method of claim 1 further comprising determining that a primitive is used for a secondary ray and excluding the primitive from a node corresponding to the bounding volume based upon the determination.

11. The method of claim 1 , wherein modifying the size of the bounding volume further comprises modifying the size of the bounding volume according to a number of rays directed into the bounding volume.

12. The method of claim 1 further comprising further comprising load balancing the plurality of bounding volumes according to an available processing resource.

13. The method of claim 1 further comprising implementing the method of claim 1 using a highly threaded network on a chip.

14. A method building an acceleration data structure having a plurality of nodes corresponding to a plurality of bounding volumes comprising divided portions of image data, the method comprising:

storing the image data in a memory;

determining a distance between a bounding volume of the plurality of bounding volumes and a reference;

modifying according to the distance, a number of primitives placed into a node of the acceleration data structure that corresponds to the bounding volume; and

generating a size of the bounding volume such that the size of the bounding volume increases proportionally at a constant ratio with respect to the distance.

15. The method of claim 14 , wherein determining the distance further comprises determining a distance between a reference and an object included within the bounding volume.

16. The method of claim 14 , wherein modifying the number of primitives placed into the node further comprises modifying the number of primitives to in general proportion to the distance.

17. The method of claim 14 , wherein modifying the number of primitives further comprises setting according to the distance a leaf node threshold for the node.

18. The method of claim 14 , wherein modifying the number of primitives further comprises determining whether to include a primitive in the node according to historical performance data.

19. An apparatus comprising:

a memory configured to store image data logically divided into a plurality of bounding volumes and an acceleration data structure including nodes that correspond to the plurality of bounding volumes; and

a processor in communication with the memory and configured to generate a ray that travels through the image data from a ray origin, wherein the processor is further configured to modify a size of a bounding volume of the plurality by generating the bounding volume with a size that increases proportionally at a constant ratio with respect to a distance between a bounding volume of the plurality of bounding volumes and a reference.

20. An apparatus comprising:

a memory configured to store image data logically divided into a plurality of bounding volumes and an acceleration data structure including nodes that correspond to the plurality of bounding volumes; and

a processor in communication with the memory and configured to generate a ray that travels through the image data from a ray origin, wherein the processor is further configured to modify a number of primitives placed into a node of the acceleration data structure, wherein the node corresponds to the bounding volume, and wherein the size of the bounding volume is generated with a size that increases proportionally at a constant ratio with respect to a distance between a bounding volume of the plurality of bounding volumes and a reference.

21. A program product, comprising:

program code configured to conduct ray tracing with image data logically divided into a plurality of bounding volumes and to modify a number of primitives placed into a node of an acceleration data structure according to a distance measured from a reference point to a bounding volume of the plurality, wherein the node corresponds to the bounding volume, wherein the size of the bounding volume increases proportionally at a constant ratio with respect to the distance; and

a non-transitory computer readable medium bearing the program code.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 28, 2009
From: MEJDRICH, ERIC OLIVER; SCHARDT, PAUL EMERY; SHEARER, ROBERT ALLEN; TUBBS, MATTHEW RAY
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 022167/0151 →
Continuity (1)
Related Publication 20100188403A1 · Jul 29, 2010