Senior Fitness - Exercise and Nutrition for Aging Men and Women
FREE Article Feed for your website.
Home Ownership Magazine
Party Planning Information
Article Marketing Resources
Bio-Medical Research Article Database
Informative Articles on Life, Love and Happiness
Tutorials on Business to Writing
Famous Quotes from Famous People
Song Lyric Information
New US Patent Information
Comprehensive List of Content by Category
Online Auctions and Shopping Related Articles
Article Search
Most Recent Articles
 

Identify The Right Blogging Platform
Category:
Marketing  

Good Grief What Good is it
Category:
Home And Family  

How To Get Help With Medical Malpractice
Category:
Self Help  

Keep It Simple Stupid The Beauty of a Clean Cut Website
Category:
Computers  

Getting Keyword rich Content for Your Website
Category:
Computers  

What Is A Means Test Under Chapter 7 Bankruptcy
Category:
Home And Family  

PAS is what it takes to be successful in a home business when ma...
Category:
Business  

America Is it in Bible prophecies and what can the USA expect at...
Category:
Home And Family  

Financial Incentives for Your Business to Use Solar Power
Category:
Business  

Golf Clubs
Category:
Sports  

The Truth About Pants And Women
Category:
Fashion  

How To Sky Rocket Your Profits By 267 With One Simple Sentence
Category:
Marketing  

Electrolysis Hair Removal For The Brave
Category:
Health / Fitness  

1st Birthday Invitation
Category:
Entertainment / Television  

Why multilayer golf balls spin less off the tee and more around ...
Category:
Sports  

Leading Online Personal Trainer Reveals The Hidden Secrets to Sa...
Category:
Health / Fitness  

Personal loans UK customizing your future
Category:
Finance / Investment  

Acne Treatment The Natural Way
Category:
Health / Fitness  

Best Bass Fishing In Mexico
Category:
Sports  

Poker Mistakes and how to fix them
Category:
Sports  

Top 4 Ways In Which You Can Earn Major Income For Your Home Base...
Category:
Marketing  

A Look at Outdoor Ceiling Fans
Category:
Home And Family  

Stop Wasting Thousands of Dollars on Leads
Category:
Marketing  

Top 10 Most Surprising Diet Busters
Category:
Sports  

Why Become Lead Generation Expert
Category:
Marketing  

The Facts of Goal Setting
Category:
Business  

How Debt Consolidation Can Save Your Finances
Category:
Finance / Investment  

Adsense Pros and Cons
Category:
Marketing  

Modern Kayak Types
Category:
Sports  

Two Common Flooring Decorating Traps Almost All Customers Fall I...
Category:
Home And Family  

Fast Tracking to Mortgage Free
Category:
Finance / Investment  

Super Fast Fat Burning Workouts for Outdoors
Category:
Health / Fitness  

RFID buzz creates market for more secure services
Category:
Computers  

Personal Bankruptcy and Home Buying
Category:
Business  

Skin Care Tips
Category:
Health / Fitness  

How a Rocket Works
Category:
Home And Family  

You Have the Keywords You Have the Website but Do You Have the S...
Category:
Marketing  

Search Engine Optimization another perspective
Category:
Marketing  

The Viral Affect of Article Marketing
Category:
Marketing  

Good News There Are Legitimate Home based Business Opportunities...
Category:
Business  

Exotic Destinations
Category:
Travel  

Get In Shape For Golf
Category:
Sports  

King Quotes Garner Inspiration
Category:
Education  

How to Choose a Reputable Search Engine Optimization Content Wri...
Category:
Marketing  

The Heaven And the Earth
Category:
Writing  

Panic Disorder
Category:
Health / Fitness  

The North Cyprus Palace at Vouni
Category:
Travel  

An Anti Aging Skin Cream What To Look For
Category:
Health / Fitness  

Black jack basics
Category:
Hobbies / Pastimes  

