0% found this document useful (0 votes)
105 views

Lecture14b Clipping

Cohen-Sutherland line clipping assigns region codes to divide 2D space and determine if a line is fully in, out, or needs to be clipped. Sutherland-Hodgman polygon clipping inputs edges and outputs clipped edges by checking the status of vertices against each clipper plane. 3D clipping works similarly but uses 6-bit region codes and clips triangles. Arbitrary clipping planes can also be specified by an equation to clip lines and polygons.

Uploaded by

Ravish Nirvan
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
105 views

Lecture14b Clipping

Cohen-Sutherland line clipping assigns region codes to divide 2D space and determine if a line is fully in, out, or needs to be clipped. Sutherland-Hodgman polygon clipping inputs edges and outputs clipped edges by checking the status of vertices against each clipper plane. 3D clipping works similarly but uses 6-bit region codes and clips triangles. Arbitrary clipping planes can also be specified by an equation to clip lines and polygons.

Uploaded by

Ravish Nirvan
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 16

Line Clipping

Point clipping easy: Just check the inequalities


xmin < x < xmax ymin < y < ymax

Line clipping more tricky

Cohen-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 Top 3 Bottom 2 Right 1 Left

Cohen-Sutherland Line Clipping


1001 1000 1010

0001

0000

0010

0101

0100

0110

Cohen-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.

Cohen-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

Sutherland-Hodgman Polygon 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

Sutherland-Hodgman Polygon Clipping: Four possible scenarios at each clipper


outside inside v2 v1 v1 v1
Inside to inside: Output: v2 Inside to outside: Output: v1

outside

inside v2

outside v2 v1

inside

outside v2

inside

v1

v1
Outside to outside: Output: nothing

Outside to inside: Output: v1 and v2

Sutherland-Hodgman Polygon Clipping

v3

v2

v2

Figure 6-27, page 332

v1 v3 v1 v1v2 v2v3 v3v1


Edges

Left Clipper v2 v2 v3v1


Output

Right Clipper v2v2 v2v3 v3v1 v1v2


Edges

Bottom Clipper v2v3 v3v1 v1v2 v2v2


Edges

Top Clipper v2v1 v1v2 v1 v2 v2 v2 Final


Output

v2 v3 v1 v2
Output

v2

v1v2 v2v2 v2
Output

v2v2
Edges

Weiler-Atherton Polygon Clipping

Sutherland-Hodgman

Weiler-Atherton

Clipping 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

Clipping 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:
-1 < xh h <1 and -1 < yh h <1 and -1 < zh h <1

Suppose that h > 0, which is true in normal cases, then -h < xh < h and -h < yh < h and -h < zh < h

Remember 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 Top 3 Bottom 2 Right 1 Left

Cohen-Sutherland Line Clipping Region Codes in 2D


1001 1000 1010

0001

0000

0010

0101

0100

0110

3D Cohen-Sutherland Region Codes


Simply use 6 bits instead of 4.
6 Far 5 Near 4 Top 3 Bottom 2 Right 1 Left

Example: If h + xh < 0, then bit 1 is set to 1. This is because if -h > xh, then the point is to the left of the viewing volume.

Clipping 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

Arbitrary Clipping Planes


Can specify an arbitrary clipping plane: Ax + By + Cz + D = 0. Therefore, for any point, if Ax + By + Cz + D < 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

You might also like