clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-clipping.pdf · image clipping scan conversion draw...

61
Clipping

Upload: others

Post on 07-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Clipping

Page 2: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

3D Rendering Pipeline 3D Geometric Primitives

Modeling Transformation

Viewing Transformation

Projection Transformation

Lighting

Image

Clipping

Scan Conversion Draw pixels (includes texturing, hidden surface, etc.)

Clip primitives outside camera’s view

Transform into 2D camera coordinate system

Transform into 3D camera coordinate system

Transform into 3D world coordinate system

Illuminate according to lighting and reflectance

Page 3: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

2D Rendering Pipeline

Viewport Transformation

Scan Conversion

Clipping

2D Primitives

Image

Clip portions of geometric primitives

residing outside the window

Fill pixels representing primitives

in screen coordinates

Transform the clipped primitives

from screen to image coordinates

3D Primitives

Page 4: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Clipping

Avoid drawing parts of primitives outside window

Window defines part of scene being viewed

Must draw geometric primitives only inside window

Screen Coordinates

Window

Page 5: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Clipping

Avoid drawing parts of primitives outside window

Window defines part of scene being viewed

Must draw geometric primitives only inside window

Viewing

Window

Page 6: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Clipping

Avoid drawing parts of primitives outside window

Points

Lines

Polygons

Circles

etc.

Viewing

Window

Page 7: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Point Clipping

Is point (x,y) inside the clip window?

Window

wx1 wx2

wy2

wy1

(x,y)

inside =

(x >= wx1) &&

(x <= wx2) &&

(y >= wy1) &&

(y <= wy2);

Page 8: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Line Clipping

Find the part of a line inside the clip

window

P1

P10

P9

P8

P7

P4 P3

P6

P5

P2

Before Clipping

Page 9: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

P’8

P’7

P4 P3

P6

P’5

After Clipping

Line Clipping

Find the part of a line inside the clip

window

Page 10: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Cohen Sutherland Line Clipping

Use simple tests to classify easy cases

first

P1

P10

P9

P8

P7

P4 P3

P6

P5

P2

Page 11: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Key Idea: Encode Regions

Bit

Value

0 1

xxmin x<xmin 1

xxmax x>xmax 2

yymin y<ymin 3

yymax y>ymax 4

Page 12: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Endpoint Code Classification

Assign code to end points of each line segment

line is inside if (c1 OR c2 ==0)

line is outside if )c1 AND c2 != 0)

Remove all such lines

Compute intersections with window boundary for all

lines that can’t be classified quickly

Page 13: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Cohen Sutherland Line

Clipping

Bit 1 Bit 2

Bit 3

Bit 4

0000 0100 1000

0001 0101 1001

0010 0110 1010

P1

P10

P9

P8

P7

P4 P3

P6

P5

P2

Page 14: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Cohen Sutherland Line

Clipping

Bit 1 Bit 2

Bit 3

Bit 4

0000 0100 1000

0001 0101 1001

0010 0110 1010

P1

P10

P9

P8

P7

P4 P3

P6

P5

P2

Page 15: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Cohen Sutherland Line

Clipping

Bit 1 Bit 2

Bit 3

Bit 4

0000 0100 1000

0001 0101 1001

0010 0110 1010

P10

P9

P8

P7

P4 P3

P6

P5

Page 16: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Cohen Sutherland Line

Clipping

Bit 1 Bit 2

Bit 3

Bit 4

0000 0100 1000

0001 0101 1001

0010 0110 1010

P10

P9

P8

P7

P4 P3

P6

P5

Page 17: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Cohen Sutherland Line

Clipping

Bit 1 Bit 2

Bit 3

Bit 4

0000 0100 1000

0001 0101 1001

0010 0110 1010

P10

P9

P8

P7

P4 P3

P6

P5

Page 18: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Cohen Sutherland Line

Clipping

Bit 1 Bit 2

Bit 3

Bit 4

0000 0100 1000

0001 0101 1001

0010 0110 1010

P10

P9

P8

P7

P4 P3

P6

P5

Page 19: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Cohen Sutherland Line

Clipping

Bit 1 Bit 2

Bit 3

Bit 4

0000 0100 1000

0001 0101 1001

0010 0110 1010

P10

P9

P8

P7

P4 P3

P6

P’5

Page 20: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Cohen Sutherland Line

Clipping

Bit 1 Bit 2

Bit 3

Bit 4

0000 0100 1000

0001 0101 1001

0010 0110 1010

P10

