System and method for a data processing pipeline
First Claim
1. In a computer graphics system having a CPU, a work station connected to said CPU for inputting graphics data to said system, means connected to said CPU for storing said data, and means connected to said CPU for outputting graphic illustrations on a video output device, an improved data processing pipeline for processing geometric figures which are composed of an array of both lines and curves, said CPU computing a plurality of vertices and at least one set of control points for each figure input at said work station such that each said line is defined by two end-point vertices and such that each curve of said figure is defined by a set of said control points, and said pipeline comprising:
- means for geometrically transforming any of said vertices or control points to a new position, said transforming means having an input port and an output port and the input port of said transforming means being connected to said means for storing said data;
means for clipping any of said vertices or control points to a viewing frustum, said clipping means having an input port and an output port and the input port of said clipping means being connected to the output port of said transforming means;
means for generating a series of data points which re-define each curve of said figure in terms of a series of straight line segments, said generating means having an input port and an output port and the input port of said generating means being connected to the output port of said clipping means whereby said straight line segments are generated only after the output from said clipping means of said clipped vertices and control points; and
means for converting said lines and curves defining said figure to a format compatible for outputting said figure on said video output device, said converting means being connected to the output port of said generating means.
4 Assignments
0 Petitions
Accused Products
Abstract
An electronic data processing pipeline system and method for processing encoded control points representing graphical illustrations. The pipeline comprises a number of separate micro-programmed circuit cards, each of which are programmed to perform a specific processing operation.
A command is first sent to a matrix maker card defining a geometrical transformation to be performed on the graphical illustration. The matrix maker card, together with a matrix multiplier card, then calculates a transformation matrix representing the desired transformation.
Electronic representations of control data points are then transmitted to the pipeline for processing. These control points are 3D points comprising both the vertices which terminate linear edges of the illustration and the control points corresponding to curved edges of the illustration. Each of the points is encoded to indicate whether it represents a vertex or a control point for a curved edge. In addition, the various points are encoded to indicate whether the corresponding portion of the illustration is to be rendered as a solid figure or a line drawing.
The control points are then multiplied by the transformation matrix, computed previously, in a vector multiplier circuit card. Next, the control points are clipped to the planes of the viewing frustum by a number of clipper cards (one card for each clipping plane). The 3D control points are then mapped onto the 2D viewing window by a viewport card.
Once the control points have been processed as set forth above, the clipped control points are then exploded to generate a plurality of small line segments representing each of the curved edges of the illustration. A sufficient number of line segments are generated for each edge such that the edges of the illustration appear smooth to the viewer. Finally, the appropriate portions of the illustration are rendered as a line drawing, in accordance with the code attached to the various control points; and the processed data is then converted into a form which is appropriate for scan conversion.
209 Citations
26 Claims
-
1. In a computer graphics system having a CPU, a work station connected to said CPU for inputting graphics data to said system, means connected to said CPU for storing said data, and means connected to said CPU for outputting graphic illustrations on a video output device, an improved data processing pipeline for processing geometric figures which are composed of an array of both lines and curves, said CPU computing a plurality of vertices and at least one set of control points for each figure input at said work station such that each said line is defined by two end-point vertices and such that each curve of said figure is defined by a set of said control points, and said pipeline comprising:
-
means for geometrically transforming any of said vertices or control points to a new position, said transforming means having an input port and an output port and the input port of said transforming means being connected to said means for storing said data; means for clipping any of said vertices or control points to a viewing frustum, said clipping means having an input port and an output port and the input port of said clipping means being connected to the output port of said transforming means; means for generating a series of data points which re-define each curve of said figure in terms of a series of straight line segments, said generating means having an input port and an output port and the input port of said generating means being connected to the output port of said clipping means whereby said straight line segments are generated only after the output from said clipping means of said clipped vertices and control points; and means for converting said lines and curves defining said figure to a format compatible for outputting said figure on said video output device, said converting means being connected to the output port of said generating means. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. In a computer graphics system having a CPU, a work station connected to said CPU for inputting graphics data to said system, means connected to said CPU for storing said data, and means connected to said CPU for outputting graphic illustrations on a video monitor, an improved data processing pipeline for processing geometric figures which are composed of both lines and curves, said CPU computing a plurality of vertices and at least one set of control points for each figure input at said work station such that each curve of said figure is defined by a set of said control points, and said pipeline comprising:
-
means for geometrically transforming any of said vertices and control points to a new position, said transforming means having an input port and an output port and the input port of said transforming means being connected to said means for storing said data; means for clipping any of said vertices and control points to a viewing frustum, said clipping means having an input port and an output port and the input port of said clipping means being connected to the output port of said transforming means; means for projecting any of said vertices and control points in perspective onto an area which corresponds to a two-dimensional viewing surface of said video monitor, said projecting means having an input port and an output port and the input port of said projecting means being connected to the output port of said clipping means; means for generating a series of data points which re-define each curve of said figure in terms of a series of straight line segments, said generating means having an input port and an output port and the input port of said generating means being connected to the output port of said projecting means, whereby said line segments are generated only after said vertices and control points are clipped and projected by said clipping means and said projecting means so as to enable said generating means to generate a sufficient number of line segments to essentially eliminate the appearance of any straight line approximations in any of said curves; and means for converting said lines and curves defining said figure to a format compatible for outputting said figure on said video monitor, said converting means being connected to the output port of said generating means. - View Dependent Claims (8, 9, 10, 11)
-
-
12. In a data processing pipeline that clips electronic signals to a viewing frustum, said electronic signals representing vector-valued control points defining curved edges and curved surfaces of a geometric figure, a system comprising:
-
means for clipping said control points to said viewing frustum, said clipping means comprising an output port for transmitting electronic signals representing the clipped control points; and an exploder circuit comprising means for redefining the curved edges and surfaces defined by the clipped control points as curved edges comprised of a plurality of straight line segments and curved surfaces comprised of a plurality of essentially planar patches, whereby said straight line segments and said planar patches are generated only after said control points are clipped.
-
-
13. A data processing pipeline for processing a geometric figure having one or more curves defined by a set of vector-valued control points, whereby said figure can be displayed in an animated mode using a series of geometric transformations, said pipeline comprising:
-
a matrix maker circuit comprising means for defining at least one matrix for each said geometric transformation, said matrix maker circuit also comprising an electronic data input port for receiving said control points and an electronic data output port; a matrix multiplier circuit comprising means for concatenating at least two of the matrices defined by said matrix maker circuit, said matrix multiplier circuit also comprising an electronic data input port and an electronic data output port, the matrix multiplier circuit input port being electronically connected to the matrix maker circuit output port; a header circuit comprising means for generating command signals for controlling each circuit of said data processing pipeline as said circuits are used to process said control data points, said header circuit also comprising a first electronic data input port for receiving said control points and a first electronic data output port; a vector multiplier circuit comprising means for geometrically transforming said control points, said vector multiplier circuit also comprising a first electronic data input port which is electronically connected to the first header circuit output port, a second electronic data input port which is electronically connected to the matrix multiplier circuit output port, and a first electronic data output port; a plurality of clipper circuits, each said clipper circuit comprising means for clipping said control points to different clipping planes from one another, said clipping planes defining a viewing frustum, and said clipper circuits each comprising an electronic data input port and an electronic data output port, the input port of at least one said clipper circuit being electronically connected to the first output port of said vector multiplier circuit and said clipper circuits being electronically connected in series one with another such that control points transmitted to a first clipper circuit are then sequentially clipped in turn by each of the remaining clipper circuits, with the fully clipped control points being output from the output port of the last clipper circuit; a view port circuit comprising means for projecting said control points in perspective onto an area representing a two-dimensional viewing surface, said view port circuit also comprising an electronic data input port and an electronic data output port, the input port of said view port circuit being electronically connected to said last clipper circuits output port; an exploder circuit comprising means for redefining said curves in terms of a plurality of small straight line segments, said exploder circuit also comprising an electronic data input port and an electronic data output port, the exploder circuit input port being electronically connected to the view port circuit'"'"'s output port so that said straight line segments are generated only after said control points are geometrically transformed, clipped and projected onto said viewing surface; and an incremental form circuit comprising means for transforming said straight line segments into a format for scan line conversion, said incremental form circuit also comprising an electronic data input port and an electronic data output port, the incremental form circuit'"'"'s input port being electronically connected to the exploder circuit'"'"'s output port and said incremental form circuit'"'"'s output port being connected to a means for displaying said graphic illustration, whereby said figure is displayed in an animated mode.
-
-
14. A method of generating a geometric figure within the boundaries of a viewing frustum, said method comprising the steps of:
-
transmitting to a CPU from a data input device a set of electronic signals representing said figure; transforming said electronic signals into a first set of control points representing said figure, said control points comprising both vertices terminating said linear edges of said figure and parametric control points corresponding to said curved edge of the figure; clipping said first set of control points such that said vertices and parametric control points are within the boundaries of said viewing frustum, thereby generating a second set of control points comprising the vertices and parametric control points remaining after said clipping step; and transmitting said second set of control points to a video output device so as to illustrate said figure at said video output device. - View Dependent Claims (15, 16)
-
-
17. A method of generating a geometric figure within the boundaries of a viewing frustum, said method comprising the steps of:
-
transmitting to a CPU from a data input device a set of electronic signals representing said figure; transforming said electronic signals into a first set of control points representing said figure, said control points comprising both vertices terminating linear edges of the figure and control points corresponding to curved edges of the figure; clipping said first set of control points whereby a second set of control points is generated representing the figure after it has been clipped to fit within the boundaries of said viewing frustum; generating from said second set of control points a plurality of electronic signals which redefine each curved edge of said clipped figure in terms of a series of small straight line segments; and transmitting said electronic signals to a video output device so as to illustrate said figure at said video output device. - View Dependent Claims (18, 19, 20, 21)
-
-
22. In a computer graphics system having a CPU, a work station connected to said CPU for inputting graphics data to said system, means connected to said CPU for storing said data, and means connected to said CPU for outputting graphic illustrations on a video monitor, a method of processing geometric figures which are composed of both linear and curved edges, said method comprising the steps of:
-
generating at least one set of control points for each figure input at said work station such that each curve of said figure is defined by said control points; geometrically transforming each set of control points to a new position for each said video frame; clipping said control points to a viewing frustum; redefining each curve of said figure in terms of a series of straight line segments which are generated only after said control points are clipped; and outputting said figure on said video monitor. - View Dependent Claims (23, 24)
-
-
25. In a computer graphics system having a CPU, a work station connected to said CPU for inputting graphics data to said system, means connected to said CPU for storing said data, and means connected to said CPU for outputting sequential video frames representing animated graphic illustrations on a video monitor, a method of processing geometric figures which are composed of both linear and curved edges, said method comprising the steps of:
-
computing at least one set of control points for each figure input at said work station such that each curve of said figure is defined by said control points; geometrically transforming each set of control points to a new position for each said video frame; clipping said control points to a viewing frustum; projecting said control points in perspective onto an area of a two-dimensional viewing surface which corresponds to a portion of said video monitor; redefining each curve of said figure in terms of a series of straight line segments which are generated only after said control points are clipped and projected; and outputting said figure on said video monitor, whereby said figure will be output on said video monitor in an animated mode of display. - View Dependent Claims (26)
-
Specification