Text version | Website feedback | Campus Portal | Campus email: Hull / Scarborough

MSc in Games Programming

Sample C++ Programming Assignment

Module

C++ Programming and Design

Title

Terrain visualisation

 

You are required to develop a real-time terrain visualization tool written in MFC, C++ and OpenGL.  The tool is required to display a fully textured undulating terrain surface as both perspective and plan views and to permit the user to move about the terrain surface.

Detailed requirements:

1.     Two viewports are required within the main application window

a.      A perspective view of the terrain.  The perspective camera position, pitch and yaw are controlled from the keyboard or mouse.

b.     A plan map view of the terrain, using orthographic projection.  The orthographic camera is kept in sync with the perspective view camera.

2.     The terrain surface is generated from separate DEM (Digital Elevation Models) files.  Each DEM file provides height data at 25m resolution for one square kilometre tile of terrain.  The files are in ASCII format and will be supplied.

3.     A paging system is to be implemented.  The application is only permitted to hold 9 tiles of terrain data in memory at any one time.  As the perspective camera is moved across the terrain surface the paging system loads and unloads tiles to ensure that the nine closest tiles to the perspective camera are always available in memory.

4.     At least one directional light is included in the scene.

5.     The terrain surface is represented in 4 alternate ways (switchable from the keyboard):

a.      Wire frame

b.     Flat shaded

c.      Smooth shaded

d.     Textured

6.     Aerial photos of the terrain surface are textured onto each tile.  An image associated with each of the DEM files, will be supplied.

7.     An ASCII index file is to be created (and used by the application) that links the DEM files and texture files with their position on the terrain surface.

8.     A class diagram that clearly describes your design.

9.     The C++ is to be compiled and linked under VS.Net

10.  The code is to be portable across any standard OpenGL PC platform and therefore should only use basic commands (avoid vendor specific extensions)

Dates

Date of publication

15th October 2002

Date for submission

9:00 on 1st November 2002

This assignment is to be placed in the white box (outside the Dept. Office) no later than the time and date shown above, unless an extension has been authorised.   Extension forms are available from the Dept. Office.

BEFORE submission, each student must complete a cover sheet (attached below).

Late penalties

For work submitted late the penalty is loss of 20% marks per day. Work that is 5 or more days late will automatically be graded as FAIL, and no re-submission will be allowed.

For full details, see student handbook.

Format of the Submission

The submission cover sheet (attached below) forms the front page of your submission.

Please use the submission cover sheet to perform a self assessment of your submission.  You should indicate the percentage with which your submission meets each requirement.  Provide appropriate comments in the space provided.

Submit this cover sheet as a Rich Text Format (rtf) file within your submission zip file.

The details of how to submit are explained in Submission policy for module 08960.

Plagiarism policy

The work which you hand in must be your own. Sharing of data is not allowed unless the assignment specifically permits it. Your attention is drawn to Plagiarism policy for module 08960.


 

ASSESSMENT STRATEGY

Module 08960

The assessment strategy comprises 30% of the module marks.

The overall assessment strategy is designed to evaluate the student’s achievement of the module Learning Outcomes, and is subdivided as follows:

 

 

Learning outcome

1

Demonstrate awareness of performance issues and programming pitfalls within the C++ language

2

Implement an effective real-time C++ application within an integrated development environment

Module 08961

The assessment strategy comprises 10% of the module marks.

The overall assessment strategy is designed to evaluate the student’s achievement of the module Learning Outcomes, and is subdivided as follows:

 

 

Learning outcome

1

Design 3D graphics programs for real-time graphics

2

Implement 2D and 3D graphics programs in C/C++ using the OpenGL API

3

Use the mathematical techniques of vectors and matrices


 

SUBMISSION COVER SHEET

(To be complete by the student and submitted with the assessment)

Module

08960 / 08961

Title

Terrain visualisation

Student name

 

 

 

Requirements

% complete

Comments

1

Two viewports:

a.      A perspective view. The perspective camera position, pitch and yaw are controlled from the keyboard or mouse.

b.     A plan map.  The orthographic camera is kept in sync with the perspective view camera.

 

 

2

Generation of terrain surface from DEM files

 

 

3

Paging system that loads and unloads tiles from memory

 

 

4

Light sources

 

 

5

Terrain surface rendering:

  1. Wire frame
  2. Flat shaded
  3. Smooth shaded
  4. Textured

 

 

6

Texture mapped aerial photographs

 

 

7

ASCII index file to link the DEM files and texture files with their position on the terrain surface

 

 

8

Class diagram

 

 

9

VS.Net compatible C++

 

 

10

Portable OpenGL

 

 

Note: If you submit your assessment you are implicitly stating that your code is in complete compliance with the plagiarism policy for this module.


 

FEEDBACK ON ASSESSED COURSEWORK

(An exemplar of the form returned to the student)

Module

08960 / 08961

Title

Terrain visualisation

Student name

 

 

Note that the standard achieved is scaled as Poor (P), Satisfactory (S), Good (G) or Very Good (VG)

Assessment criteria

Learning
Outcome

Standard achieved

Mark

 

P

S

G

VG

 

 

 

 

 

 

 

 

 

 

 

 

Total Mark