Publication number | US6791547 B2 |

Publication type | Grant |

Application number | US 09/982,355 |

Publication date | Sep 14, 2004 |

Filing date | Oct 18, 2001 |

Priority date | Oct 18, 2001 |

Fee status | Lapsed |

Also published as | US20030206167 |

Publication number | 09982355, 982355, US 6791547 B2, US 6791547B2, US-B2-6791547, US6791547 B2, US6791547B2 |

Inventors | Thomas L Thrasher |

Original Assignee | Hewlett-Packard Development Company, L.P. |

Export Citation | BiBTeX, EndNote, RefMan |

Patent Citations (5), Non-Patent Citations (3), Referenced by (3), Classifications (8), Legal Events (8) | |

External Links: USPTO, USPTO Assignment, Espacenet | |

US 6791547 B2

Abstract

In one embodiment, selecting auxiliary screen regions to activate in rendering a straight line segment on a screen of a computer monitor, wherein the straight line segment comprises points defined by an algebraic expression equal to zero, wherein the expression is expressed as a first constant multiplied by a x-axis value plus a second constant multiplied by a y-axis value plus a third constant, wherein the straight line segment has a width. Disclosed are steps of overlaying a rectangular grid to associated screen region boundaries, wherein the screen comprises a screen space divided into multiple screen regions, shifting the rectangular grid in a preselected direction parallel to a preselected axis by a fraction of the width of the straight line segment, and for each corner point of the shifted rectangular grid, computing the expression, obtaining an algebraic sign of the result of computing the expression, and when the algebraic sign just obtained differs from that obtained for the expression for any other shifted rectangular grid corner point, marking the associated screen region as selected.

Claims(24)

1. A method for selecting auxiliary screen regions to activate in rendering a straight line segment on a screen of a computer monitor, wherein the straight line segment comprises points defined by an algebraic expression equal to zero, wherein the expression is expressed as a first constant multiplied by a x-axis value plus a second constant multiplied by a y-axis value plus a third constant, wherein the straight line segment has a width, comprising:

overlaying a rectangular grid to associated screen region boundaries, wherein the screen comprises a screen space divided into multiple screen regions;

shifting the rectangular grid in a preselected direction parallel to a preselected axis by a fraction of the width of the straight line segment; and

for each corner point of the shifted rectangular grid,

computing the expression;

obtaining an algebraic sign of the result of computing the expression; and

when the algebraic sign just obtained differs from that obtained for the expression for any other shifted rectangular grid corner point, marking the associated screen region as selected.

2. The method as recited in claim 1 , providing the fraction of the width of the straight line segment by which the rectangular grid is shifted is ½ the width of the straight line segment.

3. The method as recited in claim 1 , further comprising:

rendering the straight line segment on the screen region in the screen space.

4. A method for selecting auxiliary screen regions on a screen of a monitor of a computer graphics display system to activate in rendering a straight line segment by a rasterizer assigned to the screen region, wherein the straight line segment has a width, wherein a locus of the straight line segment is specified by equation A*x+B*y+C=0, wherein A, B, and C are respectively a first, second, and third constants, and wherein x and y are respectively Cartesian coordinate system x-axis and y-axis values, comprising:

overlaying a rectangular grid to screen region boundaries, wherein the screen comprises a screen space divided into multiple screen regions;

shifting the rectangular grid in a preselected direction parallel to a preselected axis by an amount equal to a fraction of the width of the straight line segment;

successively selecting once each corner of the shifted rectangular grid until the screen region is marked as selected:

evaluating expression A*x+B*y+C at the selected corner,

storing in a memory the algebraic sign of the evaluated expression for the selected corner, and

if the algebraic sign of the evaluated expression for the selected corner differs from any of the stored algebraic signs, marking the screen region as selected.

5. The method as recited in claim 4 , providing the fraction of the width of the straight line segment by which the rectangular grid is shifted is ½ the width of the straight line segment.

6. The method as recited in claim 4 , further comprising:

rendering the straight line segment on the screen region in the screen space.

7. A program storage medium readable by a server computer, embodying a software program of instructions executable by the server to perform method steps for selecting auxiliary screen regions to activate in rendering a straight line segment on a screen of a computer monitor, wherein the straight line segment comprises points defined by an algebraic expression equal to zero, wherein the expression is expressed as a first constant multiplied by a x-axis value plus a second constant multiplied by a y-axis value plus a third constant, wherein the straight line segment has a width, comprising:

overlaying a rectangular grid to associated screen region boundaries, wherein the screen comprises a screen space divided into multiple screen regions;

shifting the rectangular grid in a preselected direction parallel to a preselected axis by a fraction of the width of the straight line segment; and

for each corner point of the shifted rectangular grid,

computing the expression;

obtaining an algebraic sign of the result of computing the expression; and

when the algebraic sign just obtained differs from that obtained for the expression for any other shifted rectangular grid corner point, marking the associated screen region as selected.

8. The program storage medium as recited in claim 7 , wherein the fraction of the width of the straight line segment by which the rectangular grid is shifted is ½ the width of the straight line segment.

9. The program storage medium as recited in claim 7 , further comprising:

rendering the straight line segment on the screen region in the screen space.

10. A program storage medium readable by a server computer, embodying a software program of instructions executable by the server to perform method steps for selecting auxiliary screen regions on a screen of a monitor of a computer graphics display system to activate in rendering a straight line segment by a rasterizer assigned to the screen region, wherein the straight line segment has a width, wherein a locus of the straight line segment is specified by equation A*x+B*y+C=0, wherein A, B, and C are respectively a first, second, and third constants, and wherein x and y are respectively Cartesian coordinate system x-axis and y-axis values of points on the straight line segment, comprising:

overlaying a rectangular grid to screen region boundaries, wherein the screen comprises a screen space divided into multiple screen regions;

shifting the rectangular grid in a preselected direction parallel to a preselected axis by an amount equal to a fraction of the width of the straight line segment;

successively selecting once each corner of the shifted rectangular grid until the screen region is marked as selected:

evaluating expression A*x+B*y+C at the selected corner,

storing in a memory the algebraic sign of the evaluated expression for the selected corner, and

if the algebraic sign of the evaluated expression for the selected corner differs from any of the stored algebraic signs, marking the screen region as selected.

11. The program storage medium as recited in claim 10 , wherein the fraction of the width of the straight line segment by which the rectangular grid is shifted is ½ the width of the straight line segment.

12. The program storage medium as recited in claim 10 , further comprising:

rendering the straight line segment on the screen region in the screen space.

13. The method as recited in claim 1 , providing the width of the straight line segment is greater than that of one screen region.

