viewing-projection powerpoint cmputer graphics

SUBHASHREEBASU5 18 views 69 slides Jul 01, 2024
Slide 1
Slide 1 of 69
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58
Slide 59
59
Slide 60
60
Slide 61
61
Slide 62
62
Slide 63
63
Slide 64
64
Slide 65
65
Slide 66
66
Slide 67
67
Slide 68
68
Slide 69
69

About This Presentation

computer graphics


Slide Content

Viewing, projections Hofstra University 1
Modeling and Viewing
Modeling
Use modeling (local) coordinates and geometric transformations
to build hierarchically more complex objects and scenes. The final
scene is in world frame
Viewing
Model the camera: position , orientation, camera (view) reference
frame, projection
Viewing transformations: from world to camera coordinates
Clipping/hidden surface removal: clip out from consideration parts
outside of view volume
Projection transformations and hidden surface removal: from 3D
viewing coord. to 2D projection coord. and normalized device
coordinates
Viewport transformations: from normalized device coordinates to
screen (device) coordinates

Viewing, projections Hofstra University 2
Viewing and Projection
Transforming
Modeling transformations (affine), 3D to 3D
Viewing transformations(affine), 3D to 3D
Linear in homogeneous coordinates
Images of parallel lines stay parallel
Transformation matrix in homogeneous coordinates has last
row, 0 0 0 1
Projection transformations(not affine), 3D to 2D
Linear in homogeneous coordinates
Images of parallel lines may intersect at infinity
Transformation matrix most general
Viewport transformations(affine), maps viewing
window to viewport, 2D to 2D

Viewing, projections Hofstra University 3
Viewing Terminology
Viewing volume: the region in 3D that can contain
objects that are visible by the camera
Projection: math transformations that maps from 3D
to 2D (or 4D to 3D, in homogeneous)
Projection plane: the plain containing the 2D image
Viewing window: the rectangle in the image plane that
will be mapped to the screen eventually
Viewport: 2D rectangle within the display window on
the screen that shows the viewing window
Clipping: cutting off from consideration parts outside
the view volume (done easier if the view volume is
mapped to a canonical view volume which is a cube)

Viewing, projections Hofstra University 4
Graphics functions
Graphics systems support viewing by
Providing a viewing model whose parameters specify
the camera
Providing functions for viewing, projection and viewport
Implementing viewing and projection transformations
as matrix multiplications in homogeneous coordinates

Viewing, projections Hofstra University 5
Viewing APIs
The the position of the eyeor camera is
called the view reference point(VRP)
A unit view plane normal (VPN), is in the
viewing direction, it is perpendicular to the
image plane. In open GL VPN is in direction
opposite to the one in which camera is
looking
Another vector called the view-up vectoris
a vector specifying which is the approximate
“up” direction for the camera

Viewing, projections Hofstra University 6
Camera Model: viewing
VRP: Camera(eye) position,
(u,v,n): camera frame.
Viewing: specify VRP,n,VUP.

Viewing, projections Hofstra University 7
Viewing Coordinate System: (u,v,n)
right handed
v, the y-axis of the view frame, is the
perpendicular projection of VUP on the
projection plane
n is the z-axis of the view frame
u= v×n

Viewing, projections Hofstra University 8
Setting up the camera
Construct a scene and then
look at it from a point of
view, eye:
eye,the eyepoint, is the
VRP specified in the world
coordinates
Camera is pointed at a point
at, the at point
These points determine VPN
vpn= eye–at

Viewing, projections Hofstra University 9
Two Points of View
Hold camera frame fixed, move objects in
front of the camera
Model objects stationary and move the camera
away from the objects

Viewing, projections Hofstra University 10
gluLookAt Utility Routine in OpenGL
Defines a viewing transformation matrix M, and M
postmultiplies CTM, i.e. CTM=CTM*M
Eye point: eyex, eyey, andeyez.
At point: atx, aty,and atz.
VUP: upx, upy,and upz
gluLookAt(eyex, eyey, eyez, atx, aty, atz, upx, upy, upz);

Viewing, projections Hofstra University 11
Viewing Transformations
Given 3D modelof a scene/object in 4D
homogeneous coordinates P, with respect to
the world coordinate system
Givencameracoordinate system (position,
VRP, and camera frame (u,v,n) )
Viewing transformation M converts coordinates
of objects from world to cameracoordinates
How?

Viewing, projections Hofstra University 12
Viewing Transformations
Let W=(O,ex,ey,ez) be the world coord. system
Let V=(VRP,u,v,n) be the camera coord. System
Let M be the change of frame matrix, mapping V to W,
M = R.T(-VRP), where
T is a translation mapping VRP to O
R is a rotation aligning (u,v,n) with (ex,ey,ez), in 3D affine
coordinates it represented by a matrix with rows u’,v’,n’
Then for a point P with modeling coordinates
w=(xw,yw,zw,1)’ the viewing coordinates are
v=(vx,vy,vz,1)’, where wMvvMw 

