CPSC 424: Computer Graphics
Department of Mathematics and Computer Science Hobart and William Smith Colleges Spring 2012. Instructor: David J. Eck (eck@hws.edu) Course Handout: http://math.hws.edu/eck/courses/cpsc424_s12.html Monday, Wednesday, Friday, 12:20 -- 1:15, Lansing 301. Lab: Thursday, 11:55 -- 1:30, Lansing 310. Office Hours for Spring 2012 (Lansing 313, but also check Lansing 310): Tuesday, 1:30--2:55 I will also usually be in: Wednesday, 1:55--2:50 MWF, 10:10--11:05 Thursday, 10:20--11:45 Tuesday, 11:55--1:20
Labs Lab 1, January 19
GimpLab 2, January 26
First WebGL DrawingLab 3, February 2
Transforms in 2DLab 4, February 9
Textures and PointsLab 5, February 16 Lab 6, February 23
Class Notes January 18 January 20 January 23 January 25 January 27 January 30 February 1 February 3 February 6 February 8 February 10
Student Web Portfolios Kerui Chazoi Jake Alex Kieran Shaun Matt
Some Links:
- WebGL at Khronos.org, the official WebGL site, including the WebGL 1.0 Specification, the WebGL Wiki and a list of WebGL resources and examples. Also see the OpenGL ES 2.0 Specification and the GLSL ES Specification.
- The WebGL Quick Reference Card
- w3schools.com -- a good place to find on-line references for Web technologies, including JavaScript.
- LearningWebGL.com, a web site with a nice set of lessons on WebGL.
- Three.js, a higher level 3D framework, including many examples.
- Blender, the 3D modeling and animation program, with a gallery.
- Pov-ray, the ray-tracing program, with some stunning examples.
- Gimp, the Gimp (2D) image-processing program.
Week 1: January 18 and 20
Welcome to Computer Graphics. This first shortened week will be an introduction to computer graphics and to WebGL.
The first lab of the course meets on Thursday at 1:30, in Gulick 208. Since we haven't had time to cover anything about WebGL, the first lab will be on the GNU Image Processing Program, Gimp.
Week 2: January 23, 25, and 27
Last Friday was an overview of WebGL. This week, we take introductory looks at the shading language and at the JavaScript API that is used for programming WebGL. We will see how attribute, uniform, and varying variables are actually used in shaders, and how values for attributes and uniforms are specified in JavaScript. There will be a first look at vector and matrix types in the shading language. You will work on some examples in this week's lab. For this lab and the next two labs, you will be working with two-dimensional graphics.
Week 3: January 30; February 1 and 3
The topic for the week is geometric transforms. We are still working in two dimensions. On Monday, we will look at the basic transforms -- scaling, rotation, translation -- and how they can be implemented using matrix multiplication. On Wednesday, the topic is hierarchical graphical modeling and how it can be implemented using a stack of transforms. On Friday, we will continue this topic. If we have time, we will move on to the next big idea: textures.
Week 4: February 6, 8, and 10
The topic for the week is textures. Mostly, we will talk about using image textures in WebGL, but the idea of procedural texture will also be mentioned. Image textures in WebGL are rather complicated, involving such things as: texture coordinates, texture objects, texture units, texture wrap modes, mipmaps, and min/max filters. We'll also use the gl.POINTS primitive for the first time and see how to use textures on points.