CPSC 314 Computer Graphics
September 2018

URLs http://www.ugrad.cs.ubc.ca/~cs314     calendar description
Instructor Michiel van de Panne     office hrs: ICCS x865, Wed 3:30-4:30pm, drop-in, or by appointment
Lectures Mon Wed Fri 10-11am DMP 110        Sep 5 - Nov 30, 2018
Labs ICCS 005 (Tue 1-2, Wed 1-2, 2-3, Thu 2:30-3:30, 3:30-4:30); labs begin Sep 10
 TAs   Wu Fan, Zhaoming Xie, Jinfan Yang, Yuan Yao
Grading Assignments (42%), Midterms (22%), Participation (8%), Final Exam (28%)   
 Policies   class policies on grades, attendance, plagiarism, missed work, inclusion, wellness
Schedule lectures    assignments and tests    
Resources Piazza signup     Piazza Q&A     threejs     threejs tutorial     books    WebGL demos    past notes   
Past Sections Jan 2018     Sep 2017     Jan 2017     Sep 2016     Jan 2016     Sep 2015     Jan 2015     Sep 2014    
Sep 2013     Jan 2013     Sep 2012    
The course provides an introduction to computer graphics, with a focus on the fundamentals of modeling, rendering, and basic animation. We will learn the modern programmable graphics pipeline, with vertex and fragment shaders. Implementions will mainly use three.js, WebGL, and javascript.
Learning Goals  

After this class, students can (xref to topics):
  • explain the algorithmic steps and mathematics used in rendering and animating 3D models (1,2,3,4,5)
  • interpret and explain affine transformations using diagrams, linear algebra, and code within a graphics API (1)
  • write code that implements the graphics pipeline, with an emphasis on vertex shaders and fragment shaders (1,4,5)
  • read, write, and modify code for graphics applications using a common graphics API (1,4,5)
  • explain the behaviour of common local and global illumination models, and the assumptions they make
    about physics and perception (5,6)
  • describe and appreciate the creativite potential of modern computer graphics and current capabilities
    and trends in computer graphics (7,8)

  1. transformations, coordinate systems, and vertex shaders:
    • 4x4 affine transformations: translation, rotation, scale, composition, scene hierarchies homogenous coordinates
    • camera specifications and transformations, perspective and orthographics projection, transforming normals
    • coordinate systems: local, world, viewing, normalized device, clipping, device
    • basic animation
  2. rasterization & interpolation:
    • implicit, explicit, parametric representations for geometry
    • barycentric coordinates; interpolation during scan conversion
  3. culling, clipping, and visibility:
    • back-face culling, view frustum culling, occlusion culling, raycasting, view frustum clipping, z-buffer visibility
  4. texture mapping
    • texture coordinates, bump maps, procedural textures, enviroment maps, volumetric textures, tiling, multi-scale filtering
  5. lighting and fragment shaders
    • local illumination models, BRDFs, phong model
    • global illumination, ray-tracing, path tracing, radiosity, ambient occlusion, shadow mapping, photon mapping
  6. color spaces
    • color perception; color spaces; gamut mapping, high-dynamic range cameras and displays, tone mapping
  7. creative experimentation with computer graphics
  8. current capabilities and trends in computer graphics:
    • advances in global illumination, machine learning methods, AR/VR, fake images and video, VFX, games
    • simulations, editing images and geometry, 3D printing, generative design; guest lectures