COSC363: Computer Graphics Assignment 1
Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit
COSC363: Computer Graphics
Assignment 1
2022
Faversham Express
1. Introduction
London-Faversham High Speed is a popular railway route in Train Simulator (https://live.dovetailgames.com/live/train-simulator). In this assignment, you will create a graphics display of a simple railway scene consisting of models of a toy train, tracks, railway station and a few other interesting features and animations as detailed below.
2. Task Description
In Lab-02 (week 3), you will develop a graphics application using OpenGL-2 API and GLUT objects to build and display a basic model train scene. This 3D scene can be further enhanced (i) with the addition of more models (such as a railway station, a tunnel) that complement the scene, (ii) by improving the models used for the train and tracks, and (iii) by adding more features (such as textures) to the scene. You are not required to create highly complex models or animation sequences for this assignment. The assignment task can be broadly divided into four sections:
Minimum requirements (8 marks): The scene should contain a set of minimum features as outlined in Section 3.
Extra features (7 marks): You can implement a set of extra features and gain up to a maximum of 6 marks. A few examples of such features are given in Section 4.
Rendering quality (3 marks): Up to 3 marks are allocated for the overall rendering quality of the scene, including animations (see Section 5).
Report (2 marks): You should also prepare a brief report containing a few screenshots and a description ofthe scene (see Section 6).
3. Minimum Requirements: The Basic Railway Scene (max. 8 Marks)
3.1 (2 Marks) The scene should contain a loop track and a model of a train (locomotive + a few wagons). This part of the assignment will be developed in Lab-02.
3.2 (4 Marks) The scene should contain models of a railway station and a tunnel.
3.3 (1 Mark) The train model should move continuously on the track, stopping at the railway station for a few seconds in each lap.
3.4 (1 Mark) The viewer must be able to navigate through the scene using camera movements. For this, we recommend using the following special key bindings: Up arrow: Move camera forward in the current direction
Down arrow: Move camera backward in the current direction
Left arrow: Change the current direction towards left by a certain angle Right arrow: Change the current direction towards right by a certain angle Page-up: Increase camera height
Page-down: Decrease camera height
You may define additional functions for processing keyboard, special key, and mouse inputs as needed. Please do not use passive mouse motion function or the idle function for user interaction.
Please note that it is not essential to include a spotlight in the scene. If a spotlight is
not used, the floor plane may be constructed using a single quad.
4. Extra Features: Additions and Enhancements (max. 7 Marks)
A list of possible features, and the approximate marks they would each gain if implemented correctly (subject to a maximum of 7 marks) are given below.
1. Track enhancements (max. 3 marks): A non-circular loop track may be designed and added to the scene. Please provide details including drawings, screenshots, equations used for the construction of tracks, transformations applied to the train model etc., in your report.
2. Model enhancements (max. 4 marks): This includes any of the following: enhancements to the model used in Lab-2, texture mapping, and any other model features (such as rotating wheels, lights, particle systems for modelling smoke/steam, track misalignment corrections etc.)
3. Scene enhancements (max. 2 marks): A maximum of 2 marks will be given for animated models (eg., barrier arm, vehicles) and objects that change their appearance (e.g. railway signaling lights)
• View mode enhancements (max. 1 mark): In addition to the camera view mode specified in Section 3, you may include the following two view modes (i) a cab view providing the driver’s view that moves along with the train, (ii) a view ofthe train from a key location such as the railway station or a level crossing. Please define ‘c’ as the toggle key to switch between the three camera modes.
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. The 8 marks for the minimum requirements in Section 3 are relatively easy to get when compared to the marks gained
for a number of extension features in the list above.
5. Rendering Quality (max. 3 Marks)
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, and improper illumination may cause marks to be deducted for poor
rendering quality.
6. Report (max. number of pages: 4, max. 2 marks)
The report should include the following sections:
• Your name and student number.
• A brief description ofthe scene.
• At least two screenshots showing important aspects ofthe scene or animations.
• A brief description of each extra feature implemented, including any relevant equations. Please also include any diagrams, sketches etc. used in the design of the models and tracks.
• A full list of control functions (keyboard, mouse, special keys) defined for interacting with the scene.
• Build commands or instructions for compiling and running the program.
• References to sources of textures, algorithms, equations etc., used in your work. You need not include references to material provided in the course (lab/lecture material).
You may include more than 4 pages in the report, only if absolutely necessary. Please submit your report as a single PDF file.
7. Models, Textures and Animations
The object models in the scene may be constructed using any of the following methods:
• By transforming and combining a set of GLUT/GLU objects such as spheres, cubes, cylinders etc. to form a composite model.
• By using a set of polygonal shapes comprising of quads and triangles. Shapes may be generated procedurally using mathematical functions.
• 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. Please do not use models designed using modeling packages such as Max, Blender, Lightwave, etc., or pre-built mesh models downloaded from the Internet.
You may use parts of lab code and other resources (models, images, image loading functions) supplied with course materials.
8. 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 ofthe standard OpenGL API.
• Please make sure that your program can be compiled and run on CSSE lab machines.
• Your submission will not be marked for code readability or optimization. However, you are encouraged to prepare well documented and readable code.
• You will gain marks only for objects/features that are correctly and clearly displayed on the screen. A particular feature may be implemented correctly in code, but if the corresponding output is not clearly seen on the screen, you will not receive marks for that feature.
9. Timeline
Development of a basic model railway scene |
Lab 2, Week 3 |
Track design |
Lecture, 14 Mar |
Texture mapping Camera motion |
Lecture, 17 Mar Lab 3, Week 4 |
Surface modelling |
Lecture, 21 Mar Lab 4, Week 5 |
Assignment help |
Lab 6, Week 7 |
Assignment submission |
8 Apr |
10. Assignment Submission
Submit electronically (using Learn), the source code and all supplementary files (models, images etc.) needed to run the program. Please also submit your report in PDF format. The files should all be packaged together and submitted as a single .zip file.
This is not a group project. Your assignment submission must represent your own individual work. In particular, students are not permitted to share program source code in any way.
Important dates:
• The deadline for submission is 11:55pm, Fri 8 April 2022.
• Drop-dead date and time: 11:55pm, Fri 15 April 2022.
11. Miscellaneous
1. Check regularly on the Learn system forums for spec updates and clarifications.
2. Standard departmental regulations regarding dishonest practices apply.
2022-03-17