Viewing and solid area scan conversion

41
VIEWING AND SOLID AREA SCAN CONVERSION UNIT IV

description

Viewing and solid area scan conversion. UNIT IV. Introduction. We have used variety of transformations like scaling, rotation and reflection that can be used to generate variety of different views of a single picture. - PowerPoint PPT Presentation

Transcript of Viewing and solid area scan conversion

Page 1: Viewing and solid area scan conversion

VIEWING AND SOLID AREA SCAN CONVERSION

UNIT IV

Page 2: Viewing and solid area scan conversion

INTRODUCTION We have used variety of transformations like

scaling, rotation and reflection that can be used to generate variety of different views of a single picture.

Most of the times, we might be interested in northern region or southern region only, in such a situation we need a method to display only those portions of the drawing which are of immediate interest.

Page 3: Viewing and solid area scan conversion

A world coordinate area selected for display is called as a window.

The process of selecting and viewing the picture is called windowing.

A view is what can be seen. Portion that are not of interest must not be visible.

The technique to do so is called clipping. A clipping refers to removing a part of scene

which are not of interest. Window defines what is to be viewed. clipping

means what to omit. View port defines where it is to be displayed.

Page 4: Viewing and solid area scan conversion

VIEWING TRANSFORMATION IN 2D

A picture is stored in the computer’s memory in the world coordinate system(WCS).

When the picture is displayed on the display device, it is measured in physical device coordinate system(PDCS) corresponding to the display device.

Therefore, displaying an image of a picture involves mapping the coordinates of the points and lines that forms the picture into the appropriate physical device coordinate where the image is to be displayed.

The viewing transformation maps picture coordinate in the WCS to display coordinates in physical device coordinate system.

Page 5: Viewing and solid area scan conversion

INTRODUCTION TO CLIPPING

Procedure that identifies the portion of the picture that are either inside or outside of a specified region of space is referred to as clipping.

The region against which an object is to be clipped is known as clip window.

A clipping refers to the removal part of a scene where the internal clipping removes parts of a picture outside a given viewing window, while external clipping removes part inside a viewing window.

Page 6: Viewing and solid area scan conversion

Clipping algorithm determines which points, lines lie within a clipping window.

These points, lines are retained for display. Primitive clipping procedure include point

clipping, line clipping and polygon clipping.

Page 7: Viewing and solid area scan conversion

POINT CLIPPING Point clipping algorithm finds the points that

are interior to a clipping window. Any points (X,Y) is said to be in the interior

of the clipping windows if it satisfies the following condition

X ≤ X ≥ Y ≥ Y <

Page 8: Viewing and solid area scan conversion

LINE CLIPPING A line clipping is the process of removing lines or

portion of lines outside of an area of interest. Lines which are external to the clipping window

are discarded. Lines which are inside the clipping window are

displayed. Find the intersection point if it intersects the

edges. For line clipping we make use of Cohen-

Sutherland Line Clipping Algorithm.

Page 9: Viewing and solid area scan conversion

Intersection of lines with the edges

For intersecting edges find out the intersecting points.

This will divide the line into different sections. Check each section of line against the clipping

window. Discard the section if it is outside the window.

Page 10: Viewing and solid area scan conversion

COHEN-SUTHERLAND LINE CLIPPING ALGORITHM This algorithm divides a plane in nine region

by four straight lines. The middle region is a rectangular window

with each point in the plane. The algorithm extends window boundary to

define nine regions: top-left, top-center, top-right, center-left, center, center-right, bottom-left, bottom-center, bottom-right

Page 11: Viewing and solid area scan conversion

COHEN-SUTHERLAND LINE CLIPPING

Uses a 4 digit code to indicate which of the nine region contains the end points of the line.

These codes identifies the location of the point relative to the boundaries of rectangle

Each region is allocated a Region Code (consisting of 4 Bit) which is found based on following conditions:

Set the bit from right: Set Bit 1: If the endpoint is to the left of window Set Bit 2 : If the endpoint is to the right of window Set Bit 3 : If the endpoint is below the window Set Bit 4 If the endpoint is above the window

The point with code 0000 will lie in viewing region

Page 12: Viewing and solid area scan conversion

1001 1000 1010

0001 0000 0010

0101 0100 0110

Bit 1Bit 4

Page 13: Viewing and solid area scan conversion

COHEN-SUTHERLAND LINE CLIPPING (VERIFICATION CONDITIONS)

Lines that are completely inside the boundaries have a region code of 0000

Lines that have 1 in the same bit position are completely outside the region so those lines are rejected.

If the result of logical AND operation is not zero then the line is completely outside.

Page 14: Viewing and solid area scan conversion

Line End Point Code(Region

Code)

Logical AND Result

P1P2 0001 0001 0001 Completely Invisible

P3P4 0001 0000 0000 Partially Visible

P5P6 0000 0000 0000 Completely Visible

P1

P2 P3 P4

P5 P6

Page 15: Viewing and solid area scan conversion

If Code(A) And Code(B) != 0000 then reject A else either it will become completely visible or partially visible

