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