UBI 516 Advanced Computer Graphics Three Dimensional Viewing - PowerPoint PPT Presentation

1 / 77
About This Presentation
Title:

UBI 516 Advanced Computer Graphics Three Dimensional Viewing

Description:

Clipping Polygon Surface Steps For Normalized View Volumes A scene is constructed by transforming object descriptions from modeling coordinates to wc. – PowerPoint PPT presentation

Number of Views:55
Avg rating:3.0/5.0
Slides: 78
Provided by: DavidLu155
Category:

less

Transcript and Presenter's Notes

Title: UBI 516 Advanced Computer Graphics Three Dimensional Viewing


1
UBI 516 Advanced Computer GraphicsThree
Dimensional Viewing
  • Aydin Öztürk
  • ozturk_at_ube.ege.edu.tr
  • http//www.ube.ege.edu.tr/ozturk

2
Overview
  • Viewing a 3D scene
  • Projections
  • Parallel and perspective

3
Overview
  • Depth cueing and hidden surfaces
  • Identifying visible lines and surfaces

4
Overview
  • Surface rendering

5
Overview
  • Exploded and cutaway views

6
Overview
  • 3D and stereoscopic viewing

7
3D Viewing Pipeline
MC
DC
ViewportTransformation
ModelingTransformation
NC
WC
Normalization Transformation and Clipping
ViewingTransformation
VC
PC
ProjectionnTransformation
8
Viewing 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.

9
Specifying 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.

10
Specifying 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.

11
Specifying 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.

yv
xv
xv
yw
zv
N
P0
P
xw
zw
12
Specifying 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.

yv
xv
V
yw
zv
N
P0
P
xw
zw
13
Specifying The View Coordinates
V
  • 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
N
N
14
Transformation From World To Viewing 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.

yw
xw
zw
15
Transformation From World To Viewing Coordinates
  • First, we translate the view reference point to
    the origin of the world coordinate system

yw
xw
zw
16
Transformation From World To Viewing Coordinates
  • Second, we apply rotations to align the xv,, yv
    and zv axes with the world xw, yw and zw axes,
    respectively.

yw
xw
xv
zw
17
Transformation From World To Viewing 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.

18
Transformation From World To Viewing 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.

19
Transformation From World To Viewing Coordinates
  • Then, we rotate around the world yw axis to align
    the zw and zv axes.

20
Transformation From World To Viewing Coordinates
  • The final rotation is about the world zw axis to
    align the yw and yv axes.

21
Transformation From World To Viewing Coordinates
  • The complete transformation from world to viewing
    coordinate transformation matrix is obtaine as
    the matrix product

22
Transformation From World To Viewing Coordinates
  • Another method for generating the
    rotation-transformation matrix is to calculate
    uvn vectors and obtain the composite rotation
    matrix directly. Given the vectors and
    , these unit vectors are calculated as

23
Transformation From World To Viewing Coordinates
  • This method also automatically adjusts the
    direction for so that is
    perpendicular to . The rotation matrix for
    the viewing transformation is then

24
Transformation From World To Viewing Coordinates
  • The matrix for translating the viewing origin to
    the world origin is

25
Transformation From World To Viewing Coordinates
  • The composite matrix for the viewing
    transformation is then

26
Transformation From World To Viewing Coordinates
An Example For 2d System
y
2
P(5,5)
y'
x'
2
0 2 4 6

T300
P0(4,3)
0 2 4 6

x
27
Transformation From World To Viewing Coordinates
An Example For 2d System
  • Translation

y
0 2 4 6

P
2
x'
2
y'
T300
2 4 6

x
P0
28
Transformation From World To Viewing Coordinates
An Example For 2d System
  • Rotation

0 2 4 6

29
Transformation From World To Viewing Coordinates
An Example For 2d System
  • New coordinates

30
Transformation From World To Viewing Coordinates
An Example For 2d System
  • Alternative Method

y
0 1 2 3

P
1
x'
y'
1
n
v
T300
x
1 2 3
P0
31
Projections
  • 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

32
Classical Viewings
  • Hand drawings Determined by a specific
    relationship between the object and the viewer.

33
Parallel Projections
  • Coordinate Positions are transformed to the view
    plane along parallel lines.

View Plane
P2
P'2
P1
P'1
34
Parallel 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.

35
Orthographic Parallel Projection
  • The orthographic transformation

36
Orthographic Parallel Projection
37
Oblique 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.

38
Oblique 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.

39
Oblique 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.

40
Oblique Parallel Projection
yv
(xp, yp)
a
(x, y, z)
L
f
xv
(x, y)
zv
41
Oblique Parallel Projection
  • The oblique transformation

42
Oblique Parallel Projection
43
Perspective Projections
  • First discovered by Donatello, Brunelleschi, and
    DaVinci during Renaissance
  • Objects closer to viewer look larger
  • Parallel lines appear to converge to single point

44
Perspective 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)

45
Perspective Projections
  • In the real world, objects exhibit perspective
    foreshortening distant objects appear smaller
  • The basic situation

