INM376: Computer Graphics using OpenGL
Your task is to create a 3D graphics scene using OpenGL matching the theme described above. Your creation will include a route following a non-linear path on which the game or simulation will occur. There will be a series of camera views. You will create the scene using primitive shapes, as well as freely available downloaded mesh models. The scene will include computer-generated special effects and lights that illuminate the scene dynamically. The project can be implemented in a variety of ways. You are welcome to take some liberty with the theme as long as your project delivers against the requirements described below.
Use the “OpenGL Template” provided on Moodle as the basis of your work. This should help provide the base functionality for the project.
You are to use OpenGL, C++, and GLSL for this coursework, using the Windows API. It is recommended that you use OpenGL 4.0 or higher, although you are permitted to use OpenGL 3.3 (if your development hardware does not support OpenGL 4.0). The rendering context must be configured as a core context. You are to program the game using Visual Studio 2017 or 2019. You are welcome to include other libraries as long as they are sufficiently packaged with both the source code and the final deployed executables. Deprecated fixed function programming through use of a compatibility context is prohibited and will receive zero marks – this is a module on modern OpenGL programming.
Spend some time familiarising yourself with the OpenGL template, as well as labs and code samples available via Moodle. Look at online tutorials on modern OpenGL, and refer to the books recommended for the module. At times you may wish to discuss the methods used with your colleagues. This is encouraged. The coursework is, however, individual. Plagiarism will be dealt with directly by the department’s senior staff and may lead to course disqualification. Your work must be your own and you must cite any and all resources used.
1. Deliverables — Project report and source code (15%):
• Prepare a project report (maximum 15 pages) in Word or PDF format. (10%)
o Overview of your project; a description of your concept and game or application.
o Include a prototype sketch or annotated screengrab showing a top-down view of your scene.
o For each section (Parts 2 – 5 below), list briefly the requirements that were implemented
and relevant details on the implementation. If a requirement was skipped, say so.
o List your scene’s assets, including any websites where objects were downloaded – URL, date of download, and license for use. Reference the source of all meshes used in your coursework, including original files you designed (if relevant). Document any process used to convert to the meshes in the final deliverable. Reference any external source code used.
o Include a discussion section reflecting on the project. Consider the strengths and weaknesses of the game implemented and what you have accomplished in the time provided. Also discuss what would be required to expand the project into a more complete game or simulation.
• Source code to be commented and follow a logical design, organisation, and coding style (i.e., use of classes). (5%)
2. Route and camera (25%):
• Route (15%)
o Create a 3D non-linear centreline for your path, based on splines with C1 or higher
o Create primitives based on the centreline to generate a visualisation of the path/track on which the gameplay will occur.
o Ensure your primitives have correctly oriented normals and texture coordinates. Render the route with appropriate texturing and lighting.
o Demarcate the edge of the route. Some options include (1) use texture mapping (2) generating primitives (such as short walls or rings) or (3) placing objects like meshes at regular intervals along the path.