Вы находитесь на странице: 1из 36

Projections and clipping in 3D

Viewing and projection


Objects in WC are projected on to the
view plane, which is defined
perpendicular to the viewing direction
along the z
v
-axis. The two main types of
projection in Computer Graphics are:
parallel projection
perspective projection
Projection illustrations
Parallel projection
All projection lines are
crossing the view plane
in parallel; preserve
relative proportions
Perspective projection
Projection lines are
crossing the view plane
and converge in a
projection reference point
(PRP)
Overview of projections
Parallel projection
Two different types are used:
Orthographic (axonometric,isometric)
most common
projection perpendicular to view plane
Oblique (cabinet and cavalier)
projection not perpendicular to view plane
less common
Orthographic projection
Assume view plane at z
vp
(perpendicular to the z
v
-axis)
and (x
v
,y
v
,z
v
) an arbitrary point in VC
Then x
p
= x
v

y
p
= y
v

z
p
= z
vp
(z
v
is kept for depth purposes only)
Oblique projection
When the projection path is not perpendicular to
the view plane.
A vector direction is defining the projection lines
Can improve the view of an object
Oblique projection, contd
An oblique parallel projection is often specified
with two angles, o (0-90) och | (0-360),
as shown below
Oblique formula (from fig.)
Assume (x,y,z) any point in VC (cp. x
v
,y
v
,z
v
)
cos |=(x
p
-x)/L => x
p
=x+L
.
cos |
sin | =(y
p
-y)/L => y
p
=y+L
.
sin |
Also tan o=(z
vp
-z)/L, thus L=(z
vp
-z)/tan o=
=L
1
(z
vp
-z), where L
1
=cot o
Hence
x
p
= x + L
1
(z
vp
- z)
.
cos |
y
p
= y + L
1
(z
vp
- z)
.
sin |
Observe: if orthographic projection, then L
1
=0

Cavalier and Cabinet
When
tan o = 1 then the projection is called
Cavalier (o = 45)
tan o = 2 then the projection is called
Cabinet (o 63)
| usually takes the value 30 or 45
Cavalier, example
Perspective projection
A general approach
x
p
= x
.
z
prp
z
vp
z
prp
z
+ x
prp
.
z
vp
z
z
prp
z
y
p
= y
.
z
prp
z
vp
z
prp
z
+ y
prp
.
z
vp
z
z
prp
z
Special cases
Various restrictions are often used, such as:
PRP on the z
v
-axis (used in the next
approach) => x
prp
=y
prp
=0
PRP in the VC origin => x
prp
=y
prp
=z
prp
=0
view plane in the x
v
y
v
-plane => z
vp
=0
view plane in the x
v
y
v
-plane and PRP on the
z
v
-axis =>x
prp
=y
prp
=z
vp
=0


Special case: PRP on the z
v
-axis
Similarity properties give:
x
p
x
=
z
prp
z
vp
z
prp
z
=> x
p
= x
.
d
p
z
prp
z
y
p
y
=
z
prp
z
vp
z
prp
z
=> y
p
= y
.
d
p
z
prp
z
Window and clipping in 3D
Window in 3D => View Volume
A rectangular window on the view plane
corresponds to a view volume of type:
infinite parallelepiped (parallel
projection)
half-infinite pyramid with apex at PRP
(perspective projection)
View volumes
Finite view volumes
To get a finite volume (one or) two extra
z
v
-boundary planes, parallel to the view
plane, are added: the front (near) plane
and the back (far) plane resulting in:
a rectangular parallelepiped (parallel
projection)
a pyramidal frustum (perspective
projection)
Finite view volumes
Camera properties
The two new planes are mainly used as far and
near clipping planes to eliminate objects
close to and far from PRP (cp. the camera)
Other camera similarities:
PRP close to the view plane => wide angle
lens
PRP far from the view plane => tele photo
lens
Matrix representations for both parallel and per-
spective projections are possible (see text
book)
3D Clipping
A 3D algorithm for clipping identifies and
saves those surface parts that are
within the view volume
Extended 2D algorithms are well suited
also in 3D; instead of clipping against
straight boundary edges, clipping in 3D
is against boundary planes, i.e. testing
lines/surfaces against plane equations
Clipping planes
Testing a point against the front and back
clipping planes are easy; only the z-
coordinate has to be checked
Testing against the other view volume sides are
more complex when perspective projection
(pyramid), but still easy when parallel
projection, since the clipping sides are then
parallel to the x- and y-axes

Clipping when perspective projection
Before clipping, convert the view volume, a
pyramidal frustum, to a rectangular
parallelepiped (see next figure)
Clipping can then be performed as in the case
of parallel projection, which means much less
processing
From now on, all view volumes are assumed to
be rectangular parallelepipeds (either
including the special transformation or not)
The perspective transformation
The perspective
transformation will
transform the object
A to A so that the
parallel projection of
A will be identical to
the perspective
projection of A
Normalized coordinates
A possible (and usual!) further transformation is
to a unit cube; a normalized coordinate
system (NC) is then introduced, with either
0x,y,z1 or -1x,y,z1
Since screen coordinates are often specified in
a left-handed reference system, also
normalized coordinates are often specified in
a left-handed system, which means, for
instance, viewing in the positive z-direction
Left-handed screen coordinates
Parallel projection view volume to
normalized view volume
Perspective projection view volume
to normalized view volume
Advantages with the
parallelepiped/unit cube
all view volumes have a standard shape
and corresponds to common output
devices
simplified and standardized clipping
depth determinations are simplified
when it comes to Visible Surface
Detection
Clipping in more detail
Both the 2D algorithms, Cohen-Sutherlands for
line clipping and Sutherland-Hodgemans for
polygon clipping, can easily be modified to 3D
clipping.
One of the main differences is that clipping has
to be performed against boundary planes
instead of boundary edges
Another is that clipping in 3D generally needs to
be done in homogeneous coordinates
Clipping details,contd
With matrix representation of the viewing and projection
transformations, the matrix M below represent the
concatenation of all various transformations from
world coordinates to normalized, homogeneous
projection coordinates with h taking any real value!
\
|

x
h
y
h
z
h
h
.
|
|
|
|
| = M
.
\
|

x
y
z
1
.
|
|
|
|
|
Line clipping
Polygon clipping
Graphics packages typically deal only with
objects made up by polygons
Clipping an object is then broken down in
clipping polygon surfaces
First, some bounding surface is tested
Then, vertex lists as in 2D but now processed
by 6 clippers!
Additional surfaces need to close cut objects
along the view volume boundary
Concave objects are often split
Example, object clipping
Viewing pipeline
After the clipping routines have been
applied to the normalized view volume,
the remaining tasks are:
Visibility determination
Surface rendering
Transformation to the viewport (device)

Оценить