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.