14. The method as recited in claim 13 , wherein the fraction of the width of the straight line segment by which the rectangular grid is shifted is ½ the width of the straight line segment.

15. The method as recited in claim 1 , further comprising:

shifting the rectangular grid in a direction opposite the preselected direction parallel to the preselected axis by width of the associated screen region; and

for each corner point of the opposite direction shifted rectangular grid,

computing the expression;

obtaining an algebraic sign of the result of computing the expression; and

when the algebraic sign just obtained differs from that obtained for the expression for any other opposite direction shifted rectangular grid corner point, marking the associated screen region as selected.

16. The method as recited in claim 4 , providing the width of the straight line segment is greater than that of one screen region.

17. The method as recited in claim 16 , wherein the fraction of the width of the straight line segment by which the rectangular grid is shifted is ½ the width of the straight line segment.

18. The method as recited in claim 4 , further comprising:

shifting the rectangular grid in a direction opposite the preselected direction parallel to the preselected axis by an amount equal to width of the associated screen region; and

successively selecting once each corner of the opposite direction shifted rectangular grid until the screen region is marked as selected:

evaluating expression A*x+B*y+C at the selected corner,

storing in a memory the algebraic sign of the evaluated expression for the selected corner, and

if the algebraic sign of the evaluated expression for the selected corner differs from any of the stored algebraic signs, marking the screen region as selected.

19. The program storage medium as recited in claim 7 , providing the width of the straight line segment is greater than that of one screen region.

20. The program storage medium as recited in claim 19 , wherein the fraction of the width of the straight line segment by which the rectangular grid is shifted is ½ the width of the straight line segment.

21. The program storage medium as recited in claim 7 , further comprising:

shifting the rectangular grid in a direction opposite the preselected direction parallel to the preselected axis by width of the associated screen region; and

for each corner point of the opposite direction shifted rectangular grid,

computing the expression;

obtaining an algebraic sign of the result of computing the expression; and

when the algebraic sign just obtained differs from that obtained for the expression for any other opposite direction shifted rectangular grid corner point, marking the associated screen region as selected.

22. The program storage medium as recited in claim 10 , providing the width of the straight line segment is greater than that of one screen region.

23. The program storage medium as recited in claim 22 , wherein the fraction of the width of the straight line segment by which the rectangular grid is shifted is ½ the width of the straight line segment.

24. The program storage medium as recited in claim 10 , further comprising:

shifting the rectangular grid in a direction opposite the preselected direction parallel to the preselected axis by an amount equal to width of the associated screen region; and

successively selecting once each corner of the opposite direction shifted rectangular grid until the screen region is marked as selected:

evaluating expression A*x+B*y+C at the selected corner,

storing in a memory the algebraic sign of the evaluated expression for the selected corner, and

Description

The present invention relates generally to computer graphics displays, and particularly to the display of straight line segments on computer graphics displays.

Computer graphics systems are commonly used to display graphical representations of two-dimensional or three-dimensional objects on a two-dimensional display screen. The display screen is typically a cathode ray tube (CRT) device and is divided into arrays of elements referred to as pixels which can be stimulated to emit a range of visual light. The stimulation of the pixels is performed sequentially in some regular order and is repeated typically 50 to 80 times a second in order to maintain a screen image whose intensity does not noticeably change with time.

Typical CRT devices for use with graphics workstations are “raster scan” display devices. Modem raster scan display devices generate images comprising a multiplicity of parallel, non-overlapping bands of pixels comprising sets of parallel lines.

In typical computer graphics systems, an object to be represented on the display screen is broken down into a plurality of graphics primitives. Primitives are the basic components of a graphics picture and may include points, lines, vectors, and polygons, such as triangles. Typically, a hardware/software scheme is implemented to render, or draw, on the two-dimensional display screen, the graphics primitives that represent a particular view of one or more objects being represented on the screen.

As display systems have increased in complexity to meet an ever-increasing demand for a larger display area and a greater fidelity in the representation of objects on the display screen, the load on the hardware and software required to process the image has also increased. An increase in object representation fidelity has been accomplished, in part, by a decrease in pixel size with a corresponding increase in the number of pixels. The total number of pixels required has also increased as the size of the screen used for display has increased.

To improve performance with the increasing demands upon the rendering system, designers are employing varying techniques to add parallelism in the rendering process. One such technique divides the display's screen space into multiple regions. If a primitive or any portion of a primitive lies within a region, then that region is selected for further processing by a rasterizer that will ultimately render the image contained in that region. Parallelism can now be obtained by having multiple rasterizers available which can be independently assigned to the screen regions that have objects to be rendered, thus allowing multiple objects to be simultaneously rendered.

Typical systems render a straight line segment via a stepping algorithm. A starting point on the display for the line is determined with the pixel corresponding to that point being illuminated. The next pixel to be illuminated is determined by stepping along the major axis one pixel position and then computing the value of the pixel in the minor axis direction. The major axis is defined as that axis to which the line to be rendered forms an included angle of less than or equal to 45 degrees. The minor axis then is the other axis of a Cartesian coordinate system. For example, if the line to be rendered forms an included angle of 37 degrees to the x-axis, then the x-axis is considered to be the major axis and the y-axis the minor axis. In like manner, the next pixel to be illuminated is determined by again stepping one pixel position along the major axis, which is the x-axis in the example, and then computing the corresponding minor axis position, the y-axis in the example, of the pixel on the line to be rendered. This process is repeated until the end of the line is reached. In a region-based rasterizer system, what is desired is a technique that focuses only on the portion of the line within the region currently being processed rather than a traditional technique of starting at the beginning of the line segment and processing to the end, crossing potentially many different regions.

As noted earlier, previous methods for rendering straight line segments have typically used a single rasterizer to generate all the pixels for a given line from the start of the line to the end of the line without regard to regions or region boundaries. With region-based rasterization however, it is possible that a single line might have several rasterizers generating pixels for that line, each operating within its assigned screen region. By identifying which regions the line passes thru, only rasterizers assigned to those regions need to be activated to process the line, freeing rasterizers assigned to the other regions to process primitives appearing in their regions. Techniques disclosed herein limit the area of the screen that must be considered in drawing the straight line segment providing for more computationally-efficient techniques. In the following detailed description and in the several figures of the drawings, like elements are identified with like reference numerals.