Digital Music Recounts Music Therapy
Category:
Entertainment / Television  

Microsoft Dynamics AX GP NAV CRM trends international recommenda...
Category:
Computers  

No credit check personal loans when the best loan can t offset b...
Category:
Finance / Investment  

Internet marketing Make your presence felt online
Category:
Marketing  

How To Trade Stock Timing Is Everything
Category:
Finance / Investment  

Light Weight Camping Adventure Food
Category:
Hobbies / Pastimes  

Confused About Finding The Vacuum Steam Cleaner Reviews To Locat...
Category:
Home And Family  

Fundraising Ideas For Your Next Fundraiser
Category:
Finance / Investment  

Business Phones Keep Up With Changes In Technology
Category:
Business  

Snakes They re not as slithery as some people I know
Category:
Home And Family  

Selecting Furniture for a Play Room
Category:
Home And Family  

Values in The Family Before Civilization Begins
Category:
Pets  

Wedding Rice The Dark Side
Category:
Self Help  

Credit Card Insurance What Do They All Do
Category:
Business  

How Acid Reflux Can Worsen Your Asthma
Category:
Health / Fitness  

Homemade Bodybuilding Shakes How to Use Protein Powders Creative...
Category:
Sports  

Correctly Interpreting Your Website Traffic Statistics
Category:
Webmaster  

Cheque Book Loans provides access to instant cash
Category:
Finance / Investment  

Baby monitors How to Choose the Ideal Monitor for Your Baby
Category:
Home And Family  

Autism Disease disorder handicap or disability
Category:
Education  

Business Health Wealth and Workers
Category:
Business  

Article Plagiarism the Next Internet Ripoff
Category:
Marketing  

How To Compare Credit Card Offers
Category:
Business  

Understanding insurance policies
Category:
Finance / Investment  

XENICAL A POPULAR WEIGHT SUPPRESSANT PILL
Category:
Health / Fitness  

17 Important Things To Remember As You Prepare For An Interview
Category:
Home And Family

Active region determination for line generation in regionalized rasterizer displays Number:6,992,670 from the United States Patent and Trademark Office (PTO) owispatent

Home    Author Login    Submit Article    Article Search    Add Your Link    Edit Your Link    Contact Us    Advertising    Disclaimer

   

 
Web LinkGrinder.com

Top Breaking News
     Greek, Cypriot Leaders Resume Unification Talks in Nicosia by Nathan Morley
     Indonesia Tobacco Sales Grow, Raising Health Fears
     South Korea Allows Top Defector to Travel Overseas by VOA News

Title: Active region determination for line generation in regionalized rasterizer displays

Abstract: In one embodiment, selecting a screen region on a screen of a monitor of a computer graphics display system to activate in rendering a straight line segment. Steps of aligning a rectangular grid to screen region boundaries, wherein the screen includes a screen space divided into at least one screen region, locating a first and second endpoints of the straight line segment on the screen space, defining a rectangular bounding box in the screen space having vertices at the first and second endpoints, identifying each screen region that at least partially overlaps the bounding box, and selecting each identified screen region through which the straight line segment passes to activate for rendering the straight line segment on the screen are disclosed.

Patent Number: 6,992,670 Issued on 01/31/2006 to Thrasher,   et al.


Inventors: Thrasher; Thomas L. (Ft. Collins, CO); Larson; Ronald D. (Fort Collins, CO)
Assignee: Hewlett-Packard Development Company, L.P. (Houston, TX)
Appl. No.: 746787
Filed: December 23, 2003

Current U.S. Class: 345/443; 345/419; 703/1
Current Intern'l Class: G06T 11/20    (20060101); G06T 15/00    (20060101); G06F 17/50    (20060101)
Field of Search: 345/441- 43,619,582,419,443 703/1


References Cited [Referenced By]

U.S. Patent Documents
6437780Aug., 2002Baltaretu et al.


Other References

