|
|
|
CPSC 314 Computer Graphics September 2019
|
|
|
| URLs |
|
http://www.students.cs.ubc.ca/~cs-314
calendar description
|
| Instructor |
|
Michiel van de Panne
office hrs: ICCS x865, Tue 3-4pm, drop-in, or by appointment
|
| Lectures |
|
Mon Wed Fri 3-4pm DMP 310    
Sep 4 - Nov 29, 2019
|
| Labs |
|
ICCS 005, 1 hour (Tue 1,2 pm; Wed 1,2 pm; Thu 1:30,2:30,3:30pm); labs begin in week 2 (Sept 9)
|
| TAs |
|
Jonathan Griffin, Megha Shastry, Tianxin Tao
|
| 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
GLSL
past notes
|
|
Past Sections |
|
Jan 2019
Sep 2018
Jan 2018
Sep 2017
Jan 2017
Sep 2016
Jan 2016
Sep 2015
Jan 2015
Sep 2014
Sep 2013
Jan 2013
Sep 2012
|
|
Summary |
|
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)
|
|
Topics |
|
- 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
- rasterization & interpolation:
- implicit, explicit, parametric representations for geometry
- barycentric coordinates; interpolation during scan conversion
- culling, clipping, and visibility:
- back-face culling, view frustum culling, occlusion culling, raycasting, view frustum clipping, z-buffer visibility
- texture mapping
- texture coordinates, bump maps, procedural textures, enviroment maps, volumetric textures, tiling, multi-scale filtering
- lighting and fragment shaders
- local illumination models, BRDFs, phong model
- global illumination, ray-tracing, path tracing, radiosity, ambient occlusion, shadow mapping, photon mapping
- color spaces
- color perception; color spaces; gamut mapping, high-dynamic range cameras and displays, tone mapping
- creative experimentation with computer graphics
- 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
|