Patents by Inventor Robert Allen Shearer

Robert Allen Shearer has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Publication number: 20090073167
    Abstract: According to embodiments of the invention, a data structure may be created which may be used by both a ray tracing unit and by a rendering engine. The data structure may have an initial or upper portion representing bounding volumes which partition a three-dimensional scene and a second or lower portion representing objects within the three-dimensional scene. The integrated acceleration data structure may be used by a rendering engine to render a two-dimensional image from a three-dimensional scene, and by a ray tracing unit to perform intersection tests.
    Type: Application
    Filed: September 13, 2007
    Publication date: March 19, 2009
    Inventors: Jeffrey Douglas Brown, Russell Dean Hoover, Eric Oliver Mejdrich, Robert Allen Shearer
  • Publication number: 20080259075
    Abstract: Embodiments of the invention provide methods and apparatus to determine a coordinate system to use when traversing rays through a portion of a spatial index corresponding to a dynamic object which has a unique object coordinate system. An image processing system may take into consideration a number of factors including, but not limited to, a distance form a viewpoint to the dynamic object, a distance from the origin of the world coordinate system to the object coordinate system, a rate of traversal of the dynamic object, and a number of primitives which make up the object. These factors alone or together may indicate whether it is more efficient to perform ray intersection tests in an object coordinate system or in a world coordinate system. Embodiments of the invention may update a spatial index according to the selected coordinate system.
    Type: Application
    Filed: April 19, 2007
    Publication date: October 23, 2008
    Inventors: David Keith Fowler, Robert Allen Shearer
  • Publication number: 20080232602
    Abstract: According to embodiments of the invention, a sound engine may determine a final sound at a listener location by emulating sound waves within a three-dimensional scene. The sound engine may emulate sound waves by issuing rays from a location of a sound event and tracing the rays through the three-dimensional scene. The rays may intersect objects within the three-dimensional scene which have sound modification factors. The sound modification factors and other factors (e.g., distance traveled by the ray, angle of intersection with the object, etc.) may be applied to the sound event to determine a final sound which is heard by the listener.
    Type: Application
    Filed: March 20, 2007
    Publication date: September 25, 2008
    Inventor: Robert Allen Shearer
  • Publication number: 20080231628
    Abstract: Embodiments of the invention provide methods and apparatus to use ray-tracing to perform artificial intelligence path-finding. Embodiments of the invention may cast a ray into a three-dimensional scene to determine a path from a starting point to an ending point. The ray may have a trajectory which originates at the starting point and proceeds towards the ending point. The artificial intelligence system may perform ray-tracing using a spatial index to determine if the ray intersects any objects within the three-dimensional scene. If the ray reaches the ending point without intersecting any objects, the path of the ray from the starting point to the ending point is the determined path. However, if the ray intersects an object, the artificial intelligence system may cast additional rays into the three-dimensional scene and perform ray tracing with the additional rays to determine a path from the start point to the end point.
    Type: Application
    Filed: March 20, 2007
    Publication date: September 25, 2008
    Inventor: Robert Allen Shearer
  • Publication number: 20080231627
    Abstract: Embodiments of the invention provide use ray-tracing to simulate vision for a artificial intelligence controlled character within a three-dimensional scene. According to one embodiment of the invention, an artificial intelligence system may cast rays into the three-dimensional scene from a viewpoint of the character and may perform ray-tracing with the rays to determine if objects are within a field of view of the character. Furthermore, according to embodiments of the invention, the artificial intelligence system may determine behavior for the character based on whether or not objects are within the field of view, and may determine the behavior for the character based on the objects which are within the field of view.
    Type: Application
    Filed: March 20, 2007
    Publication date: September 25, 2008
    Inventor: Robert Allen Shearer
  • Publication number: 20080192044
    Abstract: Embodiments of the invention provide methods and apparatus to defer the optimization an acceleration data structure (e.g., a kd-tree) in response to movements of objects within a three-dimensional scene. According to one embodiment of the invention, an image processing system may determine portions of an acceleration data structure affected by the movement of an object within a three-dimensional scene. The image processing system may store the affected portion of the ADS in an optimization queue. If the image processing system does not have sufficient processing bandwidth available to optimize the ADS, the image processing system may defer the ADS optimization until sufficient processing bandwidth becomes available. Once sufficient processing bandwidth becomes available, the image processing system may optimize the ADS according to the information stored in the optimization queue.
    Type: Application
    Filed: February 9, 2007
    Publication date: August 14, 2008
    Inventors: David Keith Fowler, Robert Allen Shearer
  • Publication number: 20080192047
    Abstract: The present invention provides methods and apparatus for dynamically varying a physics workload by scaling the classification of objects within a three-dimensional scene. According to embodiments of the invention, a physics engine may classify a plurality of objects within a three-dimensional scene as either static objects or as dynamic objects. The physics engine may then perform physics operations with the objects, and may monitor the workload experienced by processing elements within a system which includes the physics engine. Based on the workload experienced by the processing elements within the system, the physics engine may vary the number of objects which are classified as dynamic and vary the number of objects which are classified as static. By varying the classification of the objects, the physics engine may vary the workload experienced by the physics engine.
    Type: Application
    Filed: February 14, 2007
    Publication date: August 14, 2008
    Inventors: Eric Michael Radzikowski, Robert Allen Shearer
  • Publication number: 20080192050
    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.
    Type: Application
    Filed: February 9, 2007
    Publication date: August 14, 2008
    Inventors: Paul Emery Schardt, Robert Allen Shearer
  • Publication number: 20080192054
    Abstract: Embodiments of the invention create links or branches from a static spatial index which partitions a three-dimensional scene based on the position of static objects to a dynamic object spatial index which partitions a three-dimensional scene based on the position of dynamic objects in a three-dimensional scene. By branching from the static spatial index to the dynamic object spatial index, the image processing system may create a single combined spatial index or a combined acceleration data structure. The combined spatial index may contain information which partitions the three-dimensional scene with respect to both static objects and dynamic objects within the three-dimensional scene. When performing ray tracing, the image processing system may only need to traverse rays issued into the three-dimensional scene through the combined spatial index to determine if the ray intersects either static objects or dynamic objects within the three-dimensional scene.
    Type: Application
    Filed: February 14, 2007
    Publication date: August 14, 2008
    Inventors: David Keith Fowler, Eric Michael Radzikowski, Robert Allen Shearer
  • Publication number: 20080192046
    Abstract: Embodiments of the invention provide methods and apparatus to reduce the number of intersection tests required to determine if an object moving within a three-dimensional scene collides with any other objects. According to one embodiment of the invention, a physics engine may cast a velocity box into the scene and traverse the velocity box through an integrated acceleration data structure. By traversing the velocity box through an integrated acceleration data structure, a physics engine may determine which objects are in the same area of the scene and are likely intersect the velocity box. The physics engine may use the objects when performing intersection tests to reduce the number of intersection tests which are necessary to determine which objects intersect the velocity box. A reduction in the number of intersection tests may reduce the amount of time necessary to determine if a moving object collides with any other objects.
    Type: Application
    Filed: February 14, 2007
    Publication date: August 14, 2008
    Inventors: David Keith Fowler, Eric Michael Radzikowski, Robert Allen Shearer
  • Publication number: 20080170071
    Abstract: Embodiments of the invention provide methods and apparatus for modifying a spatial index in response to movements of a predictably dynamic object within a three-dimensional scene. According to one embodiment of the invention, in contrast to generating a new spatial index in response to movement of a predictably dynamic object, a portion of an existing spatial index may be modified in response to the movement of a predictably dynamic object. According to one embodiment of the invention, modification may include changing information defining the position of splitting planes along a splitting axis to correspond to the new position of the object within the three-dimensional scene. In contrast to generating a new spatial index, by modifying only a portion of an existing spatial index the amount of time required to perform ray tracing image processing may be reduced.
    Type: Application
    Filed: January 12, 2007
    Publication date: July 17, 2008
    Inventor: Robert Allen Shearer
  • Publication number: 20080122853
    Abstract: By mapping leaf nodes of a spatial index to processing elements, efficient distribution of workload in an image processing system may be achieved. In addition, processing elements may use a thread table to redistribute workload from processing elements which are experiencing an increased workload to processing elements which may be idle. Furthermore, the workload experienced by processing elements may be monitored in order to determine if workload is balanced. Periodically the leaf nodes for which processing elements are responsible may be remapped in response to a detected imbalance in workload. By monitoring the workload experienced by the processing elements and remapping leaf nodes to different processing elements in response to unbalanced workload, efficient distribution of workload may be maintained. Efficient distribution of workload may improve the performance of the image processing system.
    Type: Application
    Filed: November 28, 2006
    Publication date: May 29, 2008
    Inventors: Jeffrey Douglas Brown, Russell Dean Hoover, Eric Oliver Mejdrich, Robert Allen Shearer
  • Publication number: 20080122838
    Abstract: Embodiments of the invention provide methods and systems to reduce the amount of space necessary to store a spatial index. According to embodiments of the invention, a spatial index may store pointers to information defining primitives which are located within bounding volumes defined by leaf nodes in the spatial index. The pointers may be smaller in size in contrast to information which defines the primitives, and the pointers may point to locations within a scene graph which contains information defining the primitives. Therefore, by storing pointers to primitives in the spatial index rather than the information which defines the primitives, the amount of space required to store the spatial index may be reduced.
    Type: Application
    Filed: September 27, 2006
    Publication date: May 29, 2008
    Inventors: Russell Dean Hoover, Eric Oliver Mejdrich, Robert Allen Shearer
  • Publication number: 20080122845
    Abstract: By mapping leaf nodes of a spatial index to processing elements, efficient distribution of workload in an image processing system may be achieved. In addition, processing elements may use a thread table to redistribute workload from processing elements which are experiencing an increased workload to processing elements which may be idle. Furthermore, the workload experienced by processing elements may be monitored in order to determine if workload is balanced. Periodically the leaf nodes for which processing elements are responsible may be remapped in response to a detected imbalance in workload. By monitoring the workload experienced by the processing elements and remapping leaf nodes to different processing elements in response to unbalanced workload, efficient distribution of workload may be maintained. Efficient distribution of workload may improve the performance of the image processing system.
    Type: Application
    Filed: November 28, 2006
    Publication date: May 29, 2008
    Inventors: Jeffrey Douglas Brown, Russel Dean Hoover, Eric Oliver Mejdrich, Robert Allen Shearer
  • Publication number: 20080117206
    Abstract: Embodiments of the invention provide methods and apparatus to improve the efficiency of a ray tracing image processing system. According to one embodiment of the invention, when building a spatial index the position of a splitting plane used to create a bounding volume may be jittered or moved along an axis to determine if a more efficient location for the splitting plane exists. After jittering the splitting plane a number of primitives intersected by the splitting plane may be calculated. The number of primitives intersected by the splitting plane for each location may be compared, and the location with the fewest intersected primitives may be chosen for the final position of the splitting plane. By choosing the location with the fewest intersected primitives the number of ray-primitive intersection tests necessary when performing ray tracing may be reduced. Consequently, the efficiency of the image processing system may be improved.
    Type: Application
    Filed: November 21, 2006
    Publication date: May 22, 2008
    Inventor: Robert Allen Shearer
  • Publication number: 20080088619
    Abstract: Embodiments of the invention provide methods and apparatus for pre-fetching bounding volume information while tracing a ray through a spatial index. According to one embodiment of the invention, a first ray may be traced through a spatial index and a traversal history may be recorded. Later, a subsequent ray may be issued into a three dimensional scene which may have a similar trajectory as the first ray. The subsequent ray may intersect the same bounding volumes as the first ray as it is traversed through the spatial index. Therefore, the recorded traversal history may be used to pre-fetch bounding volume information while traversing the subsequent ray through the spatial index. By pre-fetching the bounding volume information, the amount of time to traverse the subsequent ray through the spatial index may be reduced.
    Type: Application
    Filed: October 17, 2006
    Publication date: April 17, 2008
    Inventors: Robert Allen Shearer, Alfred Thomas Watson
  • Publication number: 20080088622
    Abstract: A ray tracing image processing system may use a plurality of processing elements to render a two dimensional image from a three dimensional scene. A first portion of the processing elements may function as workload managers responsible for performing operations relating to traversing a ray through a spatial index, and a second portion of the processing elements may function as vector throughput engines responsible for performing operations relating to determining if a ray intersects primitives contained within bounding volumes. By monitoring workloads experienced by the processing elements for a particular frame, processing element function may be reallocated such that for a subsequent frame the workload experienced by processing elements in the image processing system may be balanced. Balanced workload may improve the performance of the image processing system.
    Type: Application
    Filed: October 13, 2006
    Publication date: April 17, 2008
    Inventor: Robert Allen Shearer
  • Publication number: 20080074417
    Abstract: Embodiments of the invention provide methods and apparatus for reallocating workload related to traversal of a ray through a spatial index. In a first operating state a workload manager may be experiencing a first or a normal workload. In the first operating state the workload manager may be responsible for traversing the entire spatial index and a vector throughput engine may be responsible for performing ray-primitive intersection tests. In an increased workload state the workload manager may experience an increased workload. In response to the increased workload the image processing system may partition the spatial index such that the workload manager may be responsible for traversing a first portion of the spatial index and the vector throughput engine may be responsible for traversing a second portion of the spatial index and for performing ray-primitive intersection tests.
    Type: Application
    Filed: September 27, 2006
    Publication date: March 27, 2008
    Inventors: Eric Oliver Mejdrich, Adam James Muff, Robert Allen Shearer
  • Publication number: 20080049016
    Abstract: Embodiments of the invention provide devices and techniques for partitioning a spatial index. In one embodiment of the invention, an image processing system may partition a spatial index into a plurality of portions such that different processing elements may be responsible for traversing a ray through different portions of the spatial index. The determination of where to partition the spatial index may be made based on any number of factors. For example, according to some embodiments of the invention, the spatial index may be partitioned to evenly distribute workload (e.g., determined by real-time performance metrics) amongst multiple processing elements. Partitioning of the spatial index to distribute workload may be based on the total number of nodes, the number of leaf nodes or the number of primitives which will be included in each resulting partition.
    Type: Application
    Filed: August 22, 2006
    Publication date: February 28, 2008
    Inventor: Robert Allen Shearer
  • Publication number: 20080049017
    Abstract: Embodiments of the invention provide techniques and systems for reducing network traffic in relation to ray-tracing a three dimensional scene. According to one embodiment of the invention, as a ray is traversed through a spatial index, a leaf node may be reached. Subsequent rays that traverse through the spatial index may reach the same leaf node. In contrast to sending information defining a ray issued by the workload manager to a vector throughput engine each time a ray reaches a leaf node, the workload manager may determine if a series of rays reach the same leaf node and send information defining the series of rays to the vector throughput engine. Thus, network traffic may be reduced by sending information which defines a series of rays which are traversed to a common (i.e., the same) leaf node in contrast to sending information each time a ray is traversed to a leaf node.
    Type: Application
    Filed: August 24, 2006
    Publication date: February 28, 2008
    Inventor: Robert Allen Shearer