1 / 27

# Two-Dimensional Viewing - PowerPoint PPT Presentation

Two-Dimensional Viewing. Jehee Lee Seoul National University. Viewing Pipeline. Two-Dimensional Viewing. Two dimensional viewing transformation From world coordinate scene description to device (screen) coordinates. Normalization and Viewport Transformation.

Related searches for Two-Dimensional Viewing

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

## PowerPoint Slideshow about 'Two-Dimensional Viewing' - burton

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

### Two-Dimensional Viewing

Jehee Lee

Seoul National University

• Two dimensional viewing transformation

• From world coordinate scene description to device (screen) coordinates

• World coordinate clipping window

• Normalization square: usually [-1,1]x[-1,1]

• Device coordinate viewport

• Projection Mode

• glMatrixMode(GL_PROJECTION);

• GLU clipping-window function

• gluOrtho2D(xwmin,xwmax,ywmin,ywmax);

• Normalized to [-1,1]x[-1,1]

• OpenGL viewport function

• glViewport(xvmin,xvmax,yvmin,yvmax);

• Rarely used because of GLUT device independent library

• Remove portion of output primitives outside clipping window

• Two approaches

• Clip during scan conversion: Per-pixel bounds check

• Clip analytically, then scan-convert the modified primitives

• Point clipping – trivial

• Line clipping

• Cohen-Sutherland

• Cyrus-beck

• Liang-Barsky

• Fill-area clipping

• Sutherland-Hodgeman

• Weiler-Atherton

• Curve clipping

• Text clipping

• Basic calculations:

• Is an endpoint inside or outside the clipping window?

• Find the point of intersection, if any, between a line segment and an edge of the clipping window.

• Both endpoints inside:

trivial accept

• One inside: find

intersection and clip

• Both outside: either

clip or reject

1000

1010

Clipping window

0001

0010

0000

0101

0100

0110

Cohen-Sutherland Line Clipping

• One of the earliest algorithms for fast line clipping

• Identify trivial accepts and rejects by bit operations

< Region code for each endpoint >

above

below

right

left

Bit 4 3 2 1

1000

1010

Clipping window

0001

0010

0000

0101

0100

0110

Cohen-Sutherland Line Clipping

• Compute region codes for two endpoints

• If (both codes = 0000 ) trivially accepted

• If (bitwise AND of both codes  0000) trivially rejected

• Otherwise, divide line into two segments

• test intersection edges in a fixed order.

(e.g., top-to-bottom, right-to-left)

• Fixed order testing and clipping cause needless clipping (external intersection)

• This algorithm can be very efficient if it can accept and reject primitives trivially

• Clip window is much larger than scene data

• Most primitives are accepted trivially

• Clip window is much smaller than scene data

• Most primitives are rejected trivially

• Good for hardware implementation

• Use a parametric line equation

• Reduce the number of calculating intersections by exploiting the parametric form

• Notations

• Ei : edge of the clipping window

• Ni : outward normal of Ei

• An arbitrary point PEi on edge Ei

• Solve for the value of t at the intersection of P0P1 with the edge

• Ni·[P(t) - PEi] = 0 and P(t) = P0 + t(P1 - P0)

• letting D = (P1 - P0),

• Where

• Ni 0

• D  0 (that is, P0 P1)

• Ni· D  0 (if not, no intersection)

• Given a line segment P0P1, find intersection points against four edges

• Discard an intersection point if t  [0,1]

• Label each intersection point either PE (potentially entering) or PL (potentially leaving)

• Choose the smallest (PE, PL) pair that defines the clipped line

• Cyrus-Beck is efficient when many line segments need to be clipped

• Can be extended easily to convex polygon (rather than upright rectangle) clip windows

• Liang-Barsky optimized Cyrus-Beck for upright rectangular clip windows

Q(x2.y2)

tR

tT

P(x1,y1)

tL

tB

L

R

tT

T

B

tB

• Line clipping using nonrectangular polygon clip windows

• Convex polygon

• Cyrus-Beck algorithm can be readily extended

• Concave polygon

• Split the concave polygon into convex polygons

• Vector Method for Concave Splitting

• Calculate edge-vector cross products in a counterclockwise order

• If any z component turns out to be negative, the polygon is concave

• Polyline vs polygon fill-area

• Early rejection is useful

Clipping Window

Bounding box of polygon fill area

• Clip against 4 infinite clip edges in succession

• Accept a series of vertices (polygon) and outputs another series of vertices

• Four possible outputs

• The algorithm correctly clips convex polygons, but may display extraneous lines for concave polygons

• 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 a clockwise direction

• Polygon clipping using nonrectangular polygon clip windows

• All-or-none text clipping

• Using boundary box for the entire text

• All-or-non character clipping

• Using boundary box for each individual character

• Character clipping

• Vector font: Clip boundary polygons or curves

• Bitmap font: Clip individual pixels