Multiple spacial indexes for dynamic scene management in graphics rendering
First Claim
1. A method of representing objects located within a three dimensional scene in spatial indexes, the method comprising:
- configuring one or more computer processors to perform an operation, comprising;
generating a static spatial index based on at least one static object in the three dimensional scene, the static spatial index having nodes defining bounded volumes of the three dimensional scene;
generating a dynamic spatial index separate from the static spatial index based on at least one dynamic object in the three dimensional scene, the dynamic spatial index having nodes defining bounded volumes of the three dimensional scene, wherein the spatial indexes partition the three dimensional scene into smaller volumes through a use of splitting planes, each of which is parallel to a selected axis;
issuing a ray into the three dimensional scene;
traversing the dynamic spatial index by taking branches to nodes based on the ray intersecting bounding volumes corresponding to nodes in the dynamic spatial index until a dynamic spatial index leaf node is reached, and determining if the ray strikes a primitive contained within a bounding volume corresponding to the dynamic spatial index leaf node;
traversing the static spatial index based on the ray intersecting bounding volumes corresponding to nodes in static spatial index until a static spatial index leaf node is reached, and determining if the ray strikes a primitive contained within a bounding volume corresponding to the static spatial index leaf node; and
if a primitive was struck in both the dynamic spatial index leaf node and the static spatial index leaf node, determining a primitive that was intersected first.
4 Assignments
0 Petitions
Accused Products
Abstract
According to embodiments of the invention, separate spatial indexes may be created which correspond to dynamic objects in a three dimensional scene and static objects in the three dimensional scene. By creating separate spatial indexes for static and dynamic objects, only the dynamic spatial index may need to be rebuilt in response to movement or changes in shape of objects in the three dimensional scene. Furthermore, the static and dynamic spatial indexes may be stored in separate portions of an image processing system'"'"'s memory cache. By storing the static spatial index and the dynamic spatial index in separate portions of the memory cache, the dynamic portion of the memory cache may be updated without affecting the static portion of the spatial index in the memory cache.
-
Citations
19 Claims
-
1. A method of representing objects located within a three dimensional scene in spatial indexes, the method comprising:
configuring one or more computer processors to perform an operation, comprising; generating a static spatial index based on at least one static object in the three dimensional scene, the static spatial index having nodes defining bounded volumes of the three dimensional scene; generating a dynamic spatial index separate from the static spatial index based on at least one dynamic object in the three dimensional scene, the dynamic spatial index having nodes defining bounded volumes of the three dimensional scene, wherein the spatial indexes partition the three dimensional scene into smaller volumes through a use of splitting planes, each of which is parallel to a selected axis; issuing a ray into the three dimensional scene; traversing the dynamic spatial index by taking branches to nodes based on the ray intersecting bounding volumes corresponding to nodes in the dynamic spatial index until a dynamic spatial index leaf node is reached, and determining if the ray strikes a primitive contained within a bounding volume corresponding to the dynamic spatial index leaf node; traversing the static spatial index based on the ray intersecting bounding volumes corresponding to nodes in static spatial index until a static spatial index leaf node is reached, and determining if the ray strikes a primitive contained within a bounding volume corresponding to the static spatial index leaf node; and if a primitive was struck in both the dynamic spatial index leaf node and the static spatial index leaf node, determining a primitive that was intersected first. - View Dependent Claims (2, 3, 4, 5, 6)
-
7. A non-transitory computer readable storage medium containing a program which, when executed, performs operations comprising:
-
generating a static spatial index based on at least one static object in a three dimensional scene, the static spatial index having nodes defining bounded volumes of the three dimensional scene; generating a dynamic spatial index separate from the static spatial index based on at least one dynamic object in the three dimensional scene, the dynamic spatial index having nodes defining bounded volumes of the three dimensional scene, wherein the spatial indexes partition the three dimensional scene into smaller volumes through a use of splitting planes, each of which is parallel to a selected axis; issuing a ray into the three dimensional scene; traversing the dynamic spatial index by taking branches to nodes based on the ray intersecting bounding volumes corresponding to nodes in the dynamic spatial index until a dynamic spatial index leaf node is reached, and determining if the ray strikes a primitive contained within a bounding volume corresponding to the dynamic spatial index leaf node; traversing the static spatial index based on the ray intersecting bounding volumes corresponding to nodes in static spatial index until a static spatial index leaf node is reached, and determining if the ray strikes a primitive contained within a bounding volume corresponding to the static spatial index leaf node; and if a primitive was struck in both the dynamic spatial index leaf node and the static spatial index leaf node, determining a primitive that was intersected first. - View Dependent Claims (8, 9, 10, 11)
-
-
12. An image processing system, comprising:
-
a memory comprising; a static spatial index based on at least one static object in a three dimensional scene, the static spatial index having nodes defining bounded volumes of the three dimensional scene; and a dynamic spatial index separate from the static spatial index based on at least one dynamic object in the three dimensional scene, the dynamic spatial index having nodes defining bounded volumes of the three dimensional scene; and a first processing element configured to; issue a ray into the three dimensional scene; traverse the dynamic spatial index by taking branches to nodes based on the ray intersecting bounding volumes corresponding to nodes in the dynamic spatial index until a dynamic spatial index leaf node is reached, and determine if the ray strikes a primitive contained within a bounding volume corresponding to the dynamic spatial index leaf node; traverse the static spatial index based on the ray intersecting bounding volumes corresponding to nodes in static spatial index until a static spatial index leaf node is reached, and determine if the ray strikes a primitive contained within a bounding volume corresponding to the static spatial index leaf node; and if a primitive was struck in both the dynamic spatial index leaf node and the static spatial index leaf node, determine a primitive that was intersected first. - View Dependent Claims (13, 14, 15)
-
-
16. A method of representing objects located within a three dimensional scene in spatial indexes, the method comprising:
configuring one or more computer processors to perform an operation, comprising; generating a static spatial index based on at least one static object in the three dimensional scene, the static spatial index having nodes defining bounded volumes of the three dimensional scene; generating a dynamic spatial index separate from the static spatial index based on at least one dynamic object in the three dimensional scene, the dynamic spatial index having nodes defining bounded volumes of the three dimensional scene; issuing a ray into the three dimensional scene; traversing the dynamic spatial index by taking branches to nodes based on the ray intersecting bounding volumes corresponding to nodes in the dynamic spatial index until a dynamic spatial index leaf node is reached, and determining if the ray strikes a primitive contained within a bounding volume corresponding to the dynamic spatial index leaf node; traversing the static spatial index based on the ray intersecting bounding volumes corresponding to nodes in static spatial index until a static spatial index leaf node is reached, and determining if the ray strikes a primitive contained within a bounding volume corresponding to the static spatial index leaf node; and if a primitive was struck in both the dynamic spatial index leaf node and the static spatial index leaf node, determining a primitive that was intersected first. - View Dependent Claims (17)
-
18. A non-transitory computer readable storage medium containing a program which, when executed, performs operations comprising:
-
generating a static spatial index based on at least one static object in a three dimensional scene, the static spatial index having nodes defining bounded volumes of the three dimensional scene; generating a dynamic spatial index separate from the static spatial index based on at least one dynamic object in the three dimensional scene, the dynamic spatial index having nodes defining bounded volumes of the three dimensional scene; issuing a ray into the three dimensional scene; traversing the dynamic spatial index by taking branches to nodes based on the ray intersecting bounding volumes corresponding to nodes in the dynamic spatial index until a dynamic spatial index leaf node is reached, and determining if the ray strikes a primitive contained within a bounding volume corresponding to the dynamic spatial index leaf node; traversing the static spatial index based on the ray intersecting bounding volumes corresponding to nodes in static spatial index until a static spatial index leaf node is reached, and determining if the ray strikes a primitive contained within a bounding volume corresponding to the static spatial index leaf node; and if a primitive was struck in both the dynamic spatial index leaf node and the static spatial index leaf node, determining a primitive that was intersected first. - View Dependent Claims (19)
-
Specification