In one embodiment of the invention, a method for selecting auxiliary screen regions to activate in rendering a straight line segment on a screen of a computer monitor, wherein the straight line segment comprises points defined by an algebraic expression equal to zero, wherein the expression is expressed as a first constant multiplied by a x-axis value plus a second constant multiplied by a y-axis value plus a third constant, wherein the straight line segment has a width is disclosed. The method includes the steps of overlaying a rectangular grid to associated screen region boundaries, wherein the screen comprises a screen space divided into multiple screen regions, shifting the rectangular grid in a preselected direction parallel to a preselected axis by a fraction of the width of the straight line segment, and for each corner point of the shifted rectangular grid, computing the expression, obtaining an algebraic sign of the result of computing the expression, and when the algebraic sign just obtained differs from that obtained for the expression for any other shifted rectangular grid corner point, marking the associated screen region as selected.

The accompanying drawings provide visual representations which will be used to more fully describe the invention and can be used by those skilled in the art to better understand it and its inherent advantages. In these drawings, like reference numerals identify corresponding elements.

FIG. 1A is a drawing of a computer graphics display system as described in various representative embodiments consistent with the teachings of the invention.

FIG. 1B is a drawing of the screen space of the computer graphics display system as described in various representative embodiments consistent with the teachings of the invention.

FIG. 2 is a drawing of another screen space of the computer graphics display system as described in various representative embodiments consistent with the teachings of the invention.

FIGS. 3A-3C are various representations of a screen region of the computer graphics display system as described in illustrative embodiments consistent with the teachings of the invention.

FIG. 4 is an illustrative flow chart of a method for selecting screen regions to activate in rendering a straight line segment as described in various representative embodiments consistent with the teachings of the invention.

FIG. 5 is a drawing of a portion of the screen space of the computer graphics display system as described in various representative embodiments consistent with the teachings of the invention.

FIGS. 6A-6J are various representations of one pixel of the screen space of the computer graphics display system as described in illustrative embodiments consistent with the teachings of the invention.

FIG. 7 is an illustrative flow chart of a method for selecting pixels to activate in rendering a straight line segment as described in various representative embodiments consistent with the teachings of the invention.

FIG. 8 is a drawing of yet another screen space of the computer graphics display system as described in various representative embodiments consistent with the teachings of the invention.

FIG. 9 is a drawing of adjacent screen regions in the screen space of the computer graphics display system as described in various representative embodiments consistent with the teachings of the invention.

FIG. 10 is another drawing of adjacent screen regions in the screen space of the computer graphics display system as described in various representative embodiments consistent with the teachings of the invention.

FIG. 11 is an illustrative flow chart of a method for selecting auxiliary screen regions to activate in rendering the straight line segment having widths greater than one pixel as described in various representative embodiments consistent with the teachings of the invention.

FIG. 12 is an illustrative flow chart of another method for selecting auxiliary screen regions to activate in rendering the straight line segment having widths greater than one pixel as described in various representative embodiments consistent with the teachings of the invention.

As shown in the drawings for purposes of illustration, novel techniques are shown in a computer graphics display system for selecting regions of a screen to activate in rendering a straight line segment, for selecting pixels to activate in rendering the straight line segment, and for selecting pixels to activate in rendering an auxiliary area of the straight line segment required in cases wherein the straight line segment has a width of greater than one pixel. In existing region-based rasterizers, every line primitive is processed in every region to determine whether any pixels are active in that region. By selecting regions to activate or consider, techniques disclosed herein limit the area of the screen that must be considered in drawing the straight line segment, thereby providing for more computationally-efficient techniques. In the following detailed description and in the several figures of the drawings, like elements are identified with like reference numerals.

In representative embodiments, the following paragraphs disclose methods for (1) selecting regions of the screen to activate in rendering a straight line segment in a computer graphics display system, (2) selecting pixels to activate in rendering the straight line segment in the computer graphics display system, and (3) selecting screen regions to activate in rendering the auxiliary area of a straight line segment required in cases wherein the straight line segment has a width in a computer graphics display system.

FIG. 1A is a drawing of a computer graphics display system **100** as described in various representative embodiments consistent with the teachings of the invention. The computer graphics display system **100** of FIG. 1 comprises a computer monitor **105**, a central processing unit (CPU) **106**, a memory **108**, and a graphics control system **107**. The monitor **105** comprises a screen **110** conceptually having a screen space **115**. The graphics control system **107** comprises at least one rasterizer **120**.

FIG. 1B is a drawing of the screen space **115** of the computer graphics display system **100** as described in various representative embodiments consistent with the teachings of the invention. The screen space **115** is conceptually divided into at least one screen region **125**, also referred to herein as region **125**, by vertical and horizontal grid lines **131**, **132**, respectively, which together form a rectangular grid **130**. While thirty screen regions **125** are shown in the example of FIG. 1B, for clarity of illustration, only one is shown with its associated identifying numeral.

Graphics systems are computationally intensive systems. As such, a valuable increase in system performance can be obtained via dividing the screen space **115** into multiple regions **125** and ignoring certain regions **125** in the rendering of primitives such as a line segment. Additional increases in system performance can be obtained via the parallel processing afforded by the use of multiple rasterizers **120**. Graphics systems which divide screen space **115** into multiple regions **125** with specified rasterizers **120** assigned to perform rasterization for specified regions of the screen space **115** are referred to as multiple region or tile-based rasterizer systems. In the representative embodiment of FIG. 1B, each screen region **125** can be associated with one of the rasterizers **120**. In another representative embodiment, a given rasterizer **120** could be responsible for the processing of more than one region **125**. The assignment of rasterizers **120** to regions **125** could be either statically or dynamically performed.

FIG. 2 is a drawing of another screen space **115** of the computer graphics display system **100** as described in various representative embodiments consistent with the teachings of the invention. In the example of FIG. 2, the screen space **115** is once again shown conceptually divided into thirty screen regions **125** by vertical and horizontal grid lines **131**,**132**, respectively, which together form rectangular grid **130**. While thirty screen regions **125** are shown in the example of FIG. 2, again for clarity of illustration, only one is shown with its associated identifying numeral. Screen space **115** is shown divided horizontally into first, second, third, fourth, and fifth region columns C**1** . . . C**5** and vertically into first, second, third, fourth, fifth, and sixth region rows R**1** . . . R**6** with individual screen regions **125** of the first region row R**1** being indicated as R**1**,C**1** . . . R**1**,C**5**.

