Computer Graphics
links on the course Teams
Course description
An introduction to computer graphics with a focus on rendering and modelling. We cover the core mathematics — 2D and 3D transformations — and the two great rendering paradigms, ray tracing and rasterization, along with the geometric modelling of curves and surfaces. We look at how these components map onto modern graphics processors and their programming APIs, and we close with recent learning-based scene representations, including Neural Radiance Fields (NeRF) and 3D Gaussian Splatting. Throughout, students build working demos in C++ and OpenGL (GLSL or equivalent).
By the end of the course, you will be able to
- Apply the fundamental mathematics of image synthesis
- Implement a basic ray-tracing renderer
- Implement a rasterization rendering pipeline
- Explain the core functionality of the OpenGL API
- Write graphics programs using shader programming
- Model geometry with Bézier curves, splines, and NURBS
- Implement data structures for polygonal meshes
- Design and implement procedural synthesis methods
- Explain neural rendering (NeRF, 3D Gaussian Splatting)
Tentative schedule Fall 2026
- Sep 10Introduction to the course
- Sep 15Math review
- Sep 17Ray tracing — basics
- Sep 18Ray tracing — intersections
- Sep 22Blinn–Phong illumination model
- Sep 24Texture mapping
- Sep 29Antialiasing
- Oct 1Acceleration data structuresA1 out
- Oct 6Introduction to rasterization
- Oct 82D & 3D transformations
- Oct 13Quiz 1Quiz
- Oct 15Graphics pipeline, OpenGL
- Oct 20Shader programming
- Oct 22Viewing, clipping and cullingA1 due
- Oct 27Procedural modeling
- Oct 29Perlin noise & terrains
- Nov 3Curves and surfaces
- Nov 5Subdivision surfaces
- Nov 17Triangle meshes
- Nov 19Neural scene representations & NeRF
- Nov 243D Gaussian SplattingA2 out
- Nov 26Quiz 2Quiz
- Dec 1Introduction to animation
- Dec 3Rigging and keyframing
- Dec 9Review & discussionA2 due
Recitations Hands-on labs
- Rec 1Setting up the development environment
- Rec 2Vector operations (C++ classes, objects)
- Rec 3Blinn–Phong shading
- Rec 4Antialiasing using jittering supersampling
- Rec 5Texture mapping
- Rec 6Rasterization of line & triangle
- Rec 7Shader programming & textures
- Rec 8Perlin noise generation
- Rec 9Terrain and water
- Rec 10Skybox and texture blending
- Rec 11CPU Gaussian splat renderer
Grading
- Two programming assignments (2 × 20%), coded in C++
- Starter code provided on the GitHub repo; four weeks each
- Graded on algorithms, performance, and code design; submit via MS Teams with brief documentation
- Meeting the required feature set earns an A; going beyond (new features, efficiency, design) earns an A+
- No late assignments without prior arrangement at least 48 hours in advance
- Closed book, no electronics; SMU ID required
- Scheduled by the Registrar during the formal exam period
- Two quizzes (2 × 10%), held during the lecture hour
- If missed: contact the instructor within 48 hours and submit a Declaration of Extenuating Circumstances
- 7–8 C++ exercises; best 5 count (5 × 3%)
- Designed to help build the assignments; attendance required
- 7 days to submit; no late submissions
Final grades follow the letter-grade scale in Section 5 of the Academic Regulations. There is no curving or rank-based grading. Final marks are truncated to one decimal place and rounded (.5–.9 up, .0–.4 down) to the nearest whole number.
Textbooks
Key references Neural rendering
Foundational papers for the neural scene representation unit:
- NeRFB. Mildenhall, P. P. Srinivasan, M. Tancik, J. T. Barron, R. Ramamoorthi, R. Ng. NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis. ECCV 2020.
- 3DGSB. Kerbl, G. Kopanas, T. Leimkühler, G. Drettakis. 3D Gaussian Splatting for Real-Time Radiance Field Rendering. ACM Transactions on Graphics (SIGGRAPH) 42(4), 2023.
Previous offerings
Fall 2023 · Fall 2021 · Fall 2019. Course materials, announcements, and starter code for the current term are on the course MS Teams. Questions? Show email.
