Computer graphics processing and selective visual display system – Computer graphic processing system – Plural graphics processors
Reexamination Certificate
2002-03-19
2004-03-30
Tung, Kee M. (Department: 2676)
Computer graphics processing and selective visual display system
Computer graphic processing system
Plural graphics processors
C345S530000, C707S793000
Reexamination Certificate
active
06714203
ABSTRACT:
FIELD OF THE INVENTION
This invention relates to the field of computer graphics, specifically, the architecture of real time graphics rendering systems.
BACKGROUND
An image generation system is a computer graphics rendering system, typically rendering images from geometric data in real-time. In many applications, an image generation system is tasked with transforming data into a form that can be rendered by a graphics processor to provide a visually realistic representation of an environment. Many applications are interactive so that the image generation system must respond in real-time to keep the environment synchronized with the current viewpoint of the user to provide the necessary realism. An image generator must render a scene at a rate equal to the display's refresh rate, typically 60 Hz. It is important that the image generator constantly meet this refresh rate target, or the scene will appear to stutter or jitter. Flight simulation is the quintessential example of interactive 3D computer graphics applications. Additionally, flight simulation is no longer limited to the visual spectrum. For military flight simulators, it is important to also simulate sensors, such as FLIR (Forward Looking Infra Red), NVG (Night Vision Goggles), and Radar. In a geospecific simulator, multispectral or hyperspectral (i.e. some or many wavelengths) imagery may be used in conjunction with an accurate model of the sensor's spectral response characteristics to create a physics-based simulation of how a particular sensor will behave during a simulated mission. Other examples of interactive 3D computer graphics applications include high-end video games, virtual reality games, modeling systems, scientific visualization systems, and training systems for performing spacecraft maneuvers or operating transportation craft such as tankers and trucks. These applications also include a geometrical description of the simulated environment, including models and textures for the actual terrain, cultural features such as buildings, trees and roads, and special effects such as explosions and smoke columns, forming what is usually called the scene database or, more commonly, simply the ‘database’ for a given simulated area. Terrain is the largest element of a large geospecific database. The texture and elevation data can range in size from a few gigabytes to over a terabyte for a single database.
The image generation systems for these applications include or has an interface to a simulation host computer system that runs a numerical model that simulates the appropriate dynamics, for example aircraft dynamics. The data received from the host computer is processed by the image generation system for use by one or more channels in the image generator. A channel is a rendering computer system having a graphics system coupled to a display. Examples of displays include a projector and a screen, a monitor, a heads up display in a cockpit, or a multifunction display used to represent non-visual spectrum data, such as the forward looking infrared sensor. A simulated cockpit may have six projectors all providing an immersive display, and each of those projectors is run by a channel.
Although traditionally, the image generator systems have been integrated in a single computer system, the advent of high performance low cost personal computer systems makes the creation of image generation systems out of a collection of commodity personal computers possible.
In these clustered systems, multiple computers perform different tasks that, when combined together, amount to the entire functionality of a full image generation system. The creation of this integrated clustered system formed of multiple computers presents one problem of integration and communication of the nodes in the system so that they appear to be a single, unified system for external systems such as the host computer in the flight simulator example.
Typically approaches using a data protocol between the external system and the image generation systems are used across nodes, meaning that each node in the cluster perceives itself as an entire image generator with a single display output, but these approaches result in costly replication of the scene database across nodes and difficult management of the image generator as a whole.
A similar problem arises with the use of multi-processor systems. Sharing the work and data across multiple central processing units (CPUs) is frequently a requirement for high performance, but splitting the work in multiple threads proves to be difficult to implement and make scalable, especially while guaranteeing consistent real-time performance.
Systems such as Silicon Graphics Inc. (SGI's) IRIS Performer provide a simple and elegant infrastructure to share work across CPUs in a single system, but they do not readily extend into clustered distributed systems. Other clustering architectures for use in the context of scientific computing require lower level changes to the software at nodes across the system. In addition, the focus is on the actual distribution of the computational workload rather than the data used in the computations. Computational cluster architectures also rely upon low-latency network interconnects such as Myrinet which are much more costly than off-the-shelf network interconnects such as gigabit Ethernet.
SUMMARY OF THE INVENTION
In one aspect, the present invention provides a data pipeline for processing multiple stages or versions of a progressive data structure in an image generation system. In one embodiment, this progressive data structure includes a header section with a table of pointers to a collection of data substructures. The structure of a progressive data structure follows the same pattern in every stage. In each stage of the pipeline, the progressive data structure has pointers to substructures comprising data for the attributes of one or more components associated with a scene, and those pointers contain the address in the progressive data section for that particular substructure if present, or NULL if not present. These data substructures may include nested data substructures. The data structure is progressive because its contents are developed as it progresses through the pipelined building process. As data incoming to the pipeline progresses through the different stages, the nature of the data in the versions of progressive data structures transforms from abstract information to a concrete or expanded form suitable for graphics rendering operations. An early stage progressive data structure may be only a few hundred bytes in size, and have abstract data, for example weather status or target types in the flight simulator example, but by the time the data is rendered or used for actual final computations, the size can be hundreds of megabytes, and include coordinates, texture maps and rendering parameters.
Builder functions or modules perform processing based on a progressive data structure. A builder may organize or format incoming data into the progressive data structure format. A builder may traverse this structure and expand the data in the substructures by performing rendering computations. A builder may also traverse the structure and remove substructures not to be processed for a particular function such as objects outside the view frustrum of a channel. An example of expansion is computing the colors of the sky, clouds, and terrain, from a single time of day parameter. An example of contraction is deleting all parameters relating to a component such as a ground target (e.g., a truck) if that ground target is disabled or beyond the horizon and pointing to NULL any pointer in a parent of a substructure that contains any of these parameters. Builder functions may be implemented in software stored in a computer usable medium such as a memory, a compact disc, or computer disk, or be carried in a data transmission medium such as a signal. The progressive data structure may also be stored in a computer usable medium or be carried in a data transmission medium.
This pipeline infrastru
Morgan III David L.
Sanz-Pastor Ignacio
Aechelon Technology, Inc.
Fenwick & West LLP
Tung Kee M.
LandOfFree
Data aware clustered architecture for an image generator does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Data aware clustered architecture for an image generator, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Data aware clustered architecture for an image generator will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3244558