Lab#4A: Composing Static Scenes Using Basic Geometric
Objects and 3D Transformations
Goal: Get
familiar with the use of 3D transformations through glTranslate, glRotate, and
glScale to arrange a scene composed of basic geometric objects that are implemented
by yourself or provided by GL, GLU, or GLUT.
- Task: Compose a static scene of your desk with at least 8
objects in the scene. For example, see View1.JPG
and View2.JPG the same scene viewed from different
setting of the camera.
- Skills: You should use 3D transformations provided by
glTranslate, glRotate, and glScale to arrange a scene composed of basic
geometric objects implemented by yourself or provided by GL, GLU, or GLUT.
- Geometric objects available in GLU and GLUT: Play with the
sample code here
to see the use of several types of geometric objects available in GLU and
GLUT. Press the space key to stop
or keep the automatic movement, press x, y, z keys to select the axis of
rotation, and press 0, 1, …,9 to select different geometric objects.
- Sample framework of code: Download and play with the code
basis provided here. Please carefully examine the code, and
add in your own additional code to create the scene you want.
- Bells and whistles: The code basis only uses a single buffer
for displaying the static scene viewed from a fixed camera setting. You
can use double buffers, and add the capacity of a moving camera like what
you did in Lab 3A and 3B.
- Submit
your source code together with a self-evaluation report as
a zip file under Canvas.
/******************************************************************/
Play
with transformation.exe from Nate Robin’s tutor
repository to feel the effects of 3D transformations and
its relationship with the GL_MODELVIEW matrix stack.
gl functions:
regarding basic 3D transformation:
Review Chapter 3 of the
OpenGL programming guide in last reading.
And the references in the blue book regarding
- glMatrixMode
- glTranslate
- glRotate
- glScale
- glPushMatrix
- glPopMatrix
glu geometric objects: The current reading of the blue book
regarding
- gluNewQuadric,
- gluQuadricDrawStyle,
- gluCylinder,
- gluSphere,
- gluDisk,
- gluPartialDisk
glut
geometric objects: The current reading of section 11 of GLUT 3.0
specification on several types of geometric objects available in
GLUT.