A scan-conversion processor converts a graphic primitive defined by its outline to pixel data by storing edge data blocks containing the y-coordinates of the vertices of each edge, the x-coordinate of the lower vertex, and x-coordinate increment data. The edge blocks are linked in ascending order of teir minimum y-coordinate values into edge chains representing consecutive series of upward- or downward-inclined edges. Information indicating the edge inclination can also be stored in each edge data block, to support use of the non-zero-winding algorithm to discriminate between the interior and exterior of the graphic primitive. since it requires relatively little memory space, the scan-conversion processor, including its memory, can be implemented as a single integrated circuit on a semiconductor chip.
A method and apparatus for simultaneously rendering multiple scanlines. Using a scanline approach to rendering, multiple scanlines may be rendered simultaneously through the use of parallel rendering means. The rendering of multiple scanlines in parallel is enabled by creating scanline independence. Scanline independence is achieved by interpolation through direct evaluation of object information. During the rendering process each of the rendering means vertically interpolates to identify a span corresponding to the scanline being rendered. A span is identified by it's X, Y coordinates on a scanline. The scanline being rendered provides the Y-coordinate. Vertical interpolation generally involves the step of deriving the X-coordinates for the endpoints of the span and comprises the steps of: identifying active edges of the object, calculating a relative interpolation weight for each active edge and solving a linear interpolation function using the relative interpolation weight and the leftmost X-coordinate of the active edges and the rightmost X-coordinate of the active edges.
A quadrilateral is divided into two triangles so that each of the two triangles may then be filled by a triangle fill scan converter. Additionally, the vertices of a triangle are sorted to generate inputs to a fill scan converter. A circuit combines the functions of dividing the quadrilateral into triangles and generating the plane equations for the triangle fill scan converter. Accordingly, similar operations which are performed for both triangles of the quadrilateral may be shared between the plane equations for the two triangles. A circuit also combines the functions of generating the plane equations for any one triangle with automatic sorting of the triangle vertices.
Apparatus and method for generating displayable information expressive of a three dimensional solid object. The apparatus includes a processor (12,16) for expressing the object in a Constructive Solid Geometry representation thereof so as to be comprised of one or more primitive objects. The apparatus further includes a processor (18, 20) for repetitively evaluating the one or more primitive objects to determine displayable faces thereof. A depth interval buffer (20) is responsive to the operation of a scan conversion processor (18) for detecting when a predetermined number of repetitive evaluations occur without causing a change in the determination of a displayable face and for causing the operation of the evaluation processor to terminate. Toleranced depth tests are used to remove dangling faces or edges and to properly handle coincident faces. Pixel-centering is employed to improve the accuracy of depth tests and to identify pixels upon which a product projects. Shadowing is accomplished using a two-pass scan-conversion technique with an auxiliary shadow-buffer (ZS).
A graphics output system stores a collection of graphic segments that are intended for display, potentially in overlapping relation, in a two-dimensional output image. The stored graphic segments are converted into a representation of an output image. The stored graphic segments are specified by boundary inter-relationship data respectively determining the boundary of each segment and the relative depth priorities of the segments in the output image and any clipping of each said segment to the boundary of a lower-priority segment that it can potentially overwrite. The collection of graphic segments is modified, for example, by deleting or adding segments. A new image representation is not formed from the beginning each time the segment collection is modified. Instead, the output image representation is within a region delimited by the boundary of one or more segments associated with the modification. Preferably, this bounded updating is facilitated by maintaining association data identifying the segment corresponding to each image position.
A polygonal image-drawing processor has a device for providing a direction of a linear vector on each of sides constituting a polygon based on information about two end points X and Y and side information of the polygon; a device for dividing each of the polygonal sides into two groups of right-handed and left-handed sides in accordance with the provided direction of the linear vector; a device for calculating an X address of each of dots between the two end points by a digital differential analysis with respect to a direction of a Y-coordinate; a device for controlling the operation of an image memory in a writing region thereof corresponding to each of the divided groups to write X and Y addresses at left-handed and right-handed intersection points of the polygon to the image memory; and an image-drawing processing device for performing a coloring operation between the respective right-handed and left-handed sides based on the X and Y addresses written to the image memory so as to draw an image. Another polygonal image-drawing processor is also shown.