P9

P8

P7

P4 P3

P6

P’5

Page 21: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Cohen Sutherland Line

Clipping

Bit 1 Bit 2

Bit 3

Bit 4

0000 0100 1000

0001 0101 1001

0010 0110 1010

P10

P9

P8

P7

P4 P3

P6

P’5

Page 22: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Cohen Sutherland Line

Clipping

Bit 1 Bit 2

Bit 3

Bit 4

0000 0100 1000

0001 0101 1001

0010 0110 1010

P10

P9

P8

P7

P4 P3

P6

P’5

Page 23: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Cohen Sutherland Line

Clipping

Bit 1 Bit 2

Bit 3

Bit 4

0000 0100 1000

0001 0101 1001

0010 0110 1010

P10

P9

P8

P’7

P4 P3

P6

P’5

Page 24: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Cohen Sutherland Line

Clipping

Bit 1 Bit 2

Bit 3

Bit 4

0000 0100 1000

0001 0101 1001

0010 0110 1010

P10

P9

P8

P’7

P4 P3

P6

P’5

Page 25: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Cohen Sutherland Line

Clipping

Bit 1 Bit 2

Bit 3

Bit 4

0000 0100 1000

0001 0101 1001

0010 0110 1010

P10

P9

P’8

P’7

P4 P3

P6

P’5

Page 26: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Cohen Sutherland Line

Clipping

Bit 1 Bit 2

Bit 3

Bit 4

0000 0100 1000

0001 0101 1001

0010 0110 1010

P10

P9

P’8

P’7

P4 P3

P6

P’5

Page 27: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Cohen Sutherland Line

Clipping

Bit 1 Bit 2

Bit 3

Bit 4

0000 0100 1000

0001 0101 1001

0010 0110 1010

P10

P9

P’8

P’7

P4 P3

P6

P’5

Page 28: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Cohen Sutherland Line

Clipping

Bit 1 Bit 2

Bit 3

Bit 4

0000 0100 1000

0001 0101 1001

0010 0110 1010

P10

P9

P’8

P’7

P4 P3

P6

P’5

Page 29: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Cohen Sutherland Line

Clipping

Bit 1 Bit 2

Bit 3

Bit 4

0000 0100 1000

0001 0101 1001

0010 0110 1010

P10

P9

P’8

P’7

P4 P3

P6

P’5

Page 30: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Cohen Sutherland Line

Clipping

Bit 1 Bit 2

Bit 3

Bit 4

0000 0100 1000

0001 0101 1001

0010 0110 1010

P10

P9

P’8

P’7

P4 P3

P6

P’5

Page 31: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Cohen Sutherland Line

Clipping

Bit 1 Bit 2

Bit 3

Bit 4

0000 0100 1000

0001 0101 1001

0010 0110 1010

P’8

P’7

P4 P3

P6

P’5

Page 32: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Intersecting An Edge and a Line

Denote p(t)=p0+(p1-p0)t t[0..1]

Let qi be a point on the edge Li with outside pointing normal Ni.

V(t) = p(t)-qi is a parameterized vector from qi to the segment p(t).

We are looking for t satisfying the equation: Ni· V)t) = 0

p0

p1

Ni

Li

p(t) V(t)

qi

Page 33: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Finding the Parameter t of the

Intersection Point

0 = Ni· V)t)

= Ni· )p)t)-qi)

= Ni· )p0+(p1-p0)t-qi)

= Ni· )p0-qi) + Ni· )p1-p0)t

p0

p1

Ni qi