A straight line segment **205** is drawn in screen space **115** of FIG. **2**. The straight line segment **205** has a first end point P**1** having x and y coordinates (X1,Y1) of a Cartesian coordinate system and a second end point P**2** having x and y coordinates (X2,Y2). A bounding box **210** which identifies the extent of the screen **110** region that is of concern in displaying the straight line segment **205** is conceptually defined on the screen space **115** by the first and second end points P**1**,P**2** wherein the bounding box has a first and second corners **215**,**220**. The first corner **215** of the bounding box **210** is defined by the coordinates (min(X1,X2), min(Y1,Y2)), and the second corner **220** of the bounding box **210** is defined by the coordinates (max(X1,X2), max(Y1,Y2)), where min(a,b) returns the minimum of the two values a and b, and max(a,b) returns the maximum of the two values a and b. The rectangular grid **130** is located on the boundaries of the screen regions **125**. The extent of this grid **130** should be large enough to include the bounding box **210**. Any part of the screen space **115** outside of this extent is guaranteed not to have any part of the straight line segment **205** contained within it.

Note that in the example of FIG. 2, first end point P**1** and first corner **215** are coincident, and second end point P**2** and second corner **220** are coincident. However, had the slope of the straight line segment **205** been negative instead of positive as in FIG. 2, the first corner **215** would have still been at the lower left hand corner of the bounding box **210**, and the second corner **220** would have still been at the upper right hand corner of the bounding box **210** while the first and second end points P**1**,P**2** would have been located respectively at the upper left hand corner and lower right hand corners of the bounding box **210**. Other designations are also possible in defining the bounding box **210**.

A first objective is to determine which of the screen regions **125** will be activated in displaying the straight line segment **205** on the screen **110** of the monitor **105**. Only those screen regions **125** through which the straight line segment **205** passes will need to be activated. All other screen regions **125** can be ignored in the display of that straight line segment **205**. As a first step, select all screen regions that are contained wholly or in part within the bounding box identified above. The following discussion is preferably independently applied to each of the identified screen regions.

The general equation of a straight line is A*x+B*y+C=0, which for the example of the straight line segment **205** of FIG. 2 results in A=(Y2−Y1), B=(X1−X2), and C=−(A*X1+B*Y1).

FIGS. 3A-3C are various representations of a screen region **125** of the computer graphics display system **100** as described in illustrative embodiments consistent with the teachings of the invention. FIG. 3A shows a single screen region **125** of the thirty shown in FIG. **2**. The particular screen region **125** of FIG. 3A has the straight line segment **205** passing below the screen region **125** and its lower right hand corner, similar to that for the screen region **125** identified in FIG. 2 by region row R**2** and region column C**2**. To determine mathematically whether or not the straight line segment **205** passes through the screen region **125** of FIG. 3A, it is only necessary to evaluate the expression A*x+B*y+C at each of the four corners of the screen region **125** of FIG. 3A where the constants A, B, and C are determined as indicated above for the straight line segment **205**. For FIG. 3A, this expression is positive for each corner as indicated by the “(+)” symbol shown at each corner in FIG. **3**A. For this case, each of the four corners of the screen region **125** of FIG. 3A lies above the straight line segment **205** indicating that the straight line segment **205** does not pass through this screen region **125**, and therefore this screen region **125** is not selected for further processing in displaying the straight line segment **205** on the screen **110**.

FIG. 3B shows a single screen region **125** of the thirty shown in FIG. **2**. The particular screen region **125** of FIG. 3B has the straight line segment **205** passing above the screen region **125** and its upper left hand corner, as it does for the screen region **125** identified in FIG. 2 by region row R**4** and region column C**3**. To determine mathematically whether or not the straight line segment **205** passes through the screen region **125** of FIG. 3B, it is only necessary to evaluate the expression A*x+B*y+C at each of the four corners of the screen region **125** of FIG. 3B where the constants A, B, and C are determined as indicated above for the straight line segment **205**. For FIG. 3B, this expression is negative for each corner as indicated by the “(−)” symbol shown at each corner in FIG. **3**B. For this case, each of the four corners of the screen region **125** of FIG. 3B lies below the straight line segment **205** indicating that the straight line segment **205** does not pass through this screen region **125**, and therefore this screen region **125** is not selected for further processing in displaying the straight line segment **205** on the screen **110**.

FIG. 3C shows a single screen region **125** of the thirty shown in FIG. **2**. The particular screen region **125** of FIG. 3C has the straight line segment **205** passing through the lower right hand section of the screen region **125**, as it does for the screen region **125** identified in FIG. 2 by region row R**3** and region column C**2**. To determine mathematically whether or not the straight line segment **205** passes through the screen region **125** of FIG. 3C, it is only necessary to evaluate the expression A*x+B*y+C at each of the four corners of the screen region **125** of FIG. 3C where the constants A, B, and C are determined as indicated above for the straight line segment **205**. For FIG. 3C, this expression is positive for three of the corners as indicated by the “(+)” symbol near the lower left hand corner, the upper left hand corner, and the upper right hand corner of this screen region **125** and negative for one corner of this screen region **125** as indicated by the “(−)” symbol shown at the lower right hand corner. For this case, three of the four corners of the screen region **125** of FIG. 3B lies above the straight line segment **205** and one lies below indicating that the straight line segment **205** does indeed pass through this screen region **125**, and therefore this screen region **125** is selected for further processing, or activated in displaying the straight line segment **205** on the screen **110**.

Whenever evaluating the expression A*x+B*y+C at all four corners of any given screen region **125**, produces results that have the same algebraic signs, the straight line segment **205** does not pass through that screen region **125**, and the corresponding screen region **125** will preferably not be activated in displaying the straight line segment **205** on the screen **110**. Whenever evaluating the expression A*x+B*y+C at all four corners of any given screen region **125**, produces results that have at least one algebraic sign that differs from the others, the straight line segment **205** does pass through that screen region **125**, and the corresponding screen region **125** will be activated in displaying the straight line segment **205** on the screen **110**.

FIG. 4 is an illustrative flow chart of a method for selecting screen regions **125** to activate in rendering a straight line segment **205** as described in various representative embodiments consistent with the teachings of the invention. This method would be preferably applied in turn against each screen region selected to test.

In block **405**, a control variable is set equal to a preselected value, which could be for example the number “0”. Block **405** then transfers control to block **410**.

In block **410**, the overlapping screen region **125** is marked as other than selected. Block **410**, then transfers control to block **415**.

In block **415**, when the overlapping screen region **125** is marked as other than selected, block **410** transfers control to block **420**. Otherwise, block **415** terminates the process.

In block **420**, the expression A*x+B*y=C is computed for a corner of one of the identified overlapping screen regions **125**. Block **420**, then transfers control to block **425**.

In block **425**, when the control variable is equal to the preselected value, block **425** transfers control to block **430**. Otherwise, block **425** transfers control to block **440**.

In block **430**, the algebraic sign of the result of the computation of the expression A*x+B*y+C obtained in block **420** is stored. Block **430** then transfers control to block **435**.

In block **435**, the value of the control variable is changed from its preselected value to something else, which could be for example the number “1”. Block **435** then transfers control to block **450**.

