Welcome to ECSE 689
This class explores the technical details behind image synthesis techniques used for realistic visual effects in modern feature films, games, and architectural & product visualizations. Starting with the fundamentals of radiometry, the study and measurement of electromagnetic radiation (like visible light), we present mathematical models of how light propagates in an environment to eventually form an image on a sensor (e.g., a camera's film or the human eye).
Students will code the numerical methods used in industry for visual effects: each student will be guided through the implementation of a renderer capable of generating realistic images based on the physics of light. You can refer to the topics we'll cover in this class, and the programming assignments, below.
Radiometry & Physics-based Shading
What is light? What are the physical units and intuitive interpretations behind the quantities most commonly used to measure light? How does light interact with a surface? What causes the differences in the appearance of e.g., a metal and a plastic?
We'll begin by quickly establishing a common language to use when discussing the physics of light. The emphasis here, as with the entire course, will be to build an intuition of these concepts, rather than developing overly complex and unnecessarily nuanced mathematical constructs.
Light Transport & Shading Algorithms
Once we understand how light behaves, we'll be able to derive the rendering equation, which governs the energy equilibrium of visible light in an environment. By solving the rendering equation, we can generate realistic images of virtual worlds.
The course details two classes of numerical methods for solving the rendering equation: Monte Carlo and density-estimation techniques. These methods apply to other problems in engineering, physics, biology and statistics; as such, students will develop a very practical "numerical toolbox" for solving many problems they'll face throughout their careers.
Getting your Hands Dirty
After establishing a solid (but not overly complex) theoretical foundation based on intuition and simple numerical principles, the focus will shift to developing practical hands-on experience.
While the emphasis here will be on incrementally building a realistic rendering engine through a sequence of coding tasks, students will also develop the technical and soft skills necessary to succeed in an academic and industrial setting. There are no exams in this course. Students will be evaluated primarily on their ability to build and exercise practical technical skills.