,)(
1

Viewing, projections Hofstra University 13
Custom Utility Routine
You might need to define your own
transformation routine
Flight simulator: Display the world from the
pilot’s point of view
Pilot see the world in terms of roll, pitch,
and heading

Viewing, projections Hofstra University 14
Custom Utility Routine
The following routine could serve as the viewing
transformation:
void pilotView{GLdouble planex, GLdouble planey,
GLdouble planez, Gldouble roll,
GLdouble pitch, GLdouble heading)
{
glRotated(roll, 0.0, 0.0, 1.0);
glRotated(pitch, 0.0, 1.0, 0.0);
glRotated(heading, 1.0, 0.0, 0.0);
glTranslated(-planex, -planey, -planez);
}

Viewing, projections Hofstra University 15
Custom Utility Routine
Orbiting the camera around an
object that's centered at the origin
Use polar coordinates.
Let the distancevariable define the
radius of the orbit
The azimuthdescribes the angle of
rotation of the camera about the
object in the x-yplane
elevationis the angle of rotation of
the camera in the y-zplane

Viewing, projections Hofstra University 16
Projections
Projecting: mapping from 3D viewing
coordinates to 2D coordinates in projection
plane. In homogeneous coordinates it is a map
from 4D viewing coordinates to 3D.
Projections
Parallel: orthogonal and oblique
Perspective
Canonical views: orthographic and perspective
projections

Viewing, projections Hofstra University 17
Perspective projection
Projectors intersect at COP

Viewing, projections Hofstra University 18
Parallel Projections
Projectors parallel.
COP at infinity.

Viewing, projections Hofstra University 19
Parallel projections: summary
Center of projection is at infinity.
Projectors are parallel.
Parallel lines stay parallel
There is no forshorthening
Distances and angles are transformed
consistently
Used most often in engineering design, CAD
systems. Used for top and side drawings from
which measurements could be made.

Viewing, projections Hofstra University 20
Orthographic Projection: projectors
orthogonal to projection plane
DOP
same for all points
(direction of projectors)

Viewing, projections Hofstra University 21
Orthographic Projections
DOP is perpendicular to the view plane

Viewing, projections Hofstra University 22
Multiview Parallel Projection
Faces are parallel to the projection plane

Viewing, projections Hofstra University 23
Isometric Projection
Projector makes equal angles with all three principal axes
All three axes are equally foreshortened

Viewing, projections Hofstra University 24
isometric
Mechanical Drawing

Viewing, projections Hofstra University 25
Oblique Parallel Projections
Most general parallel views
Projectors make an arbitrary angle with the
projection plane
Angles in planes parallel to the projection plane are
preserved

Viewing, projections Hofstra University 26
Oblique Projections: projectors are not
orthogonal to image plane
Cavalier
Angle between projectors and projection plane is 45°. Lines orthogonal to the projection plane
Retain their exact length. Perpendicular faces are projected at full scale
Cabinet
Angle between projectors and projection plane is arctan(2)=63.4°. Lines orthogonal to the
projection plane are projected at half length. Perpendicular faces are projected at 50% scale.
Looks like forshorthening.

Viewing, projections Hofstra University 27
Perspective Projection
Most natural for people
In human vision, perspective projection of the world is
created on the retina (back of the eye)
Used in CG for creating realistic images
Perspective projection images carry depth cues
Foreshortheningcauses distant objects to appear smaller
Relative lengths and angles are not preserved
A perspective image cannot be used for metric
measurementsof the 3D world
Parallel lines not parallel to the image plane converge at a
vanishing point
An axis (principal) vanishing point is a point of convergence
for lines parallel to a principal axis of the object. We
distinguish one-, two-, three-point projections.)

Viewing, projections Hofstra University 28
Vanishing Points

Viewing, projections Hofstra University 29
Vanishing Points

Viewing, projections Hofstra University 30
Early Perspective
Not systematic—parallel lines do not converge to a single "vanishing" point
Giotto

Viewing, projections Hofstra University 31
Math of Projections:Overview
Math of perspective projection, standard
configuration
OpenGL perspective projections
Math of orthographic projection
OpenGL orthographic projections
Viewport transformations and setting them in
OpenGL
Summary
Viewing transformations
Orthographic projection canonical viewing volume
Perspective projection canonical viewing volume
Hidden surface removal

Viewing, projections Hofstra University 32
Perspective Viewing

Viewing, projections Hofstra University 33
Perspective Projections
-z -z
Viewing direction orthogonal
To projection plane
Genaral perspective:
Viewing direction is
not orthogonal to
projection plane