Foley et al., "Computer Graphics: Principles and Practice— Second Edition in C", Reading, Massachusetts: Addison-Wesley Publishing Company (1996), pp. 71-79.
Segal et al., "The OpenGL Graphics System: A Specification (Version 1.3)", Aug. 14, 2001, pp. 58-78.

Primary Examiner: Bella; Matthew C.
Assistant Examiner: Blackman; Anthony J.

Parent Case Text



This is a Continuation of copending application Ser. No. 09/982,352, filed on 18 Oct. 2001, now U.S. Pat. No. 6,753,861 the entire disclosure of which is incorporated herein by reference.
Claims



What is claimed is:

1. A method for selecting screen regions to activate in rendering a straight line segment on a monitor screen of a computer graphics display system, comprising:

conceptually dividing a screen space on the screen into multiple, non-overlapping, screen regions, wherein the multiple screen regions fill the screen space;

locating first and second endpoints of the straight line segment on the screen space;

defining a rectangular bounding box in the screen space having vertices at the first and second endpoints, wherein the bounding box is overlapped by at least part of at least two of the screen regions;

identifying each screen region that at least partially overlaps the bounding box; and

from the screen regions so identified, selecting those screen regions through which the straight line segment passes as those screen regions to activate in rendering the straight line segment on the screen.

2. The method as recited in claim 1, 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, wherein x and y are respectively Cartesian coordinate system x-axis and y-axis values, and wherein the method step of selecting each identified screen region through which the straight line segment passes further comprises:

marking the overlapping screen region as not selected;

setting a control variable equal to a preselected value;

for each corner of the overlapping screen region,

while the overlapping screen region is marked as not selected,

multiplying the first constant by the x-axis coordinate of the corner;

multiplying the second constant by the y-axis coordinate of the corner;

adding the third constant, the result of the method step of multiplying the first constant by the x-axis coordinate of the corner, and the result of the method step of multiplying the second constant by the y-axis coordinate of the corner; and

when the control variable is equal to the preselected value,

storing in a memory the algebraic sign of the result of the method step adding the third constant; and

setting the control variable to a value other than the preselected value;

otherwise, when the algebraic sign of the result of the method step adding the third constant differs from the stored algebraic sign,

marking the screen region as selected.

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

activating the screen regions selected in the selecting method step.

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

rendering the straight line segment in the screen regions activated in the activating method step, wherein rendering of the straight line segment in each activated screen region is effected by the rasterizer controlling that screen region.

5. A computer-readable medium having computer-executable instructions for performing a method for selecting screen regions to activate in rendering a straight line segment on a monitor screen of a computer graphics display system, comprising:

conceptually dividing a screen space on the screen into multiple, non-overlapping, screen regions, wherein the multiple screen regions fill the screen space;

locating first and second endpoints of the straight line segment on the screen space;

defining a rectangular bounding box in the screen space having vertices at the first and second endpoints, wherein the bounding box is overlapped by at least part of at least two of the screen regions;

identifying each screen region that at least partially overlaps the bounding box; and

from the screen regions so identified, selecting those screen regions through which the straight line segment passes as those screen regions to activate in rendering the straight line segment on the screen.

6. The program storage medium as recited in claim 5, providing 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, wherein x and y are respectively Cartesian coordinate system x-axis and y-axis values, and wherein the method step for selecting each identified screen region through which the straight line segment passes further comprises:

marking the overlapping screen region as not selected;

setting a control variable equal to a preselected value;

for each corner of the overlapping screen region,

while the overlapping screen region is marked as not selected,

multiplying the first constant by the x-axis coordinate of the corner;

multiplying the second constant by the y-axis coordinate of the corner;

adding the third constant, the result of the method step multiplying the first constant by the x-axis coordinate of the corner, and the result of the method step multiplying the second constant by the y-axis coordinate of the corner; and

when the control variable is equal to the preselected value,

storing in a memory the algebraic sign of the result of the method step adding the third constant; and

