Computer Graphics and Visualization SSE, Mukka
Computer Graphics and Visualization SSE, Mukka
Classical Viewing
Introduce the classical views Compare and contrast image formation by computer with how images have been formed by architects, artists, and engineers Learn the benefits and drawbacks of each type of view
Classical Projections
Perspective vs Parallel
Computer graphics treats all projections the same and implements them with a single pipeline Classical viewing developed different techniques for drawing each type of projection Fundamental distinction is between parallel and perspective viewing even though mathematically parallel viewing is the limit of perspective viewing
parallel
perspective
multiview orthographic
axonometric
1 point oblique
2 point
3 point
isometric 7
dimetric
trimetric
Perspective Projection
Parallel Projection
10
11
Building plans Manuals Cannot see what object really looks like because many surfaces hidden from view
Often we add the isometric
13
q1
q2 q3
14
Axonometric Projections
The distinguishing feature of axonometric projection is the inclined position of the object with respect to the plane of projection.
The axonometric axis is the intersection of the three edges of the cube at the corner (O). Axonometric projections are classified as isometric projection (a), dimetric projection (b), and trimetric projection (c).
15
16
Lines are scaled (foreshortened) but can find scaling factors Lines preserved but angles are not Can see three principal faces of a box-like object Some optical illusions possible
Parallel lines appear to diverge
Does not look real because far objects are scaled the same as near objects Used in CAD applications
17
Oblique Projection
Arbitrary relationship between projectors and projection plane
18
Angles in faces parallel to projection plane are preserved while we can still see around side
In physical world, cannot create with simple camera; possible with bellows camera or 19 special lens (architectural)
Perspective Projection
Projectors coverge at center of projection
20
Vanishing Points
Parallel lines (not parallel to the projection plan) on the object converge at a single point in the projection (the vanishing point) Drawing simple perspectives by hand uses these vanishing point(s)
vanishing point
21
Three-Point Perspective
No principal face parallel to projection plane Three vanishing points for cube
22
23
One-Point Perspective
One principal face parallel to projection plane One vanishing point for cube
24
Equal distances along a line are not projected into equal distances (nonuniform foreshortening) Angles preserved only in planes parallel to the projection plane More difficult to construct by hand than parallel projections (but not more difficult by computer)
25
Computer Viewing
There are three aspects of the viewing process, all of which are implemented in the pipeline,
Positioning the camera
The camera is located at origin and points in the negative z direction OpenGL also specifies a default view volume that is a cube with sides of length 2 centered at the origin
Default projection matrix is an identity
27
Default Projection
z=0
28
Translate the world frame Both of these views are equivalent and are determined by the model-view matrix
Want a translation (glTranslatef(0.0,0.0,-d);) d > 0
29
default frames
30
We can move the camera to any desired position by a sequence of rotations and translations Example: side view
Rotate the camera Move it away from origin Model-view matrix C = TR
31
OpenGL code
Remember that last transformation specified is first to be applied
glMatrixMode(GL_MODELVIEW) glLoadIdentity(); glTranslatef(0.0, 0.0, -d); glRotatef(90.0, 0.0, 1.0, 0.0);
32
glMatrixMode(GL_MODELVIEW): glLoadIdentity(); gluLookAt(1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0., 1.0. 0.0);
33
gluLookAt
glLookAt(eyex, eyey, eyez, atx, aty, atz, upx, upy, upz)
34
The LookAt function is only one possible API for positioning the camera Others include
View reference point, view plane normal, view up (PHIGS, GKS-3D) Yaw, pitch, roll Elevation, azimuth, twist Direction angles
35
Most graphics
normalization
All other views are converted to the default view by transformations that determine the projection matrix Allows use of the same pipeline for all views
36
xp = x yp = y zp = 0 wp = 1
M=
pp = Mp
1 0 0 0
0 0 0 1 0 0 0 0 0 0 0 1
Simple Perspective
38
Perspective Equations
Consider top and side views
x z/d
xp = 39
x z/d
yp =
y z/d
zp = d
M=
1 0 0 0
0 1 0
0 0 1
0 1/ d
0 0 0 0
q=
40
x y z 1
p=
x y z z / d
Perspective Division
However w 1, so we must divide by w to return from homogeneous coordinates This perspective division yields
xp =
x z/d
yp =
y z/d
zp = d
the desired perspective equations We will consider the corresponding clipping volume with the OpenGL functions
41
OpenGL Perspective
glFrustum(left,right,bottom,top,near,far)
43
aspect = w/h
44