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