In block **440**, when the algebraic sign of the result of the computation of the expression A*x+B*y+C obtained in block **420** differs from that stored in block **430**, block **440** transfers control to block **445**. Otherwise, block **440** transfers control to block **450**.

In block **445**, the overlapping screen region **125** is marked as selected. Block **445** then transfers control to block **450**.

In block **450**, when there are remaining corners of the overlapping screen region **125** for which in block **420** the expression A*x+B*y+C have not been computed, block **450** transfers control to block **415**. Otherwise, block **450** terminates the process.

A second objective is to determine which pixels in displaying the straight line segment **205** on the screen **110** of the monitor **105** are illuminated within each of the activated screen regions **125**. Only those pixels through which the straight line segment **205** passes may need to be illuminated. All others can be ignored in the display of that straight line segment **205**.

FIG. 5 is a drawing of a portion of the screen space **115** of the computer graphics display system **100** as described in various representative embodiments consistent with the teachings of the invention. In the example of FIG. 2, the portion of the screen space **115** shown is that occupied by a single screen region **125**. The screen region **125** of FIG. 5 is divided into multiple pixels **505**. While twenty-five pixels **505** are drawn in the example of FIG. 5, for clarity of illustration, only one is shown with its associated identifying numeral. The screen region **125** of FIG. 5 is shown conceptually divided into pixels **505** by vertical and horizontal grid lines **531**,**532**, respectively, which together form a finer gradation of the rectangular grid **130**. The rectangular grid **130** is aligned to the boundaries of the pixels **505**. The screen space **115** occupied by the screen region **125** of FIG. 5 is shown divided horizontally into pixel first, second, third, fourth, and fifth columns c**1** . . . c**5** and vertically into first, second, third, fourth, and fifth pixel rows r**1** . . . r**5** with individual pixels **505** of the first pixel row r**1** being indicated as r**1**,c**1** . . . r**1**,c**5**.

FIGS. 6A-6J are various representations of one pixel **505** of the screen space **115** of the computer graphics display system **100** as described in illustrative embodiments consistent with the teachings of the invention. The pixel **505** has a width **640** and a height **645** as its dimensions. A center **650** of the pixel **505** is located at a distance equal to one-half that of the width **640** from a left edge **660** and at a distance equal to one-half that of the height **645** from a lower edge **665**. In other words, the lines of the rectangular grid **130** lie half way between the centers **650** of the pixels **505**.

In FIG. 6B, a vertical offset-grid line **670** passes through the center **650** of the pixel **505**. The vertical offset-grid line **670** is formed by offsetting a left grid line **680** of the pixel **505** to the right from its nominal position by ½ its width **640**. This movement is shown by first offset **672**. The left grid line **680** is co-linear with the left edge **660** of the pixel **505**. The vertical offset-grid line **670** intersects the pixel **505** boundaries at upper and lower intersection points V**1** and V**2**. In order to determine mathematically whether or not to illuminate the pixel **505**, it is only necessary to evaluate the expression A*x+B*y+C at each of the two points V**1** and V**2**. FIGS. 6C-6E illustrate the results for three separate conditions of straight line segments **205** passing through the pixel **505**.

Evaluating the expression A*x+B*y+C at the two points V**1** and V**2** results in a positive value for each point as indicated by the “(+)” symbol shown adjacent to the points. Since both points have the same algebraic sign for the expression A*x+B*y+C, the pixel **505** in question is preferably not illuminated for the straight line segment **205** shown in FIG. **6**C.

Evaluating the expression A*x+B*y+C at the two points V**1** and V**2** results in a positive value for point V**1** as indicated by the “(+)” symbol shown adjacent to point V**1** and in a negative value for point V**2** as indicated by the “(−)” symbol shown adjacent to point V**2**. Since the points have different algebraic signs for the expression A*x+B*y+C, the pixel **505** in question is illuminated for the straight line segment **205** shown in FIG. **6**D.

Evaluating the expression A*x+B*y+C at the two points V**1** and V**2** results in a negative value for each point as indicated by the “(−)” symbol shown adjacent to the points. Since both points have the same algebraic sign for the expression A*x+B*y+C, the pixel **505** in question is preferably not illuminated for the straight line segment **205** shown in FIG. **6**E.

In FIG. 6F, a horizontal offset-grid line **675** passes through the center **650** of the pixel **505**. The horizontal offset-grid line **675** is formed by offsetting a lower grid line **685** of the pixel **505** up from its nominal position by ½ its height **645**. This movement is shown by second offset **677**. The lower grid line **685** is co-linear with the lower edge **665** of the pixel **505**. The horizontal offset-grid line **675** intersects the pixel **505** boundaries at lower and upper points V**3** and V**4**. In order to determine mathematically whether or not to illuminate the pixel **505**, it is only necessary to evaluate the expression A*x+B*y+C at each of the two points V**3** and V**4** if the decision had not already been to illuminate the pixel **505** in the steps described in connection with FIGS. 6C-6E. FIGS. 6G-6I illustrate the results for three separate conditions of straight line segments **205** passing through the pixel **505**.

Evaluating the expression A*x+B*y+C at the two points V**3** and V**4** results in a positive value for each point as indicated by the “(+)” symbol shown adjacent to the points. Since both points have the same algebraic sign for the expression A*x+B*y+C, the pixel **505** in question is preferably not illuminated for the straight line segment **205** shown in FIG. **6**G.

Evaluating the expression A*x+B*y+C at the two points V**3** and V**4** results in a positive value for point V**3** as indicated by the “(+)” symbol shown adjacent to point V**3** and in a negative value for point V**4** as indicated by the “(−)” symbol shown adjacent to point V**4**. Since the points have different algebraic signs for the expression A*x+B*y+C, the pixel **505** in question is illuminated for the straight line segment **205** shown in FIG. **6**H.

Evaluating the expression A*x+B*y+C at the two points V**3** and V**4** results in a negative value for each point as indicated by the “(−)” symbol shown adjacent to the points. Since both points have the same algebraic sign for the expression A*x+B*y+C, the pixel **505** in question is preferably not illuminated for the straight line segment **205** shown in FIG. **6**I.

In any of the above cases, if the evaluation of the expression A*x+B*y+C results in opposite algebraic signs whether in an evaluation for the pair of points V**1** and V**2** or the pair of points V**3** and V**4**, the pixel **505** in question is illuminated regardless of the results of the evaluation of the other pair of points. Thus, if one pair of points is evaluated and found to have differing algebraic signs, it is not necessary to evaluate the two remaining points.

