|
||
Project 2
|
||
This project will introduce you to the consepts of 3D viewing. It will
also provide you with an understanding of illumination models.GoalsYou should be able to:
3D viewingThe model for perspective projection is described here. You are not allowed to use OpenGL routines for 3D-viewing, however, you will need the routines to draw lines and polygons.Wireframe and flat shadingYour program should be able to present the 3D object in both wireframe and flat shaded mode. See screenshoots for samples. The simple illumination model is described here.User interfaceYour GUI should allow easy adjustments of the parameters for viewing (At point, From point, Up vector and Angle) and for shading (ka, kd, ks, Ia, Ip, n (phong constant) and light source point). We strongly recommend you to use at least GLUT popup menus but feel to use any menu system. Please, do not use a keyboard-only UI.It is also a good ide to be able to show the normals of all polygons and the axis of the coordinate system. The hidden surface problem should be solved with backface culling and painters algorithm. On 3D objects where the inside can be seen, a second color should be used to distiguish inside from outside. It is not neccesary to be able to change the inside color, just use any good fixed value. See screenshoots for sample parameters. Bonus pointsFor a correct solution and demo, you will earn 6 points. For a really good presentation and extra/good functionality, you can be rewarded up to 3 points. Some examples of extra functionality is;
What to hand inYou should hand in a detailed users guide and a nice printout of the source code. Remember also to describe all algorithms you use that are not mentioned in this specification. Your program must be compiled and runnable under Linux. The project due is Monday 6 December 2004 at 13.15. |
||
|