CIS 700/003: Real-Time Rendering
Spring 2014
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. PrerequisitesThis course is limited to 10 students, who must have:
Instructor
Patrick Cozzi, pjcozzi+cis700@gmail.com Teaching Assistant
Cheng-Tso Lin, otaku690@gmail.com Meeting
Monday, 6-9pm, SIG lab conference room
Guest Lectures
ProjectsWe will build:
We will also have an open-ended project where we each extend the engine. Potential projects include:
Papers and TalksTo 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. ProfilingWe 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. Grades
Academic IntegrityAn academic integrity violation will result in an F in this course. See Academic Integrity at the University of Pennsylvania: A Guide for Students. HardwareYou 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 565This 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. |