setting the control variable to a value other than the preselected value;

otherwise, when the algebraic sign of the result of the method step adding the third constant differs from the stored algebraic sign,

marking the screen region as selected.

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

activating the screen regions selected by the selecting method step.

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

rendering the straight line segment in the screen regions activated in the activating method step, wherein rendering of the straight line segment in each activated screen region is effected by the rasterizer controlling that screen region.

9. A method for selecting screen regions to activate in rendering a straight line segment on a monitor screen of a computer graphics display system, comprising:

conceptually dividing a screen space on the screen into multiple, non-overlapping, screen regions, wherein each screen region is controlled by one of at least two rasterizers wherein each rasterizer controls at least one screen region, and wherein the multiple screen regions fill the screen space;

locating first and second endpoints of the straight line segment on the screen space;

defining a rectangular bounding box in the screen space having vertices at the first and second endpoints, wherein the bounding box is overlapped by at least part of at least two of the screen regions;

identifying each screen region that at least partially overlaps the bounding box; and

from the screen regions identified in the identifying method step, selecting those screen regions through which the straight line segment passes as those screen regions to activate in rendering the straight line segment on the screen.

10. The method as recited in claim 9, 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, wherein x and y are respectively Cartesian coordinate system x-axis and y-axis values, and wherein the method step of selecting each identified screen region through which the straight line segment passes further comprises:

marking the overlapping screen region as not selected;

setting a control variable equal to a preselected value;

for each corner of the overlapping screen region,

while the overlapping screen region is marked as not selected,

multiplying the first constant by the x-axis coordinate of the corner;

multiplying the second constant by the y-axis coordinate of the corner;

adding the third constant, the result of the method step of multiplying the first constant by the x-axis coordinate of the corner, and the result of the method step of multiplying the second constant by the y-axis coordinate of the corner; and

when the control variable is equal to the preselected value,

storing in a memory the algebraic sign of the result of the method step adding the third constant; and

setting the control variable to a value other than the preselected value;

otherwise, when the algebraic sign of the result of the method step adding the third constant differs from the stored algebraic sign,

marking the screen region as selected.

11. The method as recited in claim 9, further comprising:

activating the screen regions selected in the selecting method step.

12. The method as recited in claim 11, further comprising:

rendering the straight line segment in the screen regions activated in the activating method step, wherein rendering of the straight line segment in each activated screen region is effected by the rasterizer controlling that screen region.

13. A computer-readable medium having computer-executable instructions for performing a method for selecting screen regions to activate in rendering a straight line segment on a monitor screen of a computer graphics display system, comprising:

conceptually dividing a screen space on the screen into multiple, non-overlapping, screen regions, wherein each screen region is controlled by one of at least two rasterizers, wherein each rasterizer controls at least one screen region, and wherein the multiple screen regions fill the screen space;

locating first and second endpoints of the straight line segment on the screen space;

defining a rectangular bounding box in the screen space having vertices at the first and second endpoints, wherein the bounding box is overlapped by at least part of at least two of the screen regions;

identifying each screen region that at least partially overlaps the bounding box; and

from the screen regions so identified, selecting those screen regions through which the straight line segment passes as those screen regions to activate in rendering the straight line segment on the screen.

14. The program storage medium as recited in claim 13, providing 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, wherein x and y are respectively Cartesian coordinate system x-axis and y-axis values, and wherein the method step for selecting each identified screen region through which the straight line segment passes further comprises:

marking the overlapping screen region as not selected;

setting a control variable equal to a preselected value;

for each corner of the overlapping screen region,

while the overlapping screen region is marked as not selected,

multiplying the first constant by the x-axis coordinate of the corner;

multiplying the second constant by the y-axis coordinate of the corner;

adding the third constant, the result of the method step multiplying the first constant by the x-axis coordinate of the corner, and the result of the method step multiplying the second constant by the y-axis coordinate of the corner; and

when the control variable is equal to the preselected value,

