I took courses in computer architecture, algorithms, theory, compilers etc at school but never did one in graphics. However now I am itching to learn something about computer graphics and maybe play with OpenGL and/or DirectX. Any recommendations about books/lecture notes etc? What will be a suitable project that I could do to learn some graphics?
Computer Graphics for Java Programmers by Leen Ammeraal is a damn good book and the most complete introduction to computer graphics that I've seen. A professor of mine once called it "the SICP of computer graphics." In that respect, it has clear explanations and great exercises. However, it is also dense and math-heavy, so it will take some discipline to work through the book.<p>If you just want to play around with graphics or don't like to program in Java, there are programming environments made especially for programming graphics like Processing [<a href="http://processing.org" rel="nofollow">http://processing.org</a>] and Nodebox [<a href="http://nodebox.net/" rel="nofollow">http://nodebox.net/</a>]. Both are free and have tutorials readily available.
You might also look at some of the great early stuff, like Ivan Sutherland's Sketchpad <a href="http://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-574.pdf" rel="nofollow">http://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-574.pdf</a>.<p>Also, check out the Graphical Gems series from IBM: lots of great algorithms.
Totally out of date but a lot of interesting material nonetheless: Michael Abrash's "Graphics Programming Black Book". Available online at <a href="http://www.byte.com/abrash/" rel="nofollow">http://www.byte.com/abrash/</a>