Viewing, projections Hofstra University 34
Perspective Projections
The graphics system applies a 4 x 4
projection matrix after the model-view matrix

Viewing, projections Hofstra University 35
Math of perspective projection
The discussion here is carried out with respect
to the camera (view) reference frame,
(VRP,u,v,n)
The projection transformation maps 3D points
to 2D points in the projection plane
Standard configuration:
COP=VRP
Projection plane is orthogonal to z-axis, at z=d

Viewing, projections Hofstra University 36
Math of perspective projection
Standard configuration:
Let O be COP
Projection plane has equation z=d, d <0
3D point P has homogeneous coordinates (x,y,z,1)
It is mapped to point Q (xp,yp,d) in the projection
plane
Q is on the segment PO, thus
Q=cP+(1-c)O, where 0<c<1
Thus, xp = c.x, yp = c.y, d = c.z c = d/z
Thus, xp = (d/z).x, yp = (d/z).y, in affine coordinates
Note that projection is not linear in affine coordates.

Viewing, projections Hofstra University 37
Math of perspective projection
P=p(x,y,z,1) Q=q(d.x/z, d.y/z, d, 1), in homogeneous
coordinates.
Perspective projection is not linear in affine coord.
Perspective projection is linear in homogeneous
From homogeneous to affine coordinates:
(a,b,c,w) (a/w, b/w,c/w)
Thus (x,y,z,d/z) in homogeneous becomes
(x/(z/d), y/(z/d),d,1) ==> (d.x/z, d.y/z,1) in proj. plane


















































dz
z
y
x
z
y
x
dd
perper
/10/100
0100
0010
0001
0/100
0100
0010
0001
pMqM

Viewing, projections Hofstra University 38
Clipping
Object parts outside of the of the view volume are
clipped
First we will discuss the openGL functions that set up
the projection transformations
Next we will discuss the viewport transformation and
setting the viewport in OpenGL
Last, we will go back to projection, and see how the
graphics systems carry out efficiently the more general
perspective projection by reducing it to the standard
perspective, and then to the canonical orthographic
You can set up any projection you want (parallel or
perspective) by setting up the the projection matrix
directly
Although, more often we use affine transformations to
reduce more general projections to the canonical ones

Viewing, projections Hofstra University 39
Perspective Viewing in OpenGL
Depth of projection plane (size of clipping window)
inside the pyramid does not matter.
All that matters is object size relative to the window.
The projection plane depth does not affect relative
size.
Thus in CG systems usually far or near plane is selected
to be the projection plane. Near in openGL.

Viewing, projections Hofstra University 40
Projections in OpenGL
Objects not in the view volumeare clipped.
View (projection) plane is front clipping plane.
frustum
only fixed point

Viewing, projections Hofstra University 41
OpenGL Perspective
glFrustum(left, right, bottom, top, near, far);
glMatrixMode(GL_PROJECTION);
glLoadIdentity( );
glFrustum(left, right, bottom, top, near, far);
The relationship between front(near) plane and
COP(origin) define the steepness of the frustum

Viewing, projections Hofstra University 42
OpenGL Perspective
gluPerspective(fovy, aspect, near, far);
fovis the angle between the top and bottom planes

Viewing, projections Hofstra University 43
OpenGL Orthographic Projection
glOrtho(left, right, bottom, top, near, far);

Viewing, projections Hofstra University 44
Standard Orthographic Projection










































11000
0000
0010
0001
1
z
y
x
z
y
x
p
p
p

Viewing, projections Hofstra University 45
Viewport Transformation
viewport transformationcorresponds to the stage
where the size of the developed photograph is
chosen
The viewport is measured in pixels, in screen
window coordinates, which reflect the position of
pixels on the screen relative to the lower left corner
of the window
vertices outside the viewing volume have been
clipped

Viewing, projections Hofstra University 46
Viewport Transformation
viewportis the rectangular region of
the window where the image is drawn

Viewing, projections Hofstra University 47
Defining the Viewport
The window manager, not OpenGL, is
responsible for opening a window on the
screen
By default the viewport is set to the entire
pixel rectangle of the window that's opened
Use the glViewport()command to choose a
smaller drawing region
void glViewport(GLint x, GLint y, GLsizei width, GLsizei height);
lower left corner size of viewport rectangle

Viewing, projections Hofstra University 48
Defining The Viewport
By default, the initial viewport values are
(0, 0, winWidth, winHeight),
where winWidthand winHeightare the size of the window.
The aspect ratio of a viewport should generally equal
the aspect ratio of the viewing volume
If the two ratios are different, the projected image
will be distorted as it's mapped to the viewport

Viewing, projections Hofstra University 49
Viewport Distortion

