2D, 3D Clipping - PowerPoint PPT Presentation

1 / 20
About This Presentation
Title:

2D, 3D Clipping

Description:

If they are both in region 0000, then it's completely in. ... numbers both have a 1 in the same bit position, the line is completely out. ... – PowerPoint PPT presentation

Number of Views:29
Avg rating:3.0/5.0
Slides: 21
Provided by: csS74
Category:

less

Transcript and Presenter's Notes

Title: 2D, 3D Clipping


1
2D, 3D Clipping
  • Soon Tee Teoh
  • CS 116A

2
Line Clipping
  • Point clipping easy Just check the inequalities
  • xmin lt x lt xmax
  • ymin lt y lt ymax
  • Line clipping more tricky

3
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
4
Cohen-Sutherland Line Clipping
1010
1000
1001
0000
0010
0001
0100
0110
0101
5
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.

6
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

7
Polygon Fill-Area Clipping
8
Polygon Fill-Area Clipping
v1
v1
v1
v3
v3
v3
v2
v2
Note Need to consider each of 4 edge boundaries
9
Sutherland-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

10
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 Output v1 and v2
Inside to inside Output v2
Inside to outside Output v1
Outside to outside Output nothing
11
Sutherland-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
12
Weiler-Atherton Polygon Clipping
Sutherland-Hodgman
Weiler-Atherton
13
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
14
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 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
15
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
16
Cohen-Sutherland Line Clipping Region Codes in 2D
1010
1000
1001
0000
0010
0001
0100
0110
0101
17
3D 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.
18
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

19
Arbitrary 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

20
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 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
Write a Comment
User Comments (0)
About PowerShow.com