Three key points about advanced computer graphics and 3D viewing:
1. 3D viewing involves establishing a viewing coordinate system and transforming 3D world coordinates to 2D viewing coordinates using translations and rotations. Projections like parallel and perspective then project the viewing coordinates onto a 2D view plane.
2. Common projections used in 3D viewing are parallel projections, which project lines parallel to the view plane, and perspective projections, which simulate how the human eye sees and cause objects to appear smaller with distance.
3. Viewing pipelines involve modeling, transformations between coordinate systems, projections, clipping to a view volume, and normalization before rendering the 2D image. Technologies like OpenGL help specify common operations like projections, view
6. 3D Viewing Pipeline3D Viewing Pipeline
Modeling
Transformation
Viewing
Transformation
Projectionn
Transformation
Normalization
Transformation
and Clipping
Viewport
Transformation
MC
WC
VC PC
NC
DC
7. Viewing CoordinatesViewing Coordinates
• Generating a view of an object in 3D is similar to
photographing the object.
• Whatever appears in the viewfinder is projected onto
the flat film surface.
• Depending on the position, orientation and aperture
size of the camera corresponding views of the scene
is obtained.
8. Specifying The View CoordinatesSpecifying The View Coordinates
• For a particular view of a scene
first we establish viewing-
coordinate system.
• A view-plane (or projection plane)
is set up perpendicular to the
viewing z-axis.
• World coordinates are
transformed to viewing
coordinates, then viewing
coordinates are projected onto the
view plane.
xw
zw
yw
xv
zv
yv
P0=(x0 , y0 , z0)
9. Specifying The View CoordinatesSpecifying The View Coordinates
• To establish the viewing reference frame, we
first pick a world coordinate position called the
view reference point.
• This point is the origin of our viewing
coordinate system. If we choose a point on an
object we can think of this point as the
position where we aim a camera to take a
picture of the object.
10. Specifying The View CoordinatesSpecifying The View Coordinates
• Next, we select the positive
direction for the viewing z-axis,
and the orientation of the view
plane, by specifying the view-
plane normal vector, N.
• We choose a world coordinate
position P and this point
establishes the direction for N.
• OpenGL establishes the direction
for N using the point P as a look at
point relative to the viewing
coordinate origin.
xw
zw
yw
xv
zv
P0
P
N
xv
yv
11. Specifying The View CoordinatesSpecifying The View Coordinates
• Finally, we choose the up direction
for the view by specifying view-up
vector V.
• This vector is used to establish the
positive direction for the yv axis.
• The vector V is perpendicular to N.
• Using N and V, we can compute a
third vector U, perpendicular to
both N and V, to define the
direction for the xv axis.
xw
zw
yw
xv
zv
yv
P0
P
N
V
12. Specifying The View CoordinatesSpecifying The View Coordinates
To obtain a series of views of
a scene , we can keep the the
view reference point fixed and
change the direcion of N. This
corresponds to generating
views as we move around the
viewing coordinate origin.
P0
V
N
N
13. Transformation From World ToTransformation From World To
Viewing CoordinatesViewing Coordinates
Conversion of object
descriptions from
world to viewing
coordinates is
equivalent to
transformation that
superimpoes the
viewing reference
frame onto the world
frame using the
translation and
rotation.
xw
yw
zw
xv
yv
zv
14. Transformation From World ToTransformation From World To
Viewing CoordinatesViewing Coordinates
First, we translate the
view reference point
to the origin of the
world coordinate
system
xw
yw
zw
xv
yv
zv
15. Transformation From World ToTransformation From World To
Viewing CoordinatesViewing Coordinates
Second, we apply
rotations to align the
xv,, yv and zv axes with
the world xw, yw and zw
axes, respectively.
xw
yw
zw
xv
yv
zv
xv
yv
zv
16. Transformation From World ToTransformation From World To
Viewing CoordinatesViewing Coordinates
If the view reference
point is specified at
word position (x0, y0,
z0), this point is
translated to the
world origin with the
translation matrix T.
−
−
−
=
1000
100
010
001
0
0
0
z
y
x
T
17. Transformation From World ToTransformation From World To
Viewing CoordinatesViewing Coordinates
• The rotation
sequence requires
3 coordinate-axis
transformation
depending on the
direction of N.
• First we rotate
around xw-axis to
bring zv into the xw
-zw plane.
−
=
1000
00
00
0001
θθ
θθ
CosSin
SinCos
xR
18. Transformation From World ToTransformation From World To
Viewing CoordinatesViewing Coordinates
Then, we rotate
around the
world yw axis to
align the zw and
zv axes.
−
=
1000
00
0010
00
αα
αα
CosSin
SinCos
yR
19. Transformation From World ToTransformation From World To
Viewing CoordinatesViewing Coordinates
The final rotation
is about the
world zw axis to
align the yw and yv
axes.
−
=
1000
0100
00
00
ββ
ββ
CosSin
SinCos
zR
20. Transformation From World ToTransformation From World To
Viewing CoordinatesViewing Coordinates
The complete transformation from world to viewing
coordinate transformation matrix is obtaine as the matrix
product
TRRRM ⋅⋅⋅= xyzvcwc,
21. Transformation From World To ViewingTransformation From World To Viewing
Coordinates:Coordinates: An Example For 2d SystemAn Example For 2d System
y
x
x′
y′
Θ=300
0 2 4 6
0246
2
2
P=(5,5)
P0=(4,3)
26. ProjectionsProjections
• Once WC description of the objects in a scene are
converted to VC we can project the 3D objects onto 2D
view-plane.
• Two types of projections:
-Parallel Projection
-Perspective Projection
29. Parallel ProjectionsParallel Projections
• Orthographic parallel projection
The projection is perpendicular to the view
plane.
• Oblique parallel projecion
The parallel projection is not perpendicular to
the view plane.
31. Oblique Parallel ProjectionOblique Parallel Projection
– The projectors are still ortogonal to the projection plane
– But the projection plane can have any orientation with
respect to the object.
– It is used extensively in architectural and mechanical design.
32. Oblique Parallel ProjectionOblique Parallel Projection
• Preserve parallel lines but not angles
– Isometric view : Projection plane is placed
symmetrically with respect to the three principal
faces that meet at a corner of object.
– Dimetric view : Symmetric with two faces.
– Trimetric view : General case.
33. Oblique Parallel ProjectionOblique Parallel Projection
• Preserve parallel lines but not angles
– Isometric view : Projection plane is placed
symmetrically with respect to the three principal
faces that meet at a corner of object.
– Dimetric view : Symmetric with two faces.
– Trimetric view : General case.
34. Perspective ProjectionsPerspective Projections
• First discovered by Donatello, Brunelleschi,
and DaVinci during Renaissance
• Objects closer to viewer look larger
• Parallel lines appear to converge to single
point
35. Perspective ProjectionsPerspective Projections
In perspective projection object positions are
transformed to the view plane along lines that
converge to a point called the projection
reference point (or center of projection)
37. When we do 3-D graphics, we think of the
screen as a 2-D window onto the 3-D world:
How tall should
this bunny be?
Perspective ProjectionsPerspective Projections
38. The geometry of the situation is that of similar
triangles. View from above:
d
P (x, y, z) X
Z
(0,0,0)x′ = ?
Perspective ProjectionsPerspective Projections
View plane
(xp, yp)
39. Desired result for a point [x, y, z, 1]T
projected
onto the view plane:
dz
dz
y
z
yd
y
dz
x
z
xd
x
z
y
d
y
z
x
d
x
==
⋅
==
⋅
=
==
',','
'
,
'
Perspective ProjectionsPerspective Projections
40. • When a camera used to take a picture, the
type of lens used determines how much of
the scene is caught on the film.
• In 3D viewing, a rectangular view window in
the view plane is used to the same effect.
Edges of the view window are parallel to the
xv-yv axes and window boundary positions are
specified in viewing coordinates.
View VolumesView Volumes
41. View VolumesView Volumes
zv
window
Front Plane
Back Plane
View volume
Parallel ProjectionParallel Projection Perspective Projection
Front Plane
Back Plane
View volume
(frustum)
window
Projection
Reference Point
42. ClippingClipping
• An algorithm for 3D clipping identifies and
saves all surface segments within the view
volume for display.
• All parts of object that are outside the view
volume are discarded.
43. Clipping LinesClipping Lines
Just like the case in two dimensions, clipping removes
objects that will not be visible from the scene
The point of this is to remove computational effort
3-D clipping is achieved in two basic steps
– Discard objects that can’t be viewed
• i.e. objects that are behind the camera, outside
the field of view, or too far away
– Clip objects that intersect with any clipping plane
44. Discard ObjectsDiscard Objects
Discarding objects that cannot possibly be seen involves
comparing an objects bounding box/sphere against the
dimensions of the view volume
– Can be done before or after projection
45. Clipping Polygon SurfaceClipping Polygon Surface
• To clip a polygon surface, we can clip the individual
polygon edges.
• First we test the coordinate extends against each
boundary of the view volume to determine whether
the object is completely inside or completely outside
of that boundary.
• If the object has intersection with the boundary then
we apply intersection calculations.
46. Clipping Polygon SurfaceClipping Polygon Surface
• The projection operation can take place before the
view- volume clipping or after clipping.
• All objects within the view volume map to the interior
of the specified projection window.
• The last step is to transform the window contents to a
2D view port.
48. Dividing Up The WorldDividing Up The World
Similar to the case in two dimensions, we
divide the world into regions
This time we use a 6-bit region code to
give us 27 different region codes
The bits in these regions codes are as
follows:
bit 6
Far
bit 5
Near
bit 4
Top
bit 3
Bottom
bit 2
Right
bit 1
Left
52. 3D Polygon Clipping (cont…)3D Polygon Clipping (cont…)
In this case we first try to eliminate the
entire object using its bounding volume
Next we perform clipping on the individual
polygons using the Sutherland-Hodgman
algorithm we studied previously
55. Projections in OpenGLProjections in OpenGL
• Angle of view, field of view :
– Only objects that fit within
the angle of view of the
camera appear in the
image
• View volume, view frustum :
– Be clipped out of scene
– Frustum – truncated
pyramid