Viewing, projections Hofstra University 50
Summary
World to View coordiantes
Camera position: VRP
Viewing transformation
Translate VRP to origin: T(-VRP)
Rotate, aligning view frame (u,v,n) with world frame
The composite transformation R.T will have the effect of
transforming the coordinates of vertices from world to
view coordinates

Viewing, projections Hofstra University 51
Summary
Canonical view orthographic projection
VRP at the origin
Looking in negative z direction (COP does not
matter)
View-up vector is (0,1,0)
View volume is a cube of side 2 center at origin,
(left, right, bottom, top, near, far)=(-1,1,-1,1,1,-1)
(-1,-1,1)
(1,1,-1)

Viewing, projections Hofstra University 52
Summary
Perspective projection standard viewing
VRP at origin
Looking in negative z-direction, look at is (0,0,-1)
COP coincides with VRP, viewing direction is orthogonal to
view plane
View-up vector is (0,1,0)
View volume is a regular frustum
(left, right, top, bottom, near, far)=(-1,1,-1,1,1,z_far),
The near plane is at –1, the far is at -z.
Side clipping planes make 45 deg angles with z axis

Viewing, projections Hofstra University 53
Canonical Viewing for Perspective

Viewing, projections Hofstra University 54
Hidden Surface Removal
z-buffer algorithm–as the polygons are
rasterized we keep track of the distance from
the VRP to the closest point on each
projector. We display only the closest point
Requires a depthor z bufferto store the
necessary depth information
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
glEnable(GL_DEPTH_TEST);
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);

Viewing, projections Hofstra University 55
Hidden Surface Removal
•Display only visible surfaces (remove hidden)
•Painter’s algorithm: sort polygons according to z, project in
order of decreasing depth
•Pixel based: back track rays from pixels to first intersection
•Z-buffer algorithm: based on relative depth after projection

Viewing, projections Hofstra University 56
Perspective Normalization
How can we apply general perspective projection?
Derive the perspective projection matrix (general 4x4
matrix), load that as a PROJECTION matrix
Trick: Using series of affine transformations to alter the
world, so that the image of the distorted world under
standard (canonical) projection is the same as the image of
the undistorted world under the original general projection
Graphics systems go even farther: perspective projections
are implemented internally as orthographic projections (of
the distorted world) with respect to the canonical view
volume (2x2x2 cube). This way the clipping is very efficient,
and z-buffer algorithm is supported by preserving relative
depth in the process of transforming objects.

Viewing, projections Hofstra University 57
Projection Normalization Idea

Viewing, projections Hofstra University 58
Projection Normalization
The distortion is described by a homogeneous-
coordinate matrix
Concatenatethis matrix with an orthogonal-
projectionmatrix to yield a resulting projection
matrix

Viewing, projections Hofstra University 59
General Perspective Projection
Projection converts points in 3-D space to
points on the projection plane
Three steps (the graphics system implements
them):
Converts the viewing volume (general frustum) to
the canonical perspective view volume
Next converts the canonical perspective view
volume to the canonical orthographic view volume
Applys orthographic projection matrix

Viewing, projections Hofstra University 60
The “most” canonical view volume
Orthographic projection with respect to most
canonical view volume
Canonical view volumeis a 2x2x2 cubewhose center
is at the origin (defaultview volume)
How to clip?: simple
How to project?: no division
(-1,-1,1)
(1,1,-1)

Viewing, projections Hofstra University 61
General Orthogonal Projection
glMatrixMode(GL_PROJECTION);
glLoadIdentity( );
glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0);
determine which objects are clipped out
Projection Matrixmaps a view volumeto the canonical view volume

Viewing, projections Hofstra University 62
Projection Matrix
































1000
2
00
0
2
0
00
2
minmax
minmax
minmax
minmax
minmax
minmax
minmax
minmax
minmax
zz
zz
zz
yy
yy
yy
xx
xx
xx
STP

Viewing, projections Hofstra University 63
Oblique Projection
degree of obliqueness

Viewing, projections Hofstra University 64
Oblique Projection
shearing

Viewing, projections Hofstra University 65
Perspective Projection Matrices
Look for a transformation allows a simple
canonical projection by distorting the vertices
of an object
Three steps: 1) select canonical viewing
volume, 2) introduce the perspective
normalization transformationand 3) derive the
perspective projection matrix

Viewing, projections Hofstra University 66
Perspective Projection Matrices

Viewing, projections Hofstra University 67
Perspective Projection Matrices
N
N is called the perspective normalization matrix. It
converts a perspective projection to an orthogonal
projection

Viewing, projections Hofstra University 68
Projection and Shadows
Shadows are not geometric objectsbut
important for realism
A point is in a shadow if it is not illuminated by
any light source
A shadow polygonis a flat shadow that results
from projecting the original polygon onto a
surface

Viewing, projections Hofstra University 69
Projection and Shadows
use a modelview matrix
Tags