Title: 2D, 3D Clipping
12D, 3D Clipping
2Line Clipping
- Point clipping easy Just check the inequalities
- xmin lt x lt xmax
- ymin lt y lt ymax
- Line clipping more tricky
3Cohen-Sutherland Line Clipping
- Divide 2D space into 3x3 regions.
- Middle region is the clipping window.
- Each region is assigned a 4-bit code.
- Bit 1 is set to 1 if the region is to the left of
the clipping window, 0 otherwise. Similarly for
bits 2, 3 and 4.
4
3
2
1
Top Bottom Right Left
4Cohen-Sutherland Line Clipping
1010
1000
1001
0000
0010
0001
0100
0110
0101
5Cohen-Sutherland Line Clipping
- To clip a line, find out which regions its two
endpoints lie in. - If they are both in region 0000, then its
completely in. - If the two region numbers both have a 1 in the
same bit position, the line is completely out. - Otherwise, we have to do some more calculations.
6Cohen-Sutherland Line Clipping
- For those lines that we cannot immediately
determine, we successively clip against each
boundary. - Then check the new endpoint for its region code.
- How to find boundary intersection To find y
coordinate at vertical intersection, substitute x
value at the boundary into the line equation of
the line to be clipped. - Other algorithms
- Faster Cyrus-Beck
- Even faster Liang-Barsky
- Even faster Nichol-Lee-Nichol
7Polygon Fill-Area Clipping
8Polygon Fill-Area Clipping
v1
v1
v1
v3
v3
v3
v2
v2
Note Need to consider each of 4 edge boundaries
9Sutherland-HodgmanPolygon Clipping
- Input each edge (vertex pair) successively.
- Output is a new list of vertices.
- Each edge goes through 4 clippers.
- The rule for each edge for each clipper is
- If first input vertex is outside, and second is
inside, output the intersection and the second
vertex - If first both input vertices are inside, then
just output second vertex - If first input vertex is inside, and second is
outside, output is the intersection - If both vertices are outside, output is nothing
10Sutherland-Hodgman Polygon Clipping Four
possible scenarios at each clipper
outside inside
outside inside
outside inside
outside inside
v2
v2
v2
v2
v1
v1
v1
v1
v1
v1
Outside to inside Output v1 and v2
Inside to inside Output v2
Inside to outside Output v1
Outside to outside Output nothing
11Sutherland-Hodgman Polygon Clipping
v2
Figure 6-27, page 332
v2
v3
v1
v3
Right Clipper
Bottom Clipper
Top Clipper
Left Clipper
v1
v2
v2v3
v2v1
v1
v2v2
v2
v2
v1v2
v2
v2v3
v3
v3v1
v1v2
v2
v2v3
v2
v3v1
v3v1
v1
v1v2
v1v2
v2v2
v3v1
v2
v1v2
v2
v2v2
v2
v2v2
Edges Output
Edges Output
Edges Output
Edges Output
Final
12Weiler-Atherton Polygon Clipping
Sutherland-Hodgman
Weiler-Atherton
13Clipping in 3D
- Suppose the view volume has been normalized. Then
the clipping boundaries are just
xwmin -1 ywmin -1 zwmin -1
xwmax 1 ywmax 1 zwmax 1
14Clipping Homogeneous Coordinates in 3D
- Coordinates expressed in homogeneous coordinates
- After geometric, viewing and projection
transformations, each vertex is (xh, yh, zh, h) - Therefore, assuming coordinates have been
normalized to a (-1,1) volume, a point (xh, yh,
zh, h) is inside the view volume if
xh
yh
zh
-1 lt lt 1 and -1 lt lt 1
and -1 lt lt 1
h
h
h
Suppose that h gt 0, which is true in normal
cases, then
-h lt xh lt h and -h lt yh lt h and
-h lt zh lt h
15Remember Cohen-Sutherland 2D Line Clipping Region
Codes?
- Divide 2D space into 3x3 regions.
- Middle region is the clipping window.
- Each region is assigned a 4-bit code.
- Bit 1 is set to 1 if the region is to the left of
the clipping window, 0 otherwise. Similarly for
bits 2, 3 and 4.
4
3
2
1
Top Bottom Right Left
16Cohen-Sutherland Line Clipping Region Codes in 2D
1010
1000
1001
0000
0010
0001
0100
0110
0101
173D Cohen-Sutherland Region Codes
- Simply use 6 bits instead of 4.
4
3
2
1
6
5
Far Near Top Bottom
Right Left
Example If h xh lt 0, then bit 1 is set to
1. This is because if -h gt xh, then the point is
to the left of the viewing volume.
18Clipping Polygons
- First, perform trivial acceptance and rejection
using, for example, its coordinate extents. - Polygons usually split into triangle strips.
- Then each triangle is clipped using 3D extension
of the Sutherland-Hodgman method
19Arbitrary Clipping Planes
- Can specify an arbitrary clipping plane Ax By
Cz D 0. - Therefore, for any point, if Ax By Cz D lt
0, it is not shown. - To clip a line against an arbitrary plane,
- If both end-points are in, then the line is in
- If both end-points are out, then the line is out
- If one end-point is in, and one is out, then we
need to find the intersection of the line and the
plane
20Intersection of Line and Plane
- First, given two end-points of a line, P1 and P2,
form a parametric representation of the line
P P1 (P2 P1) u, where 0ltult1
Equation of the clipping plane N.P D 0,
where N (A,B,C)
Substituting, N.(P1 (P2 P1)u) D 0
D N.P1 N . (P2 P1)
u