Week 9
1 | Implement Blinn-Phong shading for rays that intersect objects. |
2 | Trace a shadow ray from the shaded point to point light sources. |
3 | Modify your Image class to also read a ppm texture. Implement texture maps for sphere, cylinder and triangle. |
4 | Replicate (not necessarily pixel-perfect) the sample scenes provided. |
Week 8
1 | Complete and test ppm image writer. You can write an arbitrary pattern (chequerboard) to test your writer. |
2 | Write the camera class with the pixel to ray mapping. test your coordinate transformation. |
3 | Write objects sphere, triangle and cylinder. Test your intersection routines. |
4 | Test your basic intersection routines using the binary ppm json provided. |
Week 4
1 | Capture textures from your real world object(s). |
2 | Render your virtual object(s) to show reflection of textures. |
3 | Capture shadows from your virtual objects. |
4 | Composite all effects. If you find errors in perspective, try to use a principled way to estimate camera parameters. |
Week 3
1 | Download and install Blender. Create your first scene. |
2 | Model the light in your scene, select a 3D model from free online libraries such as Turbosquid and render your virtual object. Please respect copyrights. |
3 | Composite your rendered object into your photograph using an image editor such as GIMP. You may choose to either do this by carefullly lassoing around the virtual object in the rendered image and pasting it into your photograph, or by manipulating the alpha channel of the rendered image using appropriate Blender settings. |
4 | By the end of the week you should have your first iteration, with no real shadows or interreflections. You might need to spend some time tweaking your camera view in Blenders so that the composited image looks plausible. |
Week 2
1 | Familiarise yourself with the specifications for Coursework 1. |
2 | Download and install the recommended tools for CW1. |
3 | Assemble the real scene for CW1 and record the relevant measurements. Ideally you should have finished Steps 1 and 2 (see Section 5) by the end of week 2. |
Week 1
1 | Set up your Large language model (LLM) of choice. It is recommended that you use the free version of OpenAI's ChatGPT by signing up. Alternatively, you may use Llama or some other open source LLM but at your own risk. We have only tested the feasibility of the coursework with ChatGPT. |
2 | It is also recommended that you sign up for a free account for co-pilot which is another tool that can help with C++ code generation. If you plan to use this tool, it is strongly recommended that you use the free (student) edition rather than the trial which will expire midway through the course. For this, sign up to GitHub's global campus using your university email and student id. First, your application will be approved and then you will have access to the benefits (including co-pilot). |
3 | Both the above steps could take some time for approval. So, please do this as soon as possible. |
Week 0
1 | Register for the course. |
2 | Check that you have access on Learn to the course's Piazza page. |
3 | Check the course website. |
Instructor | TA1 | TA2 | Discussion | Lectures | Tutorials |
Piazza |
40 George Sq. LT A (Mon 16:10) Appleton Tower LT 3 (Thu 13:10) |
40 George Sq. Lower Teaching Hub (Grp 1, 2) |
|||
Kartic Subr | Daniel Bilc | Sean Memery |
Course guidelines
|
# | Lecture Title | Reading | Date | Slides |
1 | Introduction | 18/09 | ||
2 | Graphics tools | 21/09 | ||
3 | Imaging: radiometry and photometry | 18.1, 18.3 and Ch. 19 from FCG | 25/09 | |
4 | Cameras | Ch. 6 from FCG | 28/09 | |
5 | Basic Modelling | Blender intro: model a bench | 02/10 | |
6 | Raytracing: introduction | This article. | 05/10 | |
7 | Raytracing: advanced | 09/10 | ||
8 | Numerical integration | 12/10 | .pdf .zip (code) | |
9 | Monte Carlo | this document | 16/10 | .pdf .zip (code) |
- - - - - - - - No Lecture - - - - - - - - - | 19/10 | |||
10 | C++ Programming with GPT and co-pilot | 23/10 | ||
11 | Presentations: CW1 | 26/10 | ||
12 | Presentations: CW1 | 30/10 | ||
13 | Light transport: path tracing | 02/11 | ||
14 | Sampling and reconstruction | Ch 9 | 06/11 | |
15 | Sampling II | Slides from our course at SIGGRAPH | 09/11 | Part 1 and 2 |
16 | Volume Scattering | 13/11 | Part 1 and 2 | |
17 | Video lecture: Fast rendering pipelines I | 16/11 | via Learn Ultra | |
18 | Video lecture: Fast rendering pipelines II | 20/11 | via Learn Ultra | |
19 | Machine learning in rendering, conclusion and goodbyes | 23/11 |
* tentative topic-list (above) may be adapted to accommodate dynamic requirements.
# | week | |
1 | 3 | Blender modeling |
2 | 4 | Blender scripting |
3 | 6 | Coding a raytracer |
4 | 8 | Coding a path tracer |
Matt Pharr, Greg Humphreys & Wenzel Jakob,
Physically Based Rendering (Third edition)The book is currently freely available online. |
|
Peter Shirley, Trevor David Black & Steve Hollasch,
Ray tracing in one weekendThe book is currently freely available online. |
|
Steve Marschner & Peter Shirley
Fundamentals of Computer GraphicsThe book is available for free online access in our library. |