CMSI 371
Computer Graphics
Spring 2014
- 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
Assignments
- Assignment 0121: 4d, 4e, 4f
- Assignment 0130: 1a, 4a, 4b, 4c,
4d, 4e, 4f
- You may find the
canvas-template
sample helpful for this one.
- You may find the
- Assignment 0218: 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 0311: 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
, andprimitives
sample code.
- As stated in the assignment, your code should be based on the
- Assignment 0318: 1b, 1c, 3d, 3e, 4a, 4b, 4c, 4d, 4e, 4f
- Assignment 0403: 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.
- As stated in the assignment, your code should follow the pattern established by the
- Assignment 0415: 1c, 2a, 2b, 2c, 3a, 3d, 3e, 4a, 4b, 4c, 4d, 4e, 4f
- Assignment 0501: 1c, 2a, 2d, 3a, 3e, 4a, 4b, 4c, 4d, 4e, 4f
Handouts/Sample Code
- 0116: Example for separating data from drawing code, Example for placing drawing code in functions (particularly useful alongside transformations)
- 0121: Robert Penner’s web site
- 0206: Graphics = Light = Color = Memory
- 0213: Sample programs demonstrating pixel-level and primitive operations
- 0225: Hello GL!
- 0311: 3D Object Modeling
- 0313: The Math of Space
- 0320: Vectors in Action: Backface Culling, Transforms: More Than Meets the Eye
- 0401: Projection, Look At
- 0410: Modeling Light
- 0415: Specular lighting example
- 0422: Interaction & Dynamic Behavior Strategies
- 0501: 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