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

2D, 3D Clipping: Soon Tee Teoh CS 116A

The document discusses different techniques for 2D and 3D clipping of lines and polygons, including Cohen-Sutherland line clipping which assigns region codes, Sutherland-Hodgman polygon clipping which successively clips edges against boundaries, and extending these methods to 3D clipping using homogeneous coordinates and arbitrary clipping planes. It provides details on calculating intersections of lines and planes needed for clipping lines and polygons.

Uploaded by

Ritesh Kumar
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
36 views

2D, 3D Clipping: Soon Tee Teoh CS 116A

The document discusses different techniques for 2D and 3D clipping of lines and polygons, including Cohen-Sutherland line clipping which assigns region codes, Sutherland-Hodgman polygon clipping which successively clips edges against boundaries, and extending these methods to 3D clipping using homogeneous coordinates and arbitrary clipping planes. It provides details on calculating intersections of lines and planes needed for clipping lines and polygons.

Uploaded by

Ritesh Kumar
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 20

2D, 3D Clipping

Soon Tee Teoh


CS 116A
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 3 2 1

Top Bottom Right 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 it’s
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
Polygon Fill-Area Clipping
Polygon Fill-Area Clipping
v1

v1’ v1”
v3’

v3 v3”
v2 v2

Note: Need to consider each of 4 edge boundaries


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 outside inside outside inside outside inside

v2 v2 v2 v2

v1’ v1’
v1 v1
v1 v1

Outside to inside: Inside to inside: Inside to outside: Outside to outside:


Output: v1’ and v2 Output: v2 Output: v1’ Output: nothing
Sutherland-Hodgman Polygon Clipping

v2’ v2 Figure 6-27, page 332


v3

v1’
v3’
Left Right Bottom Top
v1 Clipper Clipper Clipper Clipper

v1v2 v2 v2v2’ v2’ v2’v3’ v2” v2”v1’ v1’


v2v3 v2’ v2’v3’ v3’ v3’v1 v1’v2 v2
v3v1 v3’v1 v3’v1 v1 v1v2 v1’v2 v2v2’ v2’
v1v2 v2 v2v2’ v2’ v2’v2” v2”
Edges Output Edges Output Edges Output Edges Output
Final
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 xwmax = 1

ywmin = -1 ywmax = 1

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

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 3 2 1

Top Bottom Right 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 5 4 3 2 1

Far Near Top Bottom Right 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
Intersection 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 0<u<1

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
u=
N . (P2 – P1)

You might also like