COMP 361.

(A second beginning)

Contact information .

About the class:

The class notes (web-site):

Course description:

A comprehensive introduction to the field of computer graphics. Extensive programming in C++ facilitates knowledge development in the core areas, which include human perception, illumination and shading models, object representation and modeling, classical and current rendering algorithms, and the physical and  mathematical foundations of the dominant models and methods. Efficient implementations of these techniques are developed from scratch in parallel with an exploration of application programming interfaces for manipulating dedicated graphics hardware.
Prerequisites:  Computer  Science  222; Mathematics 213; and one of Mathematics 214, Mathematics 222, or Engineering 274.
Alternate spring semesters, three hours.

How to hand in your assignments:

  1. Some assignments may require email; others may require handing in written material. For those requiring e-mail, send e-mail to me containing plain text (not an attachment) showing your work.  In some cases, the message may consist of answers to questions, in other cases. it will likely require the submission of (programing assignments) your source code. 
  2. For this class, my email address is

overview of class topics

vectors and pixels 
bits per pixel, spatial resolution
dithering and anti-aliasing
Color systems for computers: RGB and CMYK,  HSL (vs. RGB) , CIE,  Indexed Color
Compression: GIF vs JPG.
Human vision and color perception. Orders of magitude (retina [image source and further (unrequired) reading] vs. monitor), linguistic and cultural issues, gender.
Coordinate systems and the screen.
Bzier curves (quadratic and cubic), polygons, paths (drawn objects in SVG)
gradients, clipping and masks
translation, rotation, scaling
affine and perspective transformations
Web standards for graphics: HTML, CSS, SVG, WebGL (part of Open GL)
Using <canvas> in HTML (getting ready for ThreeJS)
Vector spaces
texture, noise, filters, fractals, shaders
Additional topics (time and interest allowing):
tessellation (note, in particular, the last link here. )
interaction and animation
2.5D and illusion (fun: tangles and paradox)
computational geometry

Other examples to consider:
the class web page (note use of gradient, CSS, interaction)
centering things (JavaScript, CSS, SVG)
rotation (2D, 3D, CSS, SVG)
SVG transform matrix (explanation from Mozilla) (used for triangulated warp)

Assigned Reading-- the class web page and links leading from it.

"Reading" for the purposes of this class, requires understanding the material sufficiently to 

Assignment #1. Due Tuesday, March 13: Send email (using the proper format) to the instructor verifying that you're in the class!  Also, please review the above topics (from vectors and pixels through computational geometry) and list, in order, the five topics you would like most to learn about this semester.

Something interesting?:
Newly deciphered tablet shows that Babylonians discovered trig 1500 years before the Greeks
Something cool

Animated glass cow (discussed in link below)