$25
In this assignment, you will develop a graphics application to display your version of an OpenGL Museum that houses a few interesting exhibits created using OpenGL models. The assignment task can be broadly divided into four sections:
Minimum requirements (10 marks): The scene should contain a set of minimum features as outlined in Section 2.
Extra features (5 marks): You can implement a set of extra features and gain up to a maximum of 5 marks. A few examples of such features are given in Section 3.
Rendering quality (3 marks): Up to 3 marks are allocated for the overall rendering quality of the scene, including animations (Section 4).
Report (2 marks): You should also prepare a brief report containing a few screenshots and a description of the scene (see Section 5).
2. Minimum Requirements
2.1 When the program is run, the opening scene should display a model of the museum building. This need not be a highly complex model. It could be constructed using a set of polygonal primitives, GLUT objects or surface design methods (see Section 6). The building should have an entrance into the interior where the models are displayed.
2.2 In the opening scene, the viewer must be able to navigate the camera using arrow keys to the interior of the building. The up and down arrow keys must move the camera forward and backward respectively, the left arrow key should change the direction of motion towards left by a certain angle, and the right arrow key should change the direction of motion towards right. You may define additional functions for processing keyboard, special key, and mouse inputs as needed. Please do not use passive mouse motion function. The initial camera position must be somewhere outside the museum entrance.
2.3 Inside the building, there must be at least three "museum exhibits". At least two of the models must display some animation (either initiated by a key press, or a continuous animation). Simple transformation sequences (e.g. a constant rotation about an axis) will not be counted as animations.
2.4 At least three different textures must be used in the scene. It is not necessary to texture map all surfaces. Please do not use very large images (10MB) as textures.
3. Extra Features
A list of possible features, and the approximate marks they would each gain if implemented correctly are given below.
• Planar shadows cast by at least one object
• A spot light on a moving/rotating object. The movement of the spotlight should be clearly visible.
• Physics based (e.g. gravity) animation. Give relevant equations in your report.
• A surface shape generated using a mathematical formula (e.g. paraboloids) or a complex design process. Please provide sufficient details in the report.
• Collision detection
• Sky box
• Particle systems
The marks associated with each feature should be taken to be indicative of the time and/or effort required to implement that feature. The list given above should not be taken as the complete set of features that can be implemented.
4. Rendering Quality
In the context of this assignment, rendering quality refers to the visual aesthetic quality of the models and animations displayed by the program. For example, slow and jittery animations, incorrectly rendered sky boxes and shadows, and improper illumination may cause marks to be deducted for poor rendering quality.
5. Report
The report should include the following sections:
• Your name and student number.
• A brief description (1 paragraph each) of each model, including any diagrams, sketches etc. used in the design of the models.
• At least two screenshots showing important aspects of the scene or animations.
• A brief description of each extra feature implemented, including relevant equations.
• A full list of control functions (keyboard, mouse, special keys) defined for interacting with the scene.
• References to sources of textures, algorithms, equations etc., used in your work.
You may include more than 4 pages in the report, only if absolutely necessary. Please submit your report as a single PDF file.
6. Models and Animations
The object models in the scene may be constructed using any of the following methods:
• By transforming and combining a set of (at least three) GLUT/GLU objects such as spheres, cubes, cylinders etc. to form a composite model.
• By using a set of polygonal surfaces comprising of quads and triangles.
• By using surface generation methods such as sweep surfaces, surfaces of revolution etc.
You are not required to design or use highly complex mesh models for this assignment. Designing objects using modeling packages such as Max, Blender, Lightwave, etc., will not give you any extra points. Downloading pre-built mesh models from the Internet and using them in the program will also not give you any marks.
You may use parts of lab code and resources (models, images, image loading functions). Models and animations developed in the lab will give you marks only if significant changes or enhancements have been made to them.
7. Program Development:
• Please do not use source codes of programs from online repositories, tutorials, and books.
• Develop your program in C/C++ language using only OpenGL 2 API. Please do not use OpenGL 4 code (vertex/fragment shaders etc.), or extensions (e.g. ARB, EXT etc.) that are not part of the standard OpenGL API