Weekly checklist

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.

Contact

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)

Lister Learning and Teaching Centre (Grp 3)

Kartic Subr Daniel Bilc Sean Memery

Course guidelines

  • Academic misconduct is viewed as a serious offence. Please read this guide document.
  • Rule 3 of the informatics guidelines will apply to late submissions in this course.
  • There is no exam for this course.
  • Final marks will be the average of 2 coursework (CW) assignments, each worth 100 marks.
  • Expect about 1 to 1.5h of independent effort per day towards this course.
  • The courseworks are due at the end of weeks 5 and 10 respectively.
  • 10% of each CW will be assessed via a presentation. In case of exceptions, please contact the instructor.

Lectures

# Lecture Title Reading Date Slides
1 Introduction 18/09 .pdf
2 Graphics tools 21/09 .pdf
3 Imaging: radiometry and photometry 18.1, 18.3 and Ch. 19 from FCG 25/09 .pdf
4 Cameras Ch. 6 from FCG 28/09 .pdf
5 Basic Modelling Blender intro: model a bench 02/10 .pdf
6 Raytracing: introduction This article. 05/10 .pdf
7 Raytracing: advanced 09/10 .pdf
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 .pdf
14 Sampling and reconstruction Ch 9 06/11 .pdf
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 .pdf

* tentative topic-list (above) may be adapted to accommodate dynamic requirements.

Tutorials

# week
1 3 Blender modeling
2 4 Blender scripting
3 6 Coding a raytracer
4 8 Coding a path tracer

Coursework

# topic issued due files
1 Augmented reality 25-09-2023 20-10-2023 .pdf
2 Raytracer 30-10-2023 24-11-2023 .zip

Books

There is no text book for this course. Reading will be assigned for each lecture, from one of the following books available online. You are not expected to purchase these books.


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 weekend

The book is currently freely available online.

Steve Marschner & Peter Shirley
Fundamentals of Computer Graphics

The book is available for free online access in our library.


Other resources

  1. Tutorials on Blender
  2. Introduction to computer graphics by Steve Marschner, Cornell University.

Schedule