storing in a memory the algebraic sign of the result of the method step adding the third constant; and

setting the control variable to a value other than the preselected value;

otherwise, when the algebraic sign of the result of the method step adding the third constant differs from the stored algebraic sign,

marking the screen region as selected.

15. The program storage medium as recited in claim 13, further comprising:

activating the screen regions selected by the selecting method step.

16. The program storage medium as recited in claim 15, further comprising:

rendering the straight line segment in the screen regions activated in the activating method step, wherein rendering of the straight line segment in each activated screen region is effected by the rasterizer controlling that screen region.

17. A computer graphics display system for rendering a straight line segment, comprising:

a central processing unit;

at least two rasterizers;

a monitor, wherein a screen space of the monitor is conceptually divided into multiple, non-overlapping, screen regions, wherein each screen region is controlled by one of the at least two rasterizers, wherein each rasterizer controls at least one screen region, and wherein the multiple screen regions fill the screen space; and

a computer program, wherein the central processing unit is capable of running the computer program and wherein the computer program has instructions for performing method steps for locating first and second endpoints of the straight line segment on the screen space, defining a rectangular bounding box in the screen space having vertices at the first and second endpoints, wherein the bounding box is overlapped by at least part of at least two of the screen regions, identifying each screen region that at least partially overlaps the bounding box, and from the screen regions so identified, selecting those screen regions through which the straight line segment passes as those screen regions to activate in rendering the straight line segment on the screen.

18. The computer graphics display system as recited in claim 17, 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, wherein x and y are respectively Cartesian coordinate system x-axis and y-axis values, and wherein the method step of selecting each identified screen region through which the straight line segment passes further comprises:

marking the overlapping screen region as not selected;

setting a control variable equal to a preselected value;

for each corner of the overlapping screen region,

while the overlapping screen region is marked as not selected,

multiplying the first constant by the x-axis coordinate of the corner;

multiplying the second constant by the y-axis coordinate of the corner;

adding the third constant, the result of the method step of multiplying the first constant by the x-axis coordinate of the corner, and the result of the method step of multiplying the second constant by the y-axis coordinate of the corner; and

when the control variable is equal to the preselected value,

storing in a memory the algebraic sign of the result of the method step adding the third constant; and

setting the control variable to a value other than the preselected value;

otherwise, when the algebraic sign of the result of the method step adding the third constant differs from the stored algebraic sign,

marking the screen region as selected.

19. The computer graphics display system as recited in claim 17, wherein the method steps of the computer program instructions further comprise:

activating the screen regions selected in the selecting method step.

20. The computer graphics display system as recited in claim 19, wherein the method steps of the computer program instructions further comprise:

rendering the straight line segment in the screen regions activated in the activating method step, wherein rendering of the straight line segment in each activated screen region is effected by the rasterizer controlling that screen region.
Description



FIELD OF THE INVENTION

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

BACKGROUND OF THE INVENTION

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. Modern 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.

SUMMARY OF THE INVENTION

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 a screen region on a screen of a monitor of a computer graphics display system to activate in rendering a straight line segment is disclosed. The method includes the steps of aligning a rectangular grid to screen region boundaries, wherein the screen includes a screen space divided into at least one screen region, locating a first and second endpoints of the straight line segment on the screen space, defining a rectangular bounding box in the screen space having vertices at the first and second endpoints, identifying each screen region that at least partially overlaps the bounding box, and selecting each identified screen region through which the straight line segment passes to activate for rendering the straight line segment on the screen.

BRIEF DESCRIPTION OF THE DRAWINGS

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.

FIG. 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.

FIG. 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.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

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 C1 . . . C5 and vertically into first, second, third, fourth, fifth, and sixth region rows R1 . . . R6 with individual screen regions 125 of the first region row R1 being indicated as R1,C1 . . . R1,C5.