46
Perspective Projections
  • When we do 3-D graphics, we think of the screen
    as a 2-D window onto the 3-D world

47
Perspective Projections
  • The geometry of the situation is that of similar
    triangles. View from above

View plane
(xp, yp)
d
48
Perspective Projections
  • Desired result for a point x, y, z, 1T
    projected onto the view plane

49
Perspective Projections
50
Perspective Projections
51
Projection Matrix
  • We talked about geometric transforms, focusing on
    modeling transforms
  • Ex translation, rotation, scale, gluLookAt()
  • These are encapsulated in the OpenGL modelview
    matrix
  • Can also express projection as a matrix
  • These are encapsulated in the OpenGL projection
    matrix

52
View Volumes
  • 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.

53
View Volumes
View volume
View volume (frustum)
zv
window
Back Plane
window
Front Plane
Back Plane
Projection Reference Point
Front Plane
Parallel Projection
Parallel Projection
Perspective Projection
54
Clipping
  • 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.

55
Clipping Lines
  • To clip a line against the view volume, we need
    to test the relative position of the line using
    the view volumes boundary plane equation.
  • An end point (x,y,z) of a line segment is outside
    a boundary plane if
  • where A, B, C and D are the plane parameters
    for that boundary.

56
Clipping 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.

57
Clipping 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.

58
Clipping Polygon Surface
Viev volume
59
Steps For Normalized View Volumes
  • A scene is constructed by transforming object
    descriptions from modeling coordinates to wc.
  • The world descriptions are converted to viewing
    coordinates.
  • The viewing coordinates are transformed to
    projection coordinates which effectively converts
    the view volume into a rectangular
    parallelepiped.
  • The parallelepiped is mapped into the unit cube
    called normalized projection coordinate system.
  • A 3D viewport within the unit cube is
    constructed.
  • Normalized projection coordinates are converted
    to device coordinates for display.

60
Normalized View Volumes
y
x
(Xwmax, ywmax, zback)
(Xvmax, yvmax, zvmax)
z
(Xwmin, ywmin, zfront)
Parallelepiped View Volume
(Xvmin, yvmin, zwmin)
Unit Cube
61
Orthogonal Projection Normalization
62
Oblique Projection Normalization
  • Angles of projection
  • ? for x axis
  • ? for y axis
  • Shearing matrix H(?, ?)

?
?
63
Oblique Projection Normalization
Finished ? No, this is a sheared view volume, so
we have to apply orthogonal transformation
PPorth STH
64
Perspective Projection Normalization
  • Perspective Normalization is Trickier

65
Perspective Projection Normalization
  • Consider N
  • After multiplying
  • p Np

66
Perspective Projection Normalization
  • After dividing by w, p -gt p

67
Perspective Projection Normalization
  • Quick Check
  • If x z
  • x -1
  • If x -z
  • x 1

68
Perspective Projection Normalization
  • What about z?
  • if z zmax
  • if z zmin
  • Solve for a and b such that zmin -gt -1 and zmax
    -gt1
  • Resulting z is nonlinear, but preserves
    ordering of points
  • If z1 lt z2 z1 lt z2

69
Perspective Projection Normalization
  • We did it. Using matrix, N
  • Perspective viewing frustum transformed to cube
  • Orthographic rendering of cube produces same
    image as perspective rendering of original
    frustum

70
OpenGL Projection Commands
71
OpenGL Look-At Function
  • OpenGL utility function
  • VRP eyePoint (eyex, eyey, eyez)
  • VPN ( atPoint eyePoint ) (atx, aty, atz)
    (eyex, eyey, eyez)
  • VUP upPoint eyePoint (upx, upy, upz)

gluLookAt(eyex, eyey, eyez, atx, aty, atz, upx,
upy, upz)
look-at positioning
72
Projections 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

73
Projections in OpenGL
74
Perspective in OpenGL
  • Specification of a frustum
  • near, far positive number !!
  • ? zmax far
  • ? zmin near

glMatrixMode(GL_PROJECTION) glLoadIdentity(
) glFrustum(xmin, xmax, ymin, ymax, near, far)
75
Perspective in OpenGL
  • Specification using the field of view
  • fov angle between top and
  • bottom planes
  • fovy the angle of view in the
  • up (y) direction
  • aspect ratio width / height

glMatrixMode(GL_PROJECTION) glLoadIdentity(
) gluPerspective(fovy, aspect, near, far)
76
Parallel Viewing in OpenGL
  • Orthographic viewing function
  • OpenGL provides only this parallel-viewing
    function
  • near lt far !!
  • ? no restriction on the sign
  • ? zmax far
  • ? zmin near

glMatrixMode(GL_PROJECTION) glLoadIdentity(
) glOrtho(xmin, xmax, ymin, ymax, near, far)
77
Optional Clipping Planes
  • glClipPlane(id, PlaneParameters)glEnable(id) /
    / id GL_CLIP_PLANE0, GL_CLIP_PLANE1, ... //
    PlaneParameters A,B,C and D of the plane. .
    .glDisable(id)
Write a Comment
User Comments (0)
About PowerShow.com