Upload
joel-cole
View
222
Download
0
Tags:
Embed Size (px)
Citation preview
p_16_10 @hotmail.com it4ever2008 @hotmail.com
1
University of Palestine
Computer GraphicsITGD3107
Prepare:
Mohammed J. el-masre
Nidal M. El-Borbar
Supervision:
Dr. Sana'a
Presentation name :
Three Dimensional Viewing
p_16_10 @hotmail.com it4ever2008 @hotmail.com
2
Contents
3D Viewing Camera Analogy Viewing Pipeline Camera Modeling w/ OpenGL Projections Types of Projections Perspective Projection Parallel Projection Projection Matrix Projection of Lines 3D Viewing with OpenGL Matrix ModesThree Dimensional Viewing
p_16_10 @hotmail.com it4ever2008 @hotmail.com
3
3D Viewing
The steps for computer generation of a view of a three dimensional scene are somewhat analogous to the processes involved in taking a photograph.
p_16_10 @hotmail.com it4ever2008 @hotmail.com
4
Camera Analogy
Position
Orientation
Window (aperture)
of the camera
1. Viewing position2. Camera
orientation3. Size of clipping
window
p_16_10 @hotmail.com it4ever2008 @hotmail.com
5
Viewing Pipeline
The general processing steps for modeling and converting a world coordinate description of a scene to device coordinates:
p_16_10 @hotmail.com it4ever2008 @hotmail.com
6
Viewing Pipeline
1. Construct the shape of individual objects in a scene within modeling coordinate, and place the objects into appropriate positions within the scene (world coordinate).
p_16_10 @hotmail.com it4ever2008 @hotmail.com
7
Viewing Pipeline
World coordinate positions are converted to viewing coordinates.
p_16_10 @hotmail.com it4ever2008 @hotmail.com
8
Viewing Pipeline
Convert the viewing coordinate description of the scene to coordinate positions on the projection plane.
p_16_10 @hotmail.com it4ever2008 @hotmail.com
9
Viewing Pipeline
Positions on the projection plane, will then mapped
to the Normalized coordinate and output device.
p_16_10 @hotmail.com it4ever2008 @hotmail.com
10
Camera Modeling w/ OpenGL
glMatrixMode(GL_MODELVIEW)...
glMatrixMode(GL_PROJECTION)...
glViewport(0,0,xres,yres)
camera coordinatesystem
viewport coordinatesystem
device/screencoordinate system
p_16_10 @hotmail.com it4ever2008 @hotmail.com
11
ProjectionsOnce the view volume is
determined, a projection transformation will convert the object in the 3D view volume to a 2D image on the projection plane.
p_16_10 @hotmail.com it4ever2008 @hotmail.com
12
Types of Projections
Perspective Projection Parallel Projection
p_16_10 @hotmail.com it4ever2008 @hotmail.com
13
Perspective Projection (1/2) Give a realistic view of 3D objects, but
does not preserve shape of object or scale Perspective images of parallel lines not
parallel with projection plane converge to a point called vanishing point
Size of object is diminished with distance Used in architectural, engineering,
industrial design, and advertising drawings
p_16_10 @hotmail.com it4ever2008 @hotmail.com
14
Perspective Projection (2/2)
3-point perspective
1-point perspective
2-point perspective
Most popular
p_16_10 @hotmail.com it4ever2008 @hotmail.com
15
Parallel Projection Accurate and same-scale
measurements
Not realistic, and may require multiple projections to get a complete feeling of the object
Used in drawings of machine parts and in working architectural drawings
p_16_10 @hotmail.com it4ever2008 @hotmail.com
16
Oblique
Parallel Projection (3/3)
Isometric
cavalier cabinet
Multi-view orthographic
p_16_10 @hotmail.com it4ever2008 @hotmail.com
17
Projection Matrix (1/3)
xp
yp
d1
xyz1
= Mper/ort .
1 0 0 00 1 0 00 0 1 00 0 1/d 0
Mper =
1 0 0 00 1 0 00 0 0 d0 0 0 1
Mort =
Pp(xp,yp,d) = ???
P(x,y,z)
dCOP
z
x
y
p_16_10 @hotmail.com it4ever2008 @hotmail.com
18
Projection Matrix (2/3)
xp
yp
01
xyz1
= Mper/ort .
1 0 0 00 1 0 00 0 0 00 0 1/d 1
Mper =
1 0 0 00 1 0 00 0 0 00 0 0 1
Mort =
P(x,y,z)
d
Pp(xp,yp,0) = ???
COP z
x
y
p_16_10 @hotmail.com it4ever2008 @hotmail.com
19
Projection Matrix (3/3)
P(x,y,z)
d
Pp(xp,yp,0) = ???
COP
z
x or y
Q
(a, b, c)
1 0 –a/c da/c0 1 –b/c db/c0 0 –d/Q/c d2/Q/c+d0 0 –1/Q/c d/Q/c+1
Mgeneral =
p_16_10 @hotmail.com it4ever2008 @hotmail.com
20
Projection of Lines
dCOP
z
xy Parametric representation of a line that goes through P(px, py, pz) and has direction c = (cx, cy, cz)
l(t) = P+ct where t (-, + )
The projected line is
x(t) = d(px+cxt)/(pz+czt)
y(t) = d(py+cyt)/(pz+czt)
If the original line is parallel to the projection plane (cz = 0)x(t) = d(px+cxt)/pz, y(t) = d(py+cyt)/pz, the slope of the projected line is cy/cx, independent of the position of the original line. The projected lines of parallel lines must be parallel
p_16_10 @hotmail.com it4ever2008 @hotmail.com
21
3D Viewing with OpenGL Viewing transformation: set the position and
orientation of the viewpoint Modeling transformation: set the orientation of
the model (translate, rotate, scale) Projection transformation: set the view volume
and do the projection Viewport transformation: Set the viewport on
the computer screen where the scene will be drawn
p_16_10 @hotmail.com it4ever2008 @hotmail.com
22
Matrix Modes Modelview matrix
Set the viewpoint and object location by modifying this matrix
glMatrixMode(GL_MODELVIEW)
If projection matrix is modified Specify the view volume by modifying this
matrix glMatrixMode(GL_PROJECTION)
If texture matrix is modified glMatrixMode(GL_TEXTURE)
p_16_10 @hotmail.com it4ever2008 @hotmail.com
23
References & External links
•http://en.wikipedia.org/wiki/3dviewing•http://anonymouse.org/cgi-bin/anon-www.cgi/http://www.eazyupload.net/download/jtg3c0c6/0135309247.zip.htm•http://eazy1.eazyupload.net/download/0ea47c0c7d5c5b872be23f3a89330863/0135309247.zip•http://dl1.s24.ifile.it/9gtkix4c/prentice_hall_-_computer_graphics_c_version_2ed_-_hearn__baker.pdf
Our Book computer_graphics_c_version_2ed