If any two of the points V**1**,V**2**,V**3**,V**4** are found to have different algebraic points, the pixel **505** in question is illuminated. Computation of algebraic signs for successive points does not need to continued after one differing sign is found. The situation of FIG. 6J corresponds to the straight line segment **205** crossing any part of the area of the pixel **505** enclosed by the dotted lines connecting points V**1**,V**2**,V**3**,V**4**.

FIG. 7 is an illustrative flow chart of a method for selecting pixels **505** to activate in rendering a straight line segment **205** as described in various representative embodiments consistent with the teachings of the invention.

In block **705**, a control variable is set equal to a preselected value, which could be for example the number “0”. Block **705** then transfers control to block **710**.

In block **710**, the pixel **505** is marked as other than selected. Block **710**, then transfers control to block **715**.

In block **715**, when the pixel **505** is marked as other than selected, block **710** transfers control to block **720**. Otherwise, block **715** terminates the process.

In block **720**, the expression A*x+B*y+C is computed for one of the pixel grid mid-points V**1**,V**2**,V**3**,V**4**. Block **720**, then transfers control to block **725**.

In block **725**, when the control variable is equal to the preselected value, block **725** transfers control to block **730**. Otherwise, block **725** transfers control to block **740**.

In block **730**, the algebraic sign of the result of the computation of the expression A*x+B*y+C obtained in block **720** is stored. Block **730** then transfers control to block **735**.

In block **735**, the value of the control variable is changed from its preselected value to some other value, which could be for example the number “1”. Block **735** then transfers control to block **750**.

In block **740**, when the algebraic sign of the result of the computation of the expression A*x+B*y+C obtained in block **720** differs from that stored in block **730**, block **740** transfers control to block **745**. Otherwise, block **740** transfers control to block **750**.

In block **745**, the pixel **505** is marked as selected. Block **745** then transfers control to block **750**.

In block **750**, when there are remaining pixel grid points V**1**,V**2**,V**3**,V**4** for which in block **720** the expression A*x+B*y+C have not been computed, block **750** transfers control to block **715**. Otherwise, block **750** terminates the process.

A third objective is to identify which screen regions **125** will be activated in displaying the straight line segment **205** on the screen **110** of the monitor **105** for cases in which the line has a width. Some pixels may be illuminated within adjoining screen regions **125** due to the width of the line. However, only those screen regions **125** through which the straight line segment **205** including the width of the line passes will need to be activated. All others can be ignored in the display of that straight line segment **205**. It should be noted that while the following discussion is in terms of straight line segments, the techniques disclosed are also applicable to points that are displayed with a width. Further, all references to width refer to dimensions in the minor axis direction.

FIG. 8 is a drawing of yet another screen space **115** of the computer graphics display system **100** as described in various representative embodiments consistent with the teachings of the invention. The straight line segment **205** of FIG. 8 has first and second end points P**1**,P**2** and a width which is indicated by upper and lower line boundaries **811**,**812**.

In FIG. 8, the bounding box **210** is defined similar to that defined with respect to FIG. **2**. The straight line segment **205** is conceptually defined on the screen space **115** by the first and second end points P**1**,P**2** wherein the bounding box has first and second corners **215**,**220**. The first corner **215** of the bounding box **210** is defined by the coordinates (min(X1,X2), min(Y1,Y2)) and (max(X1,X2), max(Y1,Y2)), where min(a,b) returns the minimum of the two values a and b, and max(a,b) returns the maximum of the two values a and b. The bounding box **210** is aligned with a major and a minor axis **821**,**822** wherein the major axis **821** is identified as parallel to the longer of two adjacent sides of the bounding box **210** and the minor axis **822** is identified as parallel to the other side of the bounding box **210**. The rectangular grid is located on the boundaries of the screen regions **125**. The extent of this grid should be large enough to include the bounding box **210**.

Note that in the example of FIG. 8, first end point P**1** and first corner **215** are coincident, and second end point P**2** and second corner **220** are coincident. However, had the slope of the straight line segment **205** been negative instead of positive as in FIG. 8, the first corner **215** would have still been at the lower left hand corner of the bounding box **210**, and the second corner **220** would have still been at the upper right hand corner of the bounding box **210** while the first and second end points P**1**,P**2** would have been located respectively at the upper left hand corner and lower right hand corners of the bounding box **210**.

Due to the width of the straight line segment **205** in FIG. 8, the bounding box **210** just obtained above will not include the screen region **125** in region column C**1** and region row R**5**, the screen region **125** in region column C**2** and region row R**5**, the screen region **125** in region column C**3** and region row R**2**, nor the screen region **125** in region column C**4** and region row R**2**. Thus, if some adjustment is not made, those screen regions **125** will not be activated and the line **205** will not be displayed appropriately.

FIG. 9 is a drawing of adjacent screen regions **125** in the screen space **115** of the computer graphics display system **100** as described in various representative embodiments consistent with the teachings of the invention. This figure is a magnified view of a portion of FIG. 8 comprising the screen regions **125** located at region row/column R**2**,C**3**; region row/column R**2**,C**4**; region row/column R**3**,C**3**; and region row/column R**3**,C**4**. A line-width **931** of the straight line segment **205** is shown in FIG. 9, as well as a one-half-line width **932**. Line-upper and line-lower boundaries **811**,**812** are shown around the centerline **950** of straight line segment **205**. As can be seen from FIG. 9, the width of straight line segment **205** extends the straight line segment **205** into screen regions **125** located at region row/column R**2**,C**3** and region row/column R**2**,C**4**.

FIG. 10 is another drawing of adjacent screen regions **125** in the screen space **115** of the computer graphics display system **100** as described in various representative embodiments consistent with the teachings of the invention. FIG. 10 shows the same area of the screen space **115** as found in FIG. 9 which once again is a magnified view of a portion of FIG. 8 comprising the screen regions **125** located at region row/column R**2**,C**3**; region row/column R**2**,C**4**; region row/column R**3**,C**3**; and region row/column R**3**,C**4**. In FIG. 10, the rectangular grid **130** around pixels **505** is moved downward along the minor axis **822** by an amount equal to that of one-half-line-width **932** as shown by dotted lines indicated as horizontal grid lines **132**.

The expression A*x+B*y+C is then computed for region row/column R**2**,C**4** at each of the shifted rectangular grid corners SG**1**, SG**2**, SG**3**, and SG**4** one at a time for the new rectangular grid **130** location to determine the algebraic sign of the expression. Should the sign of one of the results of this computation differ from one of those previously computed, the computation is terminated and the screen region **125** is marked as activated in creating the straight line segment **205**. Should all four corners have the same algebraic signs, unless otherwise activated the screen region **125** will preferably not be active in displaying the straight line segment **205**. For the example of FIG. 10, the expression A*x+B*y+C has negative algebraic signs at shifted rectangular grid corners SG**2** and SG**4**, whereas it has positive algebraic signs at shifted rectangular grid corders SG**1** and SG**3**. Thus, the screen region **125** at region row/column R**2**,C**4** is activated in rendering the straight line segment **205**.