Li

)( where

)(

)(

)(

01

0

01

0

pp

N

qpN

ppN

qpNt

i

ii

i

iii

p(ti)

V(ti)

t at intersection

Page 34: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Cyrus-Beck Line Clipping Example

p1

p0

PL

PE

p0

p1

PE

PE

PL

PL

p1

PL

PE p0

Line is outside

Page 35: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Cyrus-Beck Line Clipping

The intersection of p(t) with all four edges Li is computed,

resulting in up to four ti values per segment.

If ti<0 or ti>1 , ti can be discarded (why?).

Based on the sign of Ni· , each intersection point is classified

as PE (potentially entering) or PL (potentially leaving).

PE with the largest t and PL with the smallest t provide the

domain of p(t) inside W.

If PL comes before PE the line is outside!

Note: If Ni· =0, t has no solution. However, in this case V(t)

Ni and there is no defined intersections.

Page 36: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Polygon Clipping

Find the part of a polygon inside the clip

window? Before Clipping

Page 37: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Polygon Clipping

Find the part of a polygon inside the clip

window? After Clipping

Page 38: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Naïve Clipping

Find intersections

Page 39: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Naïve Clipping

Find intersections

Remove all outside vertices

Page 40: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Sutherland Hodgeman

Clipping

Clip to each window boundary one at a time

Page 41: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Sutherland Hodgeman

Clipping

Clip to each window boundary one at a time

Page 42: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Sutherland Hodgeman

Clipping

Clip to each window boundary one at a time

Page 43: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Sutherland Hodgeman

Clipping

Clip to each window boundary one at a time

Page 44: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Sutherland Hodgeman

Clipping

Clip to each window boundary one at a time

Page 45: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Clipping to a Boundary

Assumes you have vertices ordered!

Loop around polygon:

Do inside test for each vertex in polygon

sequence

When crossing window boundary insert

new point

Remove points outside window boundary

Page 46: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Clipping to a Boundary

Outside

Inside

Window

Boundary

P1 P2

P5

P4

P3

Page 47: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Clipping to a Boundary

Outside

Inside

Window

Boundary

P1 P2

P5

P4

P3

Page 48: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Clipping to a Boundary

Outside

Inside

Window

Boundary

P1 P2

P5

P4

P3

Page 49: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Clipping to a Boundary

Outside

Inside

Window

Boundary

P1 P2

P5

P4

P3

P’

Page 50: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Clipping to a Boundary

Outside

Inside

Window

Boundary

P1 P2

P5

P4

P3

P’

Page 51: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Clipping to a Boundary

Outside

Inside

Window

Boundary

P1 P2

P5

P4

P3

P’

Page 52: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Clipping to a Boundary

Outside

Inside

Window

Boundary

P1 P2

P5

P4

P3

P’ P’’

Page 53: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Clipping to a Boundary

Outside

Inside

Window

Boundary

P1 P2

P’ P’’

Page 54: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Relation Between Successive

Vertices

clip boundary

inside outside u

v

clip boundary

inside outside

u

v

clip boundary

inside outside v u w

u

clip boundary

inside outside

v w

v added to output list

w added to output list no output w and v added to

output list

Assume vertex u has been dealt with, vertex v follows:

Page 55: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Sutherland Hodgeman

Clipping

Assumes you have vertices ordered in List L

Initialize: Lin = L, Lout =

For each window edge e {

u = last(Lin)

Loop over v Lin {

If v is inside e then

if u is outside e

then Lout = Lout intersect(e,<u,v>)

Lout = Lout v

Else

if u is inside e

then Lout = Lout intersect(e,<u,v>)

u = v

}

Lin = Lout

}

e

Page 56: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Notes

Works for any convex clipping polygon

Good for drawing – not for modeling:

Overlapping edges

Page 57: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

2D Rendering Pipeline

Viewport Transformation

Scan Conversion

Clipping

2D Primitives

Image

Clip portions of geometric primitives

residing outside the window

Fill pixels representing primitives

in screen coordinates

Transform the clipped primitives

from screen to image coordinates

3D Primitives

Page 58: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Viewport Transformation

Transform 2D geometric primitives from

screen coordinate system (normalized device

coordinates) to image coordinate system (pixels)

Image

Screen

Viewport

Window

Page 59: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Window-to-Viewport Mapping

vx1 vx2 vy1

vy2

wx1 wx2 wy1

wy2 Window Viewport

Screen Coordinates Image Coordinates

(wx,wy) (vx,vy)

)(

)(

1

12

12

1

1

12

121

yy

yy

yy

yy

xx

xx

xxxx

wwww

vvvv

wwww

vvvv

Page 60: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Summary

Viewport Transformation

Scan Conversion

Clipping

2D Primitives

Image

Clip portions of geometric primitives

residing outside the window

Fill pixels representing primitives

in screen coordinates

Transform the clipped primitives

from screen to image coordinates

3D Primitives

Page 61: Clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-Clipping.pdf · Image Clipping Scan Conversion Draw pixels (includes texturing, hidden surface, etc.) Clip primitives outside camera’s

Summary of Transformations

Modeling Transformation

Viewing Transformation

2D Image Coordinates

Projection Transformation

Window-to-Viewport Transformation

3D Object Coordinates

3D World Coordinates

3D Camera Coordinates

2D Screen Coordinates

p(x,y,z)

p’)x’,y’)

Viewing transformations

Modeling transformation

Viewport transformation