Efficient and flexible data organization for acceleration data structure nodes
First Claim
1. A method for generating a two-dimensional image of a three-dimensional scene containing at least one dynamic object, comprising:
- generating a spatial index having a world root node, internal nodes corresponding to bounding volumes with partitioned sub-volumes of the scene, and leaf nodes corresponding to unpartitioned sub-volumes of the scene containing primitive objects;
generating, by operation of a computer processor, a leaf node link from at least one of the leaf nodes to a list of pointers to data objects corresponding to one or more primitive objects that represent the at least one dynamic object; and
in response to a change in at least one of shape and location of the at least one dynamic object, updating one or more of the data objects to reflect the change without updating the leaf node link.
4 Assignments
0 Petitions
Accused Products
Abstract
Embodiments of the invention provide an efficient and flexible organization of data for an acceleration data structure (e.g., spatial index). In contrast to storing primitive information within a spatial index, embodiments of the invention may store pointers in the spatial index which point to or link to primitive-defining information in buffers. Storing pointers to primitive-defining information may reduce the size of the spatial index. Additionally, embodiments of the invention enable vertex and triangle sharing. Vertex and triangle sharing may reduce the amount of storage space required to define the primitives within the three-dimensional scene. Furthermore, the data organization provided by the embodiments of the invention allows for easy manipulation of the spatial index and primitive data.
-
Citations
20 Claims
-
1. A method for generating a two-dimensional image of a three-dimensional scene containing at least one dynamic object, comprising:
-
generating a spatial index having a world root node, internal nodes corresponding to bounding volumes with partitioned sub-volumes of the scene, and leaf nodes corresponding to unpartitioned sub-volumes of the scene containing primitive objects; generating, by operation of a computer processor, a leaf node link from at least one of the leaf nodes to a list of pointers to data objects corresponding to one or more primitive objects that represent the at least one dynamic object; and in response to a change in at least one of shape and location of the at least one dynamic object, updating one or more of the data objects to reflect the change without updating the leaf node link. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for generating and traversing a spatial index, comprising:
-
generating a spatial index having a world root node representing a volume which encompasses a three-dimensional scene, internal nodes corresponding to bounding volumes with partitioned sub-volumes, and leaf nodes corresponding to unpartitioned sub-volumes containing primitive objects; generating links from the internal nodes to nodes corresponding to sub-volumes created by partitioning planes which partition the internal nodes; generating, by operation of a computer processor, a leaf node link from at least one of the leaf nodes to a list of pointers to data objects corresponding to one or more primitive objects contained within the sub-volume corresponding to the at least one leaf node; issuing a ray into the three-dimensional scene; traversing the ray through the spatial index to the at least one leaf node; and generating a pixel value based on primitive object information retrieved using the leaf node link. - View Dependent Claims (11, 12)
-
-
13. An image processing system comprising:
-
a physics engine to move one or more dynamic objects in an animated scene; and logic configured to generate a spatial index having a world root node, internal nodes corresponding to bounding volumes with partitioned sub-volumes, and leaf nodes corresponding to unpartitioned sub-volumes containing primitive objects;
generate a leaf node link from at least one of the leaf nodes to a list of pointers to data objects corresponding to one or more primitive objects that represent a dynamic object of the one or more dynamic objects; and
in response to a change in at least one of shape and location of the one or more dynamic objects, update one or more of the data objects without updating the leaf node link. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
Specification