Welcome to CS40: Computer Graphics. This course focuses on the creation and manipulation of 3D geometric models and the rendering of these models on a two dimensional screen. We will examine modeling from both a pixel-based view and a more geometric vector-based approach. Core topics include geometric primitives, 2D and 3D matrix transformations, projective geometry, and object modelling. We also examine the rendering pipeline and algorithms that improve performance including clipping and hidden surface removal and depth buffers. Intermediate topics include texture mapping, lighting, and shadows. We will be using the modern OpenGL programming approach which uses programmable vertex and fragment shaders throughout the course. Advanced topics may including grammar based models, isosurface extraction, and GPGPU computing using CUDA.
WEEK | DATE | ANNOUNCEMENTS | TOPIC & READING | LAB |
1 | Jan 21 | Intro to Graphics, Software Tools |
InClass: Intro Lab 01 |
|
Jan 23 | ||||
Jan 25 | ||||
2 | Jan 28 | OpenGL Rendering Pipeline Shader Intro |
InClass: OpenGL Project 1: Pix Buffer |
|
Jan 30 | ||||
Feb 01 | Drop/Add ends | |||
3 | Feb 04 | Vector and Matrix operations | InClass: Geometry Project 2: Basic Shapes |
|
Feb 06 | ||||
Feb 08 | ||||
4 | Feb 11 | 3D Transforms | InClass: Frames/Events Project 3: Interactive Easy CAD |
|
Feb 13 | ||||
Feb 15 | ||||
5 | Feb 18 | projections, LookAt, Texture mapping |
InClass: Textures Project 4: Planets |
|
Feb 20 | ||||
Feb 22 | ||||
6 | Feb 25 | smooth rotations, camera class, perspective projections | Project 5: Camera motion | |
Feb 27 | ||||
Mar 01 | ||||
7 | Mar 04 | Phong Lighting model, normals | Midterm: Ray Tracing | |
Mar 06 | ||||
Mar 08 | ||||
Mar 11 |
Spring Break |
|||
Mar 13 |
||||
Mar 15 |
||||
8 | Mar 18 | Bump mapping, Procedural noise | InClass: Bump mapping | |
Mar 20 | ||||
Mar 22 | ||||
9 | Mar 25 | Grammar based Methods | InClass: Grammars Project 7: Plants |
|
Mar 27 | ||||
Mar 29 | Last day to declare CR/NC or withdraw with a "W" |
|||
10 | Apr 01 | Particle Systems |   |
|
Apr 03 | ||||
Apr 05 | ||||
11 | Apr 08 | CUDA Intro, memory/kernels |   |
|
Apr 10 | ||||
Apr 12 | ||||
12 | Apr 15 | CUDA Synchronization, parallel patterns | Project 8: CUDA Performance | |
Apr 17 | ||||
Apr 19 | ||||
13 | Apr 22 | CUDA Applications, OpenGL Interopability |   |
|
Apr 24 | ||||
Apr 26 | ||||
14 | Apr 29 | Marching Squares, Voronoi Decomposition, Wrapup |   |
|
May 01 | ||||
May 03 | ||||
May 13 |
50% Lab assignments |
20% Midterm |
20% Final |
10% Class participation |
Use late days wisely; once you have used up your late days, I reserve the right to not accept any further late assignments from you, and if I do accept further late assignments from you, you will receive a significant late penalty on them. I strongly recommend that you do not use any late days on the first few assignments.
If you believe that you need accommodations for a disability, please contact Leslie Hempling in the Office of Student Disability Services (Parrish 130) or email lhempli1@swarthmore.edu to arrange an appointment to discuss your needs. Leslie Hempling is responsible for reviewing and approving disability-related accommodation requests. As appropriate, she will issue students with documented disabilities an Accommodation Authorization Letter. Since accommodations require early planning and are not retroactive, please contact her as soon as possible. You are also welcome to contact me privately to discuss your academic needs. However, all disability-related accommodations must be arranged through Leslie Hempling in the Office of Student Disability Services.
Academic honesty is required in all work you submit to be graded. You may not submit work done with (or by) someone else. You may not examine or use work done by others to complete your own work. You may discuss assignment specifications and requirements with others in the class to be sure you understand the problem. In addition, you are allowed to work with others to help learn the course material. However, with the exception of the student mentors and your partner on group assignments, you may not work with others on your assignments.
All code you submit must be your own with the following permissible exceptions: code distributed in class, code found in the course text book, and code worked on with an partner. In these cases, you should always include detailed comments that indicates on which parts of the assignment you received help, and what your sources were.
"It is the opinion of the faculty that for an intentional first offense, failure in the course normally is appropriate. Suspension for a semester or deprivation of the degree in that year may also be appropriate when warranted by the seriousness of the offense." - Student Handbook (2010-2011, pg36 Section A.4.b.i)
Please see me if there are any questions about what is permissible.