Computer Graphics I
4003-570-01 / 4005-761-01
Homework #2: 3D Viewing in
OpenGL.
Date assigned:
April 22, 2008
Date due: April 29, 2008 at 11:59 p.m.
Drop box available
at myCourses
The goal
of this homework is to provide you with some experience in 3D Viewing using
OpenGL.
The exercises are based
on the projection
tutorial created by Nate Robbins. You can obtain this tutorial at the
following places:
Download the
projection
tutorial app
Download the contents
of the data directory (There is a data.zip file in the directory)
You can submit answers
for the homework as many times as you like up to the due date. Your last
submission will be graded.
I would suggest that
you copy and paste the questions into some text editor and write the answers
below each question.
Projections
Use your experimentation with the SIGGRAPH tutorial on projections and your
textbook to answer the following questions: (BE SURE to reset the parameters
between each question to isolate the cause and effects. This can be done
using the menu that appears if the right mouse button is held down while over
the textual area or by typing "r".)
- For Perspective Projection using gluPerspective:
- How does the image change if you make the fovy argument of
the gluPerspective parameter list smaller? larger?
- How does the image change if you make the aspect argument of
the gluPerspective parameter list smaller? larger?
- How does the image change if you make the zNear argument of
the gluPerspective parameter list smaller? larger?
- How does the image change if you make the zFar argument of
the gluPerspective parameter list smaller? larger?
- How does the image change of the x component of the eye
triplet is made larger? smaller?
- How does the image change of the y component of the eye
triplet is made larger? smaller?
- How does the image change of the z component of the eye
triplet is made larger? smaller?
- How does the image change of the x component of the center
triplet is made larger? smaller?
- How does the image change of the y component of the center
triplet is made larger? smaller?
- How does the image change of the z component of the center
triplet is made larger? smaller?
- How does the image change of the x component of the up
triplet is made larger? smaller?
- How does the image change of the y component of the up
triplet is made larger? smaller?
- How does the image change of the z component of the up
triplet is made larger? smaller?
- For Perspective Projection using glFrustum
- How does the image change if the left parameter of the
glFrustum call is made larger? smaller?
- How does the image change if the right parameter of the
glFrustum call is made larger? smaller?
- How does the image change if the bottom parameter of the
glFrustum call is made larger? smaller?
- How does the image change if the top parameter of the
glFrustum call is made larger? smaller?
- How does the image change if the near parameter of the
glFrustum call is made larger? smaller?
- How does the image change if the far parameter of the
glFrustum call is made larger? smaller?
- Do the gluLookAt parameters affect the image in the same way
using glFrustum as they do using gluPerspective? If not,
in what way do the causes and effects differ?
- Why do the zNear and zFar parameters have different effects on the
image when using glFrustum and gluPerspective?
- For Parallel or Orthographic Projection:
- How does the image change if the left parameter of the
glOrtho call is made larger? smaller?
- How does the image change if the right parameter of the
glOrtho call is made larger? smaller?
- How does the image change if the bottom parameter of the
glOrtho call is made larger? smaller?
- How does the image change if the top parameter of the
glOrtho call is made larger? smaller?
- How does the image change if the near parameter of the
glOrtho call is made larger? smaller?
- How does the image change if the far parameter of the
glOrtho call is made larger? smaller?
- Which of the following has a different effect in parallel projection
than it does in perspective projection? If the effect is the same,
indicate so. If it is different, tell how.
- How does the image change of the x component of the
eye triplet is made larger? smaller?
- How does the image change of the y component of the
eye triplet is made larger? smaller?
- How does the image change of the z component of the
eye triplet is made larger? smaller?
- How does the image change of the x component of the
center triplet is made larger? smaller?
- How does the image change of the y component of the
center triplet is made larger? smaller?
- How does the image change of the z component of the
center triplet is made larger? smaller?
- How does the image change of the x component of the up
triplet is made larger? smaller?
- How does the image change of the y component of the up
triplet is made larger? smaller?
- How does the image change of the z component of the up
triplet is made larger? smaller?
- For all types of projections:
- The three triplets of the gluLookAt call specify which
coordinate system?
- The eye triplet represents what in this coordinate system?
- The center or point to triplet represents what in this
coordinate system?
- The up triplet represents what in this coordinate system?
- Which entity does gluPerspective, glFrustum, and
glOrtho specify?
- What is the main difference between parallel and perspective
projection?