Objectives
- In this lab you will create an interesting virtual world with multiple
objects that can be independently manipulated.
- The objective of this lab is also to gain experience working with OpenGL
lights, materials, texture maps, and evaluators.
Basic requirements
- In the OpenGL viewer you've written in previous labs,
create an interesting scene with multiple objects (i.e., not just a cube).
You may import other people's models, but the creative idea of the overall
scene should be your own. You may learn and use other programs to help you do
the modelling (e.g., 3DSM, Rhino, Maya, etc.), but it's up to you to figure
out how to import the models into your program. Remember to give credit where
credit is due!
- You will be evaluated on the creativity/design of your virtual world, not
just the functionality.
- Add at least two OpenGL lights, and change the material properties of
the objects in the scene.
- Add a texture map to at least one object in the scene.
- Use an OpenGL evaluator in your scene somehow -- a Bezier curve or
surface, or a NURBS (using GLU). You can use evaluators to generate vertices,
normals, colours, or texture coordinates.
- Allow the user to pick an object to manipulate it independently of the
rest of the scene:
- To pick an object, you may wish to consider
selection mode, or
you could also just use an FLTK drop-down list.
- You may optionally wish to let the user pick lights, too, not just objects.
- Manipulation could mean translate/rotate/scale, or perhaps changing the
material properties.
Lab write-up
- Follow the template lab write-up
to document your program. Name your write-up:
your_name_lab5_writeup.doc (or .txt, etc.)
Put it in the same project directory as your code so that it will be
included in the tarball.
Electronic turn-in
- Put everything (C++ code, header files, executable, lab
write-up) into a tarball/ZIP and upload it to eCourses under "Lab5":
your_name_lab5.zip