- what the course is not >:)
→ a tutorial on using computer animation software
→ an art class
→ a bleeding edge course for expereinced graphics developers
- what this course is
→ an introduction to esablished animation software methods
→ a practical introduction to openGL programming

Computer animation deals with all aspects of creating moving imags on a computer
- programming
- modelling
- animaitng
- lighting
- rendering
- post processing
- scripting
- storyboarding
- layout
- hardware
- software
- sound

In this course we're mostly gonna focus on the first half (up to post processing) but we might also touch on hardware(shaders)
At the start of the class we'll start at the application layer, but we will eventually get to the gpu layer and talk about shaders


- Should be comfortable with C
- dont need to know openGL, computer graphics, art or drawing...

- not an easy course
- why?
→ the nature of the programming is “mathy”
→ it can be hard to find bugs
→ hacking code does not work
→ as youre programming you have to understand what you're doing, take an incremental approach.
- introductory course, not designed for people already proficient
- start with traditional openGL 1.4

Why not start with the latest and greatest?
- adds a layer of complexity for learners
- too much plumbing details to learn before you can actually do anything.

Why not use OOP?
- it is possible to use C++, but unless you're careful you will write inefficient code and bloat memory
- for graphics, speed is everything, and it would require more than basic C++ knowledge to avoid those the pitfalls of slow inefficient objects and structures

- ideally use a machine with decent graphics
- even an onboard graphics chip might be okay these days
- windows is expected
- visual studio is expected


Computer graphics: mathematical first steps... math review

grading scheme:
- two tests, 20% each (40%)
- two assignments, 10% each (20%)
- final project, 40%

using textures and models is fine as long as theyre attributed properly

Course Topics:
- introduction to computer animation
→ history
→ applications
→ methods
→ the rendering pipeline
- intro to openGL programming
→ openGL architecture
→ functions
→ compiling a simple program
- basic i/o for graphics
→ event queue
→ callbacks
→ menus
→ mouse/kb input
- 2d animation basics
→ geometry review
→ double buffering
→ interactive programs
- interpolation
→ linear, temporal interpolation
- 3d animation basics
→ coordinates and cameras
→ openGL transformations
→ openGL projections
- surfaces and lighting
→ polygonal models
→ shading in openGL
→ texture mapping
- prodecural graphics (maybe)
→ procedural texturing
→ animated surfaces
→ flocking behaviour
- openGL GLSL
→ introduction to shaders
→ vertex shaders
→ pixel shaders
- hierarchical animation
→ articulated models
→ DAG models (directed acyclic graph model)
→ L-sytems
- pragmatic issues
→ level of details
⇒ based on different criteria that get prioritized
- post-processing
→ compositing
→ color processing
→ anti aliasing
⇒ object boundaries smoothing
⇒ sparkling effect when certain pixels disappear and appear (temporal anti aliasing)
→ motion blur
⇒ mimic the weakness of the human visual system, or a camera, with motion blur

Homework
- check out the reference page
- see if you can get one of the test programs to compile
- browse through the free online reference materials


Index