High-speed video graphics system and method for generating solid polygons on a raster display
First Claim
1. A high-speed video graphics system for generating filled polygons on a raster display screen from X-Y vertex coordinates of said polygons, said system comprising:
- (a) means for receiving polygon data, said polygon data including pixel video data and the X-Y vertex coordinates for each polygon, said pixel data representing selected video attributes;
(b) calculating means for calculating from said X-Y vertex coordinates the X coordinates of the left and right edges of said polygons for each horizontal line of said display, said calculating means including(1) subtraction means for calculating Δ
X and Δ
Y for first and second horizontally opposed segments of each polygon from the X-Y vertex coordinates for the endpoints of said first and second segments, respectively;
(2) divider means coupled to said subtraction means for calculating the slopes of said first and second segments from the respective values of Δ
X and Δ
Y;
(3) edge calculator means coupled to said divider means and responsive to said slopes of said first and second segments for calculating the left and right edge X coordinates of a first horizontal line between said first and second segments; and
(4) means for controlling said subtraction means, divider means and edge calculator means to effect parallel processing of data corresponding to said first and second horizontally opposed segments;
(c) a frame buffer having a plurality of sections each corresponding to a plurality of adjacent pixels defining a video frame portion, said frame buffer sections each including a memory location for each associated pixel;
(d) means for writing said pixel data simultaneously into the frame buffer memory locations which correspond to a selected plurality of pixels in a selected frame portion, said writing means having a control input coupled to said calculating means; and
(e) means for reading said pixel data out of said frame buffer to refresh the display screen.
1 Assignment
0 Petitions
Accused Products
Abstract
A real-time video graphics system for generating solid polygons on a raster display screen from X-Y vertex coordinates of the polygons. Solid objects are defined in a host processor system as three-dimensional polygons. The host processor calculates the X-Y vertex coordinates for each polygon and deposits them, along with a corresponding instruction and pixel video data, in a shared RAM. The video graphics system obtains the instruction and data from the shared RAM and calculates from the X-Y vertex coordinates the X coordinates of the left and right edges of each solid polygon for each horizontal line of the display. The system writes pixel data for a horizontal stripe of 32 pixels into a frame buffer in one frame buffer memory write cycle of approximately 320 nanoseconds. Pixel data is periodically read out of the frame buffer, one complete stripe at a time, and shifted out serially to refresh the display screen.
104 Citations
16 Claims
-
1. A high-speed video graphics system for generating filled polygons on a raster display screen from X-Y vertex coordinates of said polygons, said system comprising:
-
(a) means for receiving polygon data, said polygon data including pixel video data and the X-Y vertex coordinates for each polygon, said pixel data representing selected video attributes; (b) calculating means for calculating from said X-Y vertex coordinates the X coordinates of the left and right edges of said polygons for each horizontal line of said display, said calculating means including (1) subtraction means for calculating Δ
X and Δ
Y for first and second horizontally opposed segments of each polygon from the X-Y vertex coordinates for the endpoints of said first and second segments, respectively;(2) divider means coupled to said subtraction means for calculating the slopes of said first and second segments from the respective values of Δ
X and Δ
Y;(3) edge calculator means coupled to said divider means and responsive to said slopes of said first and second segments for calculating the left and right edge X coordinates of a first horizontal line between said first and second segments; and (4) means for controlling said subtraction means, divider means and edge calculator means to effect parallel processing of data corresponding to said first and second horizontally opposed segments; (c) a frame buffer having a plurality of sections each corresponding to a plurality of adjacent pixels defining a video frame portion, said frame buffer sections each including a memory location for each associated pixel; (d) means for writing said pixel data simultaneously into the frame buffer memory locations which correspond to a selected plurality of pixels in a selected frame portion, said writing means having a control input coupled to said calculating means; and (e) means for reading said pixel data out of said frame buffer to refresh the display screen. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 12)
-
-
11. The video graphics system of claim wherein said frame portion is a horizontal stripe of at least 16 pixels and wherein said pixel data includes at least 4 bits per pixel.
-
13. A method of generating filled polygons on a raster display screen from X-Y vertex coordinates of said polygons, said method comprising the steps:
-
(a) receiving polygon data including the X-Y vertex coordinates of a particular polygon and pixel video data representing selected video attributes for said particular polygon; (b) calculating from said X-Y vertex coordinates the X coordinates of the left and right edges of said particular polygon for each horizontal line of said display, said calculating step including (1) calculating Δ
X and Δ
Y for first and second horizontally opposed segments of said particular polygon from the X-Y vertex coordinates for the endpoints of said first and second segments, respectively;(2) calculating the slopes of said first and second segments from the respective values of Δ
X and Δ
Y; and(3) calculating from said slopes of said first and second segments the left and right edge X coordinates of a first horizontal line between said first and second segments; wherein the operations defining said calculating step are controlled to effect parallel processing of data corresponding to said first and second horizontally opposed segments; (c) writing said pixel data simultaneously into a frame buffer in memory locations which correspond to a selected plurality of pixels in a selected video frame portion; and (d) reading said pixel data out of said frame buffer to refresh the display screen. - View Dependent Claims (14)
-
-
15. A high-speed video graphics system for generating filled polygons on a raster display screen from X-Y vertex coordinates of said polygons, said system comprising:
-
(a) means for receiving polygon data, said polygon data including pixel video data and the X-Y vertex coordinates for each polygon, said pixel data representing selected video attributes; (b) calculating means for calculating from said X-Y vertex coordinates the X coordinates of the left and right edges of said polygons for each horizontal line of said display, said calculating means including (1) subtraction means for calculating Δ
X and Δ
Y for first and second horizontally opposed segments of each polygon from the X-Y vertex coordinates for the endpoints of said first and second segments, respectively;(2) divider means coupled to said subtraction means for calculating the slopes of said first and second segments from the respective values of Δ
X and Δ
Y;(3) edge calculator means coupled to said divider means and responsive to said slopes of said first and second segments for calculating the left and right edge X coordinates of a first horizontal line between said first and second segments; and (4) means for controlling said subtraction means, divider means and edge calculator means to effect parallel processing of data corresponding to said first and second horizontally opposed segments; (c) a frame buffer having a plurality of sections each corresponding to a plurality of adjacent pixels defining a video frame portion, said frame buffer sections each including a memory location for each associated pixel; (d) means for writing said pixel data simultaneously into all frame buffer memory locations, in a selected frame buffer section, which correspond to pixels between said left and right edge X coordinates of said first horizontal line; and (e) means for reading said pixel data out of said frame buffer to refresh the display screen. - View Dependent Claims (16)
-
Specification