A straight line segment 205 is drawn in screen space 115 of FIG. 2. The straight line segment 205 has a first end point P1 having x and y coordinates (X1,Y1) of a Cartesian coordinate system and a second end point P2 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 P1,P2 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 P1 and first corner 215 are coincident, and second end point P2 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 P1,P2 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).

FIG. 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 R2 and region column C2. 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. 3A. 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 R4 and region column C3. 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. 3B. 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 R3 and region column C2. 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 c1 . . . c5 and vertically into first, second, third, fourth, and fifth pixel rows r1 . . . r5 with individual pixels 505 of the first pixel row r1 being indicated as r1,c1 . . . r1,c5.

FIG. 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 V1 and V2. 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 V1 and V2. 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 V1 and V2 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. 6C.

Evaluating the expression A*x+B*y+C at the two points V1 and V2 results in a positive value for point V1 as indicated by the "(+)" symbol shown adjacent to point V1 and in a negative value for point V2 as indicated by the "(-)" symbol shown adjacent to point V2. 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. 6D.

Evaluating the expression A*x+B*y+C at the two points V1 and V2 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. 6E.

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 V3 and V4. 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 V3 and V4 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 V3 and V4 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. 6G.

Evaluating the expression A*x+B*y+C at the two points V3 and V4 results in a positive value for point V3 as indicated by the "(+)" symbol shown adjacent to point V3 and in a negative value for point V4 as indicated by the "(-)" symbol shown adjacent to point V4. 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. 6H.

Evaluating the expression A*x+B*y+C at the two points V3 and V4 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. 6I.

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 V1 and V2 or the pair of points V3 and V4, 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 V1, V2, V3, V4 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 V1, V2, V3, V4.

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 V1, V2, V3, V4. 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 V1, V2, V3, V4 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 P1,P2 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 P1,P2 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 P1 and first corner 215 are coincident, and second end point P2 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 P1,P2 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 C1 and region row R5, the screen region 125 in region column C2 and region row R5, the screen region 125 in region column C3 and region row R2, nor the screen region 125 in region column C4 and region row R2. 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 R2,C3; region row/column R2,C4; region row/column R3,C3; and region row/column R3,C4. 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 R2,C3 and region row/column R2,C4.

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 R2,C3; region row/column R2,C4; region row/column R3,C3; and region row/column R3,C4. 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 R2,C4 at each of the shifted rectangular grid corners SG1, SG2, SG3, and SG4 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 SG2 and SG4, whereas it has positive algebraic signs at shifted rectangular grid corders SG1 and SG3. Thus, the screen region 125 at region row/column R2,C4 is activated in rendering the straight line segment 205.

Repeating the computation of the expression A*x+B*y+C for region row/column R2,C3 at each of the shifted rectangular grid corners SG1, SG3, SG5, and SG6 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 SG1, SG2, SG3, and SG4. Thus, the screen region 125

Free Web Sudoku Puzzles.
Solve with your browser.
      9 6        
5     2   4 6 9  
          7   4 1
9           3 2  
                 
  8 1           7
6 1   8          
  9 3 1   5     8
        4 6      
What is it?



Add Your Site · Terms Of Service · Privacy Policy


DISCLAIMER
Linkgrinder is a free service that searches the Internet and indexes all files found so that you may search quickly and easily for shared files. These files are created and made available individually by users whose identity we are not aware of and who we have no control over. In essence we function like a search engine tool; these files ARE NOT STORED OR SERVED BY OUR NETWORK. We are not responsible for any materials obtained by using our service. We do not monitor any of the contents of these files. These files may contain viruses, illegal materials, materials inappropriate for minors, offensive files and the like. BY USING OUR SERVICE, YOU ASSUME FULL RESPONSIBILITY FOR DOWNLOADING THESE MATERIALS AND WILL INDEMNIFY US FOR ANY DAMAGES THAT MAY BE INCURRED.

For More Specific Information VIEW OUR TERMS OF SERVICE.

Thank you and Enjoy!