CIS 700/003: Real-Time Rendering
University of Pennsylvania
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.
This course is limited to 10 students, who must have:
Patrick Cozzi, firstname.lastname@example.org
Cheng-Tso Lin, email@example.com
Monday, 6-9pm, SIG lab conference room
We will build:
We will also have an open-ended project where we each extend the engine. Potential projects include:
Papers and Talks
To support our engine development, we'll read selected
See the reading list.
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.
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.
An academic integrity violation will result in an F in this course. See Academic Integrity at the University of Pennsylvania: A Guide for Students.
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.