Repeating the computation of the expression A*x+B*y+C for region row/column R**2**,C**3** at each of the shifted rectangular grid corners SG**1**, SG**3**, SG**5**, and SG**6** one at a time for the new rectangular grid **130** location to determine the algebraic sign of the expression. Should the sign of one of the results of this computation differ from one of those previously computed, the computation is terminated and the screen region **125** is marked as activated in creating the straight line segment **205**. Should all four corners have the same algebraic signs, unless otherwise activated the screen region **125** will preferably not be active in displaying the straight line segment **205**. For the example of FIG. 10, the expression A*x+B*y+C has positive algebraic signs at shifted rectangular grid corners SG**1**, SG**2**, SG**3**, and SG**4**. Thus, the screen region **125** at region row/column R**2**,C**3** is not activated in rendering the straight line segment **205**. Note that since the expression A*x+B*y+C has previously been computed for SG**1** and SG**2** it does not have to be repeated if the system keeps track of such prior computations.

The above procedure is preferably further repeated as above except that the rectangular grid **130** around screen regions **125** is moved upward along the minor axis **822** by an amount equal to that of one-half-line-width **932** instead of downward as in FIG. **10**. Computations for both upward and down shifts in the rectangular grid **130** around screen regions **125** is repeated for the remaining screen regions **125**.

FIG. 11 is an illustrative flow chart of a method for selecting auxiliary screen regions **125** to activate in rendering the straight line segment **205** having widths greater than one pixel as described in various representative embodiments consistent with the teachings of the invention.

In block **1105**, the screen regions **125** are overlaid by the rectangular grid **130**. Block **1105** then transfers control to block **1110**.

In block **1110**, the rectangular grid **130** is shifted by an amount equal to one-half line width **932** of the straight line segment **205** parallel to the minor axis **822**. In a representative embodiment, the method steps of FIG. 11 are performed with a downward shift in the rectangular gird **130** followed by a repeat of the method steps of FIG. 11 with an upward shift in the rectangular grid **130**. Block **1110**, then transfers control to block **1115**.

In block **1115**, when the screen region **125** is marked other than selected block **1115** transfers control to block **1120**. Otherwise block **1115** terminates the process.

In block **1120**, the expression A*x+B*y=C is computed for one of the shifted grid corners SG**1** . . . SG**4** associated with the screen region **125**. Block **1120**, then transfers control to block **1125**.

In block **1125**, when the algebraic sign of the result of the computation of the expression A*x+B*y+C obtained in block **1120** is the same as that computed for other shifted grid corners SG**1** . . . SG**4**, block **1125** transfers control to block **1135**. Otherwise, block **1125** transfers control to block **1130**.

In block **1130**, the screen region **125** is marked as selected. Block **1130** then terminates the process.

In block **1135**, when there are remaining corners of the overlapping screen region **125** for which in block **1120** the expression A*x+B*y+C have not been computed, block **1135** transfers control to block **1120**. Otherwise, block **1135** terminates the process.

FIG. 12 is an illustrative flow chart of another method for selecting auxiliary screen regions **125** to activate in rendering the straight line segment **205** having widths greater than one pixel as described in various representative embodiments consistent with the teachings of the invention.

In block **1203**, the screen regions **125** are overlaid by the rectangular grid **130**. Block **1203** then transfers control to block **1205**.

In block **1205**, when the screen region **125** is marked other than selected block **1205** transfers control to block **1207**. Otherwise block **1205** terminates the process.

In block **1207**, a control variable is set equal to a preselected value, which could be for example the number “0”. Block **1207** then transfers control to block **1210**.

In block **1210**, the rectangular grid **130** is shifted by an amount equal to one-half line width **932** of the straight line segment **205** parallel to the minor axis **822**. In a representative embodiment, the method steps of FIG. 12 are performed with a downward shift in the rectangular gird **130** followed by a repeat of the method steps of FIG. 12 with an upward shift in the rectangular grid **130**. Block **1210**, then transfers control to block **1215**.

In block **1215**, when the screen region **125** is marked as other than selected, block **1210** transfers control to block **1220**. Otherwise, block **1215** terminates the process.

In block **1220**, the expression A*x+B*y=C is computed for one of the shifted grid corners SG**1** . . . SG**4** associated with the screen region **125**. Block **1220**, then transfers control to block **1225**.

In block **1225**, when the control variable is equal to the preselected value, block **1225** transfers control to block **1230**. Otherwise, block **1225** transfers control to block **1240**.

In block **1230**, the algebraic sign of the result of the computation of the expression A*x+B*y+C obtained in block **1220** is stored. Block **1230** then transfers control to block **1235**.

In block **1235**, the value of the control variable is changed from its preselected value to something else, which could be for example the number “1”. Block **1235** then transfers control to block **1250**.

In block **1240**, when the algebraic sign of the result of the computation of the expression A*x+B*y+C obtained in block **1220** differs from that stored in block **1230**, block **1240** transfers control to block **1245**. Otherwise, block **1240** transfers control to block **1250**.

In block **1245**, the screen region **125** is marked as selected. Block **1245** then transfers control to block **1250**.

In block **1250**, when there are remaining corners of the overlapping screen region **125** for which in block **1220** the expression A*x+B*y+C have not been computed, block **1250** transfers control to block **1215**. Otherwise, block **1250** terminates the process.

It should be noted that a given rasterizer **120** may be responsible for more than one screen region **125** and may be either statically or dynamically assigned. A single rasterizer **120** may, in fact, be responsible for the full screen space **115**. Advantages in performance may, however, be obtained for systems utilizing multiple rasterizers **120** and associated parallel processing.

