clipping - cs.bgu.ac.ilgraph161/wiki.files/09b-clipping.pdf · image clipping scan conversion draw...
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/1.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/23.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/25.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/26.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/27.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/28.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/29.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/30.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/31.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/32.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/33.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/34.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/35.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/36.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/37.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/38.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/39.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/40.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/41.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/42.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/43.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/44.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/45.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/46.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/47.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/48.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/49.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/50.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/51.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/52.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/53.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/54.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/55.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/56.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/57.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/58.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/59.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/60.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022053020/5f29850631906a1c7a7dda72/html5/thumbnails/61.jpg)
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