Real-Time Rendering & 3D Games Programming

COSC1224/1226

About

Introduction

COSC1224/1226 Real-Time Rendering and 3D Games Programming introduces key topics, principles and techniques for real-time rendering and 3D games programming. OpenGL is used as the 3D graphics library, with GLUT and SDL as the windowing libraries.

The subject assessment is 100% project work, this year consisting of three assignments. In past years it has consisted of a major and a minor project.

Intended Audience

COSC1224/1226 is available for students who have passed COSC1186/1187 Interactive 3D Graphics. With permission it may also be available to students who have not done or passed COSC1186/1187.

Students should be familiar with advanced algorithms and dynamic data structures equivalent to COSC2123/1285 Algorithms and Analysis, as well as have extensive skill in the C programming language, equivalent to COSC1283/1284 Programming Techniques.

History and Future

COSC1224/1226 ran for the first time in semester 2 of 2000 where its code was CS549. CS549 replaced CS547 Advanced Computer Graphicsand included a major change of emphasis (including a switch of emphasis to real-time rendering and removal of material on ray-tracing and radiosity).

Equipment

The main equipment are the machines in the Sutherland Laboratory (14.11.38). They are running Fedora Linux.

Staff

Lecturer and Coordinator

Course Guide

The course guide may be found on the main RMIT website.

Local Games Companies, Associations and Websites

Local Games Conferences and Exhibitions

Resources

Guides for this course:

OpenGL documentation and manuals:

Schedule

Note: subject to change

Week Lecture Tutorial Assessment
1 Introduction to SDLand the Robot arm redbook example using SDL Introduction to SDL
2 Vertex Arrays (VAs) and Vertex Buffer Objects (VBOs).
VA and VBO examples.
Vertex Buffer Objects
3 Graphics Pipeline, Performance and Benchmarking. GPU architecture Raster, SM, Warp and Thread visualiser
4 Measuring and Graphing Performance Assignment work assistance Assignment 1
5 Shaders Introduction to Shaders
6 Lighting. sinewave3D-glm.cpp. Lighting
Mid semester break
7 Matrices. Transforming normals. Uniforms in shaders. Uniforms
8 Shader lighting calculations. Shader sine wave calculations. Shader Lighting Get at least per-vertex lighting working in shaders.
Shader (GPU) sine wave calculations.
Assignment Assistance
Assignment 2
9 Collision detection and Collision dynamics 1D Collisions
10 Spatial data structures Spatial Data Structures
11 Noise. Guest speaker: graphics research Circle-polygon collision detection. Assignment assistance.
12 Guest Industry Speakers Assignment assistance Assignment 3