As is the case, in many computer graphics products, the components necessary to display the items discussed herein may be implemented as a combination of hardware and software components. Moreover, the functionality require for using the invention may be embodied in computer-readable media (such as 3.5 inch diskettes, CD ROMs, hard drives, etc.) to be used in programming an information-processing apparatus (e.g., a personal computer comprising the elements shown in FIG. 1 to perform in accordance with the invention.

The display screen **110** may be monochrome or color, and a pointing device (not shown) such as pen, mouse, track point or a touch screen that is suitable for cursor manipulation may be used.

The computer **100** can be capable of running any commercially available operating system such as DOS, Windows 3.1, Windows CD, Windows 95/98/2000, UNIX, or other suitable operating system. The methods disclosed can be advantageously implemented in electronic circuitry wherein parallel processing can be efficiently utilized. However, they can also be implemented as an application program for the computer system **100**. Such an application program can be written using a variety of programming languages including Visual Basic, C/C++, assembler or any other commercially-available programming tools.

Novel techniques are disclosed herein for a computer graphics display system (1) for selecting regions of a screen to activate in rendering a straight line segment, (2) for selecting pixels to activate in rendering the straight line segment, and (3) for selecting pixels to activate in rendering the auxiliary area of the straight line segment required in cases wherein the straight line segment has a width. In a region-base rasterizer, it is important to quickly identify the regions that must be further processed in the rendering of straight lines so as not to waste hardware or software resources and to allow potential parallelisms to occur. By selecting regions to activate or consider, techniques disclosed herein limit the area of the screen that must be considered in drawing the straight line segment thereby providing for more computationally-efficient techniques.

In representative embodiments, the screen regions to be activated in displaying the straight line segment on the screen of the monitor are identified. Only those screen regions through which the straight line segment passes will need to be activated. All other screen regions can be ignored in the display of that straight line segment. The general equation of a straight line is A*x+B*y+C=0, which for the example of the straight line segment results in A=(Y2−Y1), B=(X1−X2), and C=−(A*X1+B*Y1) where A, B, and C are constants and the straight line segment passes through points {X1,Y1} and {X2,Y2}. If the algebraic sign of the expression A*x+B*y+C when evaluated at one of the screen region corners differs from any of the other corners of the screen region, that screen region is marked to activate.

In another representative embodiment, the pixels are identified which will be illuminated in each of the activated screen regions in displaying the straight line segment on the screen of the monitor. Only those pixels through which the straight line segment passes may need to be illuminated. All others can be ignored in the display of that straight line segment. If the algebraic sign of the expression A*x+B*y+C when evaluated at one of the pixel corners differs from any of the other corners of the screen region, that pixel is marked to illuminate.

In still another representative embodiment, the screen regions are identified that will be activated in displaying the straight line segment on the screen of the monitor for cases in which the line has a width. Some pixels may be illuminated within adjoining screen regions due to the width of the line. However, only those screen regions through which the straight line segment including the width of the line passes will need to be activated. All others can be ignored in the display of that straight line segment. The screen regions are overlaid by a rectangular grid which is then shifted in a preselected direction along one of the axes. After which, if the algebraic sign of the expression A*x+B*y+C when evaluated at one of the shifted rectangular grid corners differs from any of the other corners of the shifted rectangular grid, the corresponding screen region is marked to activate. The screen regions are then shifted in the opposite direction along the previously selected axis and the above process repeated.

Primary advantages of the embodiments as described herein over prior solutions are the abilities to (1) remove screen regions from consideration in rendering straight line segments on the monitors of computer graphics systems, (2) remove pixels in such screen regions from consideration in rendering straight line segments on the monitors of computer graphics systems, and (3) identify auxiliary screen regions that need to be considered for activation in the rendering of straight line segments, wherein the straight line segment has a width. Such techniques conserve system resources in graphics systems which is a great advantage as these systems are computationally intensive.

Patent Citations

Cited Patent | Filing date | Publication date | Applicant | Title |
---|---|---|---|---|

US5028848 * | Jun 27, 1988 | Jul 2, 1991 | Hewlett-Packard Company | Tile vector to raster conversion method |

US5499326 | Aug 1, 1995 | Mar 12, 1996 | International Business Machines Corporation | System and method for rapidly determining relative rectangle position |

US5815162 * | Apr 19, 1996 | Sep 29, 1998 | Silicon Graphics, Inc. | System and method of drawing anti-aliased lines using a modified bresenham line-drawing algorithm |

US6437780 * | Mar 17, 1999 | Aug 20, 2002 | Nvidia Us Investment Company | Method for determining tiles in a computer display that are covered by a graphics primitive |

US6654017 * | Oct 3, 2000 | Nov 25, 2003 | Sun Microsystems, Inc. | Smoothing of line segments on a computer display |

Non-Patent Citations

Reference | ||
---|---|---|

1 | Foley et al., "Computer Graphics: Principles and Practice-Second Edition in C", Reading, Massachusetts: Addison-Wesley Publishing Company (1996), pp. 71-79. | |

2 | Foley et al., "Computer Graphics: Principles and Practice—Second Edition in C", Reading, Massachusetts: Addison-Wesley Publishing Company (1996), pp. 71-79. | |

3 | Segal et al., "The OpenGL Graphics System: A Specification (Version 1.3)", Aug. 14, 2001, pp. 58-78. |

Referenced by

Citing Patent | Filing date | Publication date | Applicant | Title |
---|---|---|---|---|

US8793478 | May 14, 2008 | Jul 29, 2014 | Dell Products, Lp | Grid computing resources and a method of use thereof |

US20070225952 * | Apr 19, 2005 | Sep 27, 2007 | David Arneau | Method for Managing Graphics Lines |

US20090287916 * | May 14, 2008 | Nov 19, 2009 | Dell Products, Lp | Grid computing resources and a method of use thereof |

Classifications

U.S. Classification | 345/443, 345/611, 345/441, 345/614, 345/467 |

International Classification | G06T11/20 |

Cooperative Classification | G06T11/203 |

European Classification | G06T11/20L |

Legal Events

Date | Code | Event | Description |
---|---|---|---|

Mar 13, 2002 | AS | Assignment | Owner name: HEWLETT-PACKARD COMPANY, COLORADO Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:THRASHER, THOMAS L.;REEL/FRAME:012736/0244 Effective date: 20011106 |

Sep 30, 2003 | AS | Assignment | Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY L.P., TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD COMPANY;REEL/FRAME:014061/0492 Effective date: 20030926 Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY L.P., TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD COMPANY;REEL/FRAME:014061/0492C Effective date: 20030926 Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY L.P.,TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD COMPANY;REEL/FRAME:014061/0492 Effective date: 20030926 |

Mar 14, 2008 | FPAY | Fee payment | Year of fee payment: 4 |

Mar 24, 2008 | REMI | Maintenance fee reminder mailed | |

Sep 23, 2011 | FPAY | Fee payment | Year of fee payment: 8 |

Apr 22, 2016 | REMI | Maintenance fee reminder mailed | |

Sep 14, 2016 | LAPS | Lapse for failure to pay maintenance fees | |

Nov 1, 2016 | FP | Expired due to failure to pay maintenance fee | Effective date: 20160914 |

Rotate