CIS 700/003: Real-Time Rendering

This pragmatic course prepares you to be an engine or tools developer in games or any industry using real-time graphics. As a class, we will build a graphics engine from the ground up designed for today's GPUs with programmable vertex, fragment, geometry, tessellation, and compute shaders. In addition to graphics, we'll learn software design, teamwork, source control (git), profiling tools (web tracing framework), and software development best practices (code reviews in particular).

This course is run like a startup with the students as founders, the teaching assistant as CTO, and the instructor as the board of directors.

Expect a ton of work. We will write a lot of code, read lots of papers, and give talks.

Prerequisites

This course is limited to 10 students, who must have:

Passion for computer graphics.

Strong C++ and basic familiarly with OpenGL.

CIS 460/560: Introduction to Computer Graphics. Preferably received an A.

Each student will give a couple 40-minute talks throughout the semester to bring the rest of the team up to speed on a topic so we can collectively decide how it will fit into our engine. Every week a student will either be preparing a talk or writing engine code.

Profiling

We will have a major focus on performance. In addition to our topic talks, we will each select an open-source WebGL engine/app to profile with Web Tracing Framework. We will give a 10-minute talk on our analysis including optimization recommendations.

Academic Integrity

Hardware

You must have a video card that supports OpenGL 4.3. These cards have been available since 2009 starting with the NVIDIA GeForce 400 series and Radeon HD 5000 series.

Visual Studio is also required for our C++ development. Our JavaScript and WebGL development can be done on any platform.

Relationship to CIS 565

This course and CIS 565 (GPU Programming and Architecture) both cover graphics development using the GPU. The difference is that CIS 565 covers more GPU architecture and GPU computing (general massively parallel programming) and has several smaller projects. This course focuses purely on graphics, using WebGL and OpenGL, and engine development in general.

This course is recommended for students who can't take CIS 565 in Fall 2014.