Computer Graphics

Download Report

Transcript Computer Graphics

University of Palestine

Computer Graphics

ITGD3107 Assistant Professor Dr. Sana’a Wafa Al-Sayegh 2 nd Semester 2008-2009

1

ITGD3107

Computer Graphics

Chapter 6 Two Dimensional Viewing

2

Two Dimensional Viewing

• The Viewing Pipeline • Viewing Effects • Viewing Coordinate Reference Frame • Workstation transformation • Clipping Operations • Line Clipping • Polygon Clipping 3

The Viewing Pipeline

• • • •

Window

• A world-coordinate area selected for display. defines

what

is to be viewed

Viewport

• An area on a display device to which a window is mapped. defines

where

it is to be displayed

Viewing transformation

• The mapping of a part of a world-coordinate scene to device coordinates.

A window could be a rectangle to have any orientation.

4

Two-Dimensional Viewing

5

The Viewing Pipeline

6

The Viewing Pipeline

7

Viewing Effects

• • •

Zooming effects

• Successively mapping different-sized windows on a fixed-sized viewports.

Panning effects

• Moving a fixed-sized window across the various objects in a scene.

Device independent

• Viewports are typically defined within the unit square (normalized coordinates) 8

Viewing Coordinate Reference Frame

The reference frame for specifying the world-coordinate window.

• •

Viewing-coordinate origin: P 0 = (x 0 , y 0 ) View up vector V : Define the viewing y v direction

9

Window-to-Viewport Coordinate Transformation

10

Workstation transformation

11

Clipping Operations

Clipping

Identify those portions of a picture that are either inside or outside of a specified region of space.

• • •

Clip window

• •

The region against which an object is to be clipped. The shape of clip window Applications of clipping World-coordinate clipping

12

Clipping Operations

• • •

Viewport clipping

It can reduce calculations by allowing concatenation of viewing and geometric transformation matrices. Types of clipping

• • • • •

Point clipping Line clipping Area (Polygon) clipping Curve clipping Text clipping Point clipping (Rectangular clip window)

13

Line Clipping

Possible relationships between line positions and a standard rectangular clipping region

Before clipping after clipping 14

• • •

Line Clipping

Possible relationships

– – –

Completely inside the clipping window Completely outside the window Partially inside the window Parametric representation of a line x = x 1 + u(x 2 - x 1 ) y = y 1 + u(y 2 - y 1 ) The value of u for an intersection with a rectangle boundary edge

– –

Outside the range 0 to 1 Within the range from 0 to 1

15

Cohen-Sutherland Line Clipping Region code

A four-digit binary code assigned to every line endpoint in a picture.

Numbering the bit positions in the region code as 1 through 4 from right to left.

16

Cohen-Sutherland Line Clipping

• •

Bit values in the region code

Determined by comparing endpoint coordinates to the clip boundaries

A value of 1 in any bit position: The point is in that relative position. Determined by the following steps:

Calculate differences between endpoint coordinates and clipping boundaries.

Use the resultant sign bit of each difference calculation to set the corresponding bit value.

17

Cohen-Sutherland Line Clipping

The possible relationships:

Completely contained within the window

0000 for both endpoints.

Completely outside the window

Logical and the region codes of both endpoints, its result is not 0000.

Partially

18

Splitting Concave Polygons

Identify a concave polygon

Calculating the cross product of successive edge vectors.

If the z component of some cross product is positive while others have a negative, it is concave.

19

Splitting Concave Polygons

Vector method

Calculate the edge-vector cross product in a counterclockwise order.

If any z component turns out to be negative

• •

The polygon is concave. Split it along the line of the first edge vector in the cross-product pair.

20

Splitting Concave Polygons

21

Polygon Clipping

22

Sutherland-Hodgeman Polygon Clipping

Processing the polygon boundary as a whole against each window edge

Processing all polygon vertices against each clip rectangle boundary in turn

23

Sutherland-Hodgeman Polygon Clipping

Pass each pair of adjacent polygon vertices to a window boundary clipper

There are four cases:

24

Sutherland-Hodgeman Polygon Clipping

• • •

Intermediate output vertex list

Once all vertices have been processed for one clip window boundary, it is generated.

The output list of vertices is clipped against the next window boundary.

It can be eliminated by a pipeline of clipping routine. Convex polygons are correctly clipped. If the clipped polygon is concave

Split the concave polygon

25

Sutherland-Hodgeman Polygon Clipping

v 2

v

2 '

v

2 ''

v

1 ' v 1

v

3 ' v 3

v

' 1 26

Weiler-Atherton Polygon Clipping

• •

Developed as a method for identifying visible surfaces

It can be applied with arbitrary polygon-clipping region.

• •

Not always proceeding around polygon edges Sometimes follows the window boundaries For clockwise processing of polygon vertices

For an outside-to-inside pair of vertices, follow the polygon boundary.

For an inside-to-outside pair of vertices, follow the window boundary in clockwise direction .

27

Weiler-Atherton Polygon Clipping

28

Other Clipping

Curve clipping

Use bounding rectangle to test for overlap with a rectangular clip window.

Text clipping

• • •

All-or-none string-clipping All-or-none character-clipping Clip the components of individual characters

29

• • •

Exterior Clipping

Save the outside region Applications

• •

Multiple window systems The design of page layouts in advertising or publishing

Adding labels or design patterns to a picture Procedures for clipping objects to the interior of concave polygon windows

30

Exterior Clipping

31