Once the codes for each endpoint of a line are determined, the logical AND operation of the codes determines, if the line is completely outside the window.

If the logical AND of the end point is not equal to zero then the line is rejected

The logical OR of the endpoint codes determines if the line is completely inside the window.

If the logical OR is zero then the line is accepted. If the line cannot be rejected or accepted then an

intersection of the line with a window edge is determined and the reject/accept test is repeated.

This process is continued until the line is accepted.

Cohen-Sutherland Line Clipping

Page 16: Viewing and solid area scan conversion

COHEN-SUTHERLAND LINE CLIPPING ALGORITHM

Read two end points Read two corner of the window Assign region code Check for visibility Determine intersection edge Divide the line segment considering intersection

point Reject the line segment if any one end point of it

appears out side the clipping window Draw the remaining line segment Stop

Page 17: Viewing and solid area scan conversion

POLYGON CLIPPING Polygon is a chain of connected poly lines. It is a closed figure bounded by straight lines. Starting vertex is called as the initial vertex

and the last vertex is called as the final vertex. Types of polygon:

Convex - It is a polygon in which the line segment joining any two points within the polygon lies completely inside the polygon.

Concave – It s a polygon in which the line segment joining any two points within the polygon may not lie completely inside the polygon.

Computer graphics deals with the both types of polygons.

Page 18: Viewing and solid area scan conversion

CONVEX POLYGON

CONCAVE POLYGON

Page 19: Viewing and solid area scan conversion

SUTHERLAND HODGEMAN POLYGON CLIPPING This algorithm processes the polygon as a whole against

each window edge. It begins with initial set of polygon vertices and clipping

against the left window to produce new set of vertices. The new set of vertices is clipped against bottom edge,

right edge and top edge respectively. It uses divide and conquer strategy to attack the problem. First it clips the polygon against the right clipping boundary. The resulting polygon is clipped against the top boundary. And then process is repeated for the remaining boundaries. It works in any order to make sure that all the edges of the

clipping polygon are taken sequentially.

Page 20: Viewing and solid area scan conversion

POLYGON CLIPPING

Page 21: Viewing and solid area scan conversion

Case : 1 Case : 2

Case : 3 Case : 4

If V1 is Outside AND V2 isInside then Save V1’ and V2

V1

V1’

V2V1

V2

V2

V2

V1V1

If V1 and V2 are insidethen Save V2

If V1 And V2 are Outside then Save nothing

If V1 is Inside AND V2 isOutside then Save V1’

V1’

Sutherland Hodgeman Polygon Clipping

Page 22: Viewing and solid area scan conversion

Case 1: If previous vertex is outside and current vertex is

inside the window boundary, then both the intersection points and the current vertex are added to the new vertex list

Case 2: If both vertex are inside then only the current vertex

will be added to the list Case 3:

If the previous vertex is inside and the current vertex is outside then only the intersection point is added to the list

Case 4: If both the vertex are outside then intersection point

are tested for visibility and then added to the vertex list

Sutherland Hodgeman Polygon Clipping

Page 23: Viewing and solid area scan conversion

TEXT CLIPPING Character or text generation is an interesting

activity in computer graphics These characters can be formed by lines and

pixels Character are defined by a character cell or box While clipping the character box is compared to

the clipping window and pixels are activated only if it inside the clipping window.

Different cases of text and character clipping of the word “CLIPPING”(Example)

All or none text clipping All or none character clipping Precise level character clipping

Page 24: Viewing and solid area scan conversion

INTRODUCTION TO SOLID AREA SCAN CONVERSION

Solid filled area? Thick lines and colored geometric shapes

Generation of such filled areas requires edges and vertex information

The process of generating solid filled area using edges and vertex information is called as solid area scan conversion

Page 25: Viewing and solid area scan conversion

INSIDE OUTSIDE TEST / EVEN ODD TEST This test is used to detect whether a point is

inside or outside the polygon In this approach a line segment is drawn from

infinity to the point which we want to find whether it lies inside or outside the polygon

Now if the line segment makes odd number of intersection with the polygon edge then the point is said to be inside the polygon else it is outside.

Odd number of intersections---point inside the polygon

Even number of intersections---point outside the polygon

Page 26: Viewing and solid area scan conversion

WINDING NUMBER METHOD An alternative method for defining a polygon

interior point. Consider a piece of elastic between the point of

question and the point on polygon. Elastic is tied firmly on the point and slides from

other side. If the elastic wounds at least once then the point

is inside. If no net winding then it is outside.

Page 27: Viewing and solid area scan conversion

To explain this with the help of even odd test Direction numbers are given to each

boundary line that is crossed by the line drawn by joining the point in question and the outside point

And then sum these direction numbers. Starting=above Ending below Direction =1

Page 28: Viewing and solid area scan conversion

Starting = below Ending=above Direction=-1

Then find the sum.. nonzero = inside Zero=outside

Page 29: Viewing and solid area scan conversion

S

Q

R

T

P

P

Inside Outside Test Winding Number Test

Page 30: Viewing and solid area scan conversion

POLYGON FILLING Filling is the process of coloring a fixed area or

region Filling algorithm are used to fill in or shade the

given regions of a drawing Algorithm deals with pixel defined region i.e

group of pixels with same color.

Page 31: Viewing and solid area scan conversion

SEED FILLING The selected point which is completely inside the

polygon is called as seed point. Seed filling algorithms are classified as:

Boundary fill (4-adjacent, 8-adjacent) Flood fill

Boundary fill is an algorithm used to fill an area with a specified color until the specified boundary color is encountered.

It can be either 4 connected or 8 connected The algorithm works by starting in a specified

point (x, y) filling that point with a specified fill color, if that is not a boundary and recursively continuous with 4 or 8 neighbor.

Page 32: Viewing and solid area scan conversion

4-ADJACENT PIXEL Pixel has 4 neighbors namely-left, right, top, bottom Procedure:boundary_fill(x,y, fill_col, b_col){If(getpixel(x,y)!=b_col && getpixel(x,y)!=fill_col)

{putpixel(x,y,fill_col);boundary_fill(x+1,y,fill_col,b_col);boundary_fill(x,y+1,fill_col,b_col);boundary_fill(x-1,y,fill_col,b_col);boundary_fill(x,y-1,fill_col,b_col);

}}

Page 33: Viewing and solid area scan conversion

8-ADJACENT PIXEL

Pixel has 8 neighborsNeighboring pixels lies horizontally Vertically and diagonally

Page 34: Viewing and solid area scan conversion

Boundary_fill(int x, int y, int fill_col, int boundary_col){

if(getpixel(x, y) != boundary_col && getpixel(x, y) != fill_col){

putpixel(x, y, fill_col)boundary_fill(x+1, y, fill_col, boundary_col)boundary_fill(x-1, y, fill_col, boundary_col)boundary_fill(x, y+1, fill_col, boundary_col)boundary_fill(x, y-1, fill_col, boundary_col)boundary_fill(x+1, y+1, fill_col, boundary_col)boundary_fill(x+1, y-1, fill_col, boundary_col)boundary_fill(x-1, y+1, fill_col, boundary_col)boundary_fill(x-1, y-1, fill_col, boundary_col)

}}

Page 35: Viewing and solid area scan conversion

DRAWBACK OF BOUNDARY FILL

Fills the polygon with unique boundary. Fails if the polygon has different boundaries

Page 36: Viewing and solid area scan conversion

FLOOD FILL ALGORITHM

Sometimes it is required to fill an area that is not defined within a single color boundary.

In such cases we can fill area by replacing a specified interior color instead of searching for boundary color.

This approach is called flood fill. In this pixel are checked for interior color instead

of boundary color and they are replaced by new color.

Using either 4 or 8 connected approach we can step through pixel position until all interior points have been filled

Page 37: Viewing and solid area scan conversion

flood_fill(int x, int y, int old_col, int new_col){

if(getpixel(x, y) == old_col){

putpixel(x, y, new_col)flood_fill(x+1, y, old_col, new_col)flood_fill(x-1, y, old_col, new_col)flood_fill(x, y+1, old_col, new_col)flood_fill(x, y-1, old_col, new_col)flood_fill(x+1, y+1, old_col, new_col)flood_fill(x+1, y-1, old_col, new_col)flood_fill(x-1, y+1, old_col, new_col)flood_fill(x-1, y-1, old_col, new_col)

}}

Page 38: Viewing and solid area scan conversion

Various forms of distortion resulted from scan conversion is called aliasing. Anti aliasing: Making text, graphics appear easy to read & pleasant to the eyes. Way of making the object appear smoother. Anti-aliasing is often used in games & on graphics

card. It makes the jagged edge to appear smooth by

increasing the low resolution to high resolution. Anti-aliasing does not really smooth the edge it

merely fools the eye to see it as a smooth edge

ALIASING & ANTI-ALIASING

Page 39: Viewing and solid area scan conversion

HALF TONING

Half toning is a technique for obtaining visual resolution with a minimum number of intensity levels.

Rectangular grid of pixels are treated as single pixel which is done by adding multiple pixels

When a small area is viewed from a large distance, our eye’s averages the fine details and records only the overall details.

This process is used to produce photographs for magazines and books.

Page 40: Viewing and solid area scan conversion

THRESHOLDING Used to create a binary image(composed of

black & white color). Technique for improving visual resolution of the

image. Select a fixed threshold for each pixel. If I(x,y)>T then paint the pixel with white color. Else paint pixel with black color. Where I(x,y)=Intensity of the image at

coordinates(x,y) and T is the threshold value.

Page 41: Viewing and solid area scan conversion

DITHERING Attempt by a computer program to approximate a

color from a mixture of other color when the required color is not available.

E.g: Dithering occurs when the required color for the web page

is not supported by the OS. The browser then replaced the requested color with an

approximation composed of two or more other colors it can produce.

Lead to noticeable degradation of the image.