CMSI 371
Computer Graphics
Spring 2013
- Note
- This page is maintained as an archival record of the course shown above, and as such, some links on this page may no longer be valid nor accessible. They are kept here as a record of the resources that were available at the time of the course offering.
- Syllabus
- Bazaar: Where you’ll find our sample code
- More graphics sample code from the JavaScript textbook
- How to Ask Questions the Smart Way: Follow these tips to improve the quality and efficiency of the help that you get
- Announcements
- 0219: Office hours for Tuesday, February 26, are cancelled due to a meeting that cannot be scheduled at a different time. I will see if these 2 hours can be made up on another date.
Assignments
- Assignment 0129: 1a, 4a, 4b, 4c,
4d, 4e, 4f
- You may find the canvas-template sample helpful for this one.
- Assignment 0212: 1a, 2a, 3a, 4a,
4b, 4c, 4d, 4e, 4f
- Robert Penner’s web site is a major source of background and reference material for this assignment.
- Make sure to start with the animation-sprite sample.
- Assignment 0226: 1a, 2c, 3b, 3c,
4a, 4b, 4c, 4d, 4e, 4f
- As stated in the assignment, your code should be based on the nanoshop, nanoshop-neighborhood, and primitives sample code.
- Assignment 0319: 1b, 1c, 3d, 3e, 4a, 4b, 4c, 4d, 4e, 4f
- Assignment 0326: 2a, 2b, 3d, 3e,
4a, 4b, 4c, 4d, 4e, 4f
- As stated in the assignment, your code should follow the pattern established by the vector sample code.
- For additional reference, visit the QUnit home page.
- Assignment 0404: 1c, 2a, 2b, 3a, 3d, 3e, 4a, 4b, 4c, 4d, 4e, 4f
- Assignment 0418: 1c, 2a, 3a, 3e, 4a, 4b, 4c, 4d, 4e, 4f
- Assignment 0502: 2c, 2d, 3e, 4a, 4b, 4c, 4d, 4e, 4f
Handouts/Sample Code
- 0122: Example for separating data from drawing code
- 0124: Example for placing drawing code in functions (particularly useful alongside transformations)
- 0129: Robert Penner’s web site
- 0205: Graphics = Light = Color = Memory
- 0214: Hello GL!
- 0221: Introduction to GLSL
- 0228: 3D Object Modeling
- 0312: The Math of Space
- 0314: Vectors in Action: Backface Culling
- 0319: Transforms: More Than Meets the Eye
- 0326: Projection
- 0404: Look At
- 0409: Interaction & Dynamic Behavior Strategies
- 0418: Modeling Light
- 0425: Specular lighting example
- 0430: Clipping, Hidden Surface Removal
Related External Links
These links take you to web sites beyond this server. The sites are in no particular order or bias, just as they came to mind.
- canvas element resources
- The Mozilla Developer Network’s Canvas tutorial—quite possibly all you’ll need outside of class
- The Mozilla Developer Network’s Canvas reference—in case you need even more
- The official canvas element specification from the W3C
- Robert Penner’s web site contains excellent resources for understanding and implementing keyframe animation, tweening, and easing
- The OpenGL home page
- What’s New in OpenGL
- Getting Started with Coding OpenGL
- OpenGL Shading Language (GLSL)
- The WebGL home page—Bringing 3D to web browsers without requiring plugins
- The Graphics Gems Repository: The place for seminal, foundational graphics algorithms and code
- Chrome Experiments: Lots of inspiration here
- Learning WebGL is a great resource for, well, learning WebGL, with lots of sample code
- Wikipedia: A good starting point for virtually any concept lookup
- The pavement art of Julian Beever—his “3D illusion” drawings bear out the mathematics of 3D projection
- An American Mathematical Society article by David Austin, on some of the mathematics behind Pixar’s animation: Moving Remy in Harmony: Pixar’s Use of Harmonic Functions