Binghamton University Watson School of Engineering and Applied Science Department of Computer Science CS-460 (Computer Graphics), Spring, 2009 Professor Richard R. Eckert Office Hours: W 10-11:30 A.M., R 1-2:30 P.M. EB-N6; 777-4365, 777-4802 Section 01 -- TR 10:05-11:30 A.M., SW-327 reckert@binghamton.edu Professor's Home Page URL (with links to the CS-460/560 web pages): http://www.cs.binghamton.edu/~reckert/ Course listserve email address: CS460-L@LISTSERV.BINGHAMTON.EDU Teaching Assistant: Yibo Sun TA's email address: sunyibo@gmail.com TA's Office Hours: W, R 3:00-4:30 P.M., EB-N23 COURSE DESCRIPTION: Concepts, structures, techniques, and algorithms for use of modern interactive computer graphics systems. Graphics hardware, software system structure. Techniques and algorithms for basic graphics input/output functions. Matrix techniques for transformations and projections. Techniques for two and three dimensional modeling, visualization, and rendering. Prerequisites: Data Structures; working knowledge of linear algebra (vectors, matrices); C or C++ programming experience. GROUND RULES: Programming assignments are to be prepared and executed on PCs running Windows. Most assignments will be done using Microsoft Visual C++ or OpenGL on Visual Studio .NET 2005/2008 Professional Edition, which are available in most of the public computer pods on campus. You may also obtain your own copy for free from the Microsoft Academic Alliance. Use of any other system requires approval of the instructor. A final project or research paper will be required for CS-560. The topic can be just about anything related to computer graphics. You should discuss project/paper ideas with the instructor before starting. TEXT BOOK: D. Hearn and M.P. Baker, "Computer Graphics with OpenGL," 3nd Edition., Prentice Hall, 2004, ISBN 0-13-015390-7. EVALUATION (CS-460): Term Examinations (2).....40% Programming Assignments...40% Final Examination.........20% PROGRAMMING ASSIGNMENTS: Programming projects will be due on the date specified on the assignment sheet. If turned in late, the grade will be reduced by 5% per day late. Under no circumstances will assignments be accepted more than one week late. ANY NON-ORIGINAL WORK (WORK FOUND TO BE COPIED) WILL BE GROUNDS FOR AN F IN THE COURSE! ------------------------------------------------------------------- COURSE SCHEDULE BY WEEK (Book Chapter, Programming Assignment): 1. Introduction/Applications. Introduction to Windows Win32 API and MFC Programming; Introduction to OpenGL (1, 2, notes). Assignment: Simple Programs that use VC++ (MFC) and OpenGL (GLUT approach). 2. Computer Graphics Hardware and Software (2, notes). Assignment: a program that plots multicolored objects using direct color and color lookup tables. 3. Graphics Output Primitives: lines, polygons, circles, curves, text (3). Assignment: an efficient implementation of an output primitive scan conversion algorithm. 4. Display attributes and area filling algorithms (3, 4). Assignment: output primitive scan conversion, continued. 5. Two-Dimensional geometric transformations (5). Assignment: an implementation of an area fill algorithm. 6. Two-D windows, viewports, and clipping (6). Assignment: area fill, continued. ****** Term Examination # 1 ***** 7. Interactive 2-D graphics: Input devices, use of a mouse, icons, popup windows, drawing and painting (11). Assignment: a program that performs geometric transformations on 2-D polygons. 8. Segmentation, Hierarchical Modeling; PHIGS, OpenGL, VRML (8, 14). Assignment: an implementation of a clipping algorithm. 9. Curved lines and surfaces, parametric equations, Bezier and B-spline curves (8). Assignment: clipping, continued. 10. Animation, Game Development, OpenGL, DirectX (13, notes). Assignment: an interactive parametric curve-drawing program. 11. Three-Dimensional graphics: Transformations (7). Assignment: parametric curve drawing, continued. 12. Three-Dimensional graphics: Modeling, Viewing and Projections; OpenGL (7, 8, notes). Assignment: a 3-D polygon mesh modeling/rendering program. ***** Term Examination # 2 ***** 13. Hidden surface detection and removal (9). Assignment: 3-D polygon mesh modeling/rendering program, continued--back face culling added. 14. Illumination, shading, coloring, texturing, reflections; ray tracing and radiosity methods (10). Assignment: 3-D modeling/rendering program, continued--illumination/shading added. 15. Fractals, Iterated Function Systems, L-Systems, Particle Systems, Escape-time algorithms, Chaos (8, notes). Assignment: 3D program, continued. REFERENCES (On Reserve in the Library): -ACM SIGGRAPH '90 Computer Graphics Course Notes (28 Volumes, available from professor). -Ammeraal, L, "Programming Principles in Computer Graphics," John Wiley & Sons, 1986. -Angel, "Interactive Computer Graphics: A Top-Down Approach with OpenGL," Addison-Wesley, 1997, ISBN 0-201-85571-2. -Barnsley, M.F., "Fractals Everywhere," Academic Press, Boston, 1989. -Beatty, J.C. & K.S. Booth, Eds., "Tutorial Computer Graphics," 2nd Ed., IEEE Computer Science Press, 1982. -Bradley & Millspaugh, Programming in C# .NET, McGraw-Hill, 2004, ISBN 0-07-285232-1. -Burger, P & D. Gillies, "Interactive Computer Graphics," Addison-Wesley, Wokingham, England, 1989. -Chellappa & Rama, "Digital Image Processing," 2nd Ed., IEEE Computer Society Press, 1992. -deBoor, C., "A Practical Guide to Splines," Springer-Verlag, 1978. -DeGoes, "Cutting Edge 3D Game Programming with C++," Coriolis Group, 1996, ISBN 1-883577-70-5. -Deitel, et.al., "Visual C# 2005: How to Program", 2nd Edition, Prentice Hall / Pearson Education, 2006, ISBN 0-13-152523-9. -Deitel, et. al., C# for Experienced Programmers, Prentice Hall, 2003, ISBN 0-13-046133-4. -Deitel, et. al.,, Simply C++, Pearson/Prentice Hall, 2005, ISBN 0-13-142660-5. -Deitel, et. al.,, Visual C++ .NET: How to Program, Pearson/Prentice Hall, 2004, ISBN 0-13-437377-4. -Foley, J.D. & Van Dam, V., "Fundamentals of Interactive Computer Graphics," 2nd Ed., Addison-Wesley, 1990. -Fosner, R. "OpenGL Programming for Windows 95 and Windows NT," Addison- Wesley, 1997. -Freeman, H. Ed., "Tutorial and Selected Readings in Interactive Computer Graphics ," IEEE Computer Science Press, 1980. -Glassner, A.S., Ed., "An Introduction to Ray Tracing," Academic Press. -Glassner, "Principles of Digital Image Synthesis," Volume 2, Morgan Kaufmann, 1995, ISBN 1-55860-276-3. -Gregory, "Special Edition Using Visual C++ 6," Que, 1998, ISBN 0-7897-1539-2. -Gregory, "Special Edition Using Visual C++ .NET", Que, 2002, ISBN 0-7897-2466-9. -Hearn, D. & M.P. Baker, "Computer Graphics, C Version," Second Ed., Prentice-Hall, Englewood Cliffs, NJ, 1997, ISBN 0-13-530924-7. -Hill, Jr. & Francis S., "Computer Graphics," Macmillan, New York, 1990. -Horton, "Beginning Visual C++6," Wrox Press, 1998, ISBN 1-861000-88-X -Howard, T.L.J. , W.T. Hewitt, R.J. Hubbold, K.M. Wyrwas, "A Practical Introduction to PHIGS and PHIGS PLUS," Addison-Wesley, 1991. -Joy, K.I., C.W.Grant, N.L. Max, L. Hatfield, Eds., "Computer Graphics: Image Synthesis," IEEE Computer Society Press. -Kolb, "Win32 Game Developer's Guide with DirectX 3," Waite Group, 1997, ISBN 1-57169-030-1. -Kruglinski, "Inside Visual C++," Microsoft Press, ISBN 1-57231-565-2. -Kruglinski, Shepherd, Wingo, "Programming Microsoft Viausl C++", Fifth Edition, Microsoft Press, ISBN 1-57231-857-0, (For VC++ MFC Programming). -Lyons, "Black Art of Windows Game Programming," Waite Group Press, 1995, ISBN 1-878739-95-6. -LaMothe, "Tricks of the 3D Game Playing Gurus", SAMS, ISBN 0-672-31835-0. -Mandelbrot, B.B., "The Fractal Geometry of Nature," W.H. Freeman, N.Y., 1982. -Mielke, Bruce, "Integrated Computer Graphics, West Publishing Co.," St. Paul, 1991. -Murray & VanRyper, "Encyclopedia of Graphics File Formats," O'Reilly, 1994, ISBN 1-56592-058-9. -Nielson, G.M. & B. Shriver, Eds., "Visualization in Scientific Computing," IEEE Computer Society Press. -Petzold, "Programming Windows," Fifth Edition, Microsoft Press, 1999, ISBN 1- 57231-995-X. (For VC++ Win32 API Programming). -Pokorny, C.K. & Gerald, "Computer Graphics: The Principles Behind the Art and Science," Franklin, Beedle & Associates, 1989. -Prosise, "Programming Windows with MFC, Second Edition, Microsoft Press, ISBN 1-57231-695-0 -Prusinkiewicz, P. & A. Lindenmayer, "The Algorithmic Beauty of Plants," Springer-Verlag, New York, 1990. -Rogers, "Procedural Elements for Computer Graphics," Second Ed., WCB/McGraw-Hill, 1998, ISBN 0-07-053548-5. -Schildt, "Programming MFC from the Ground Up," McGraw Hill, 1996, ISBN 0-07-882222-X. -Simon, "Windows 95 Win32 Programming API Bible," Waite Group Press, 1996, ISBN 1-57169-009-3. -Trujillo, "Cutting-Edge Direct 3D Programming," Coriolis Group, 1996, ISBN 1-57610-050-2. -Vince, "3-D Computer Animation," Addison-Wesley, 1992, ISBN 0-201-62756-6. -Walnum, "3-D Graphics Programming with OpenGL," Que, 1995, ISBN 0-7897-0277-0. -Watt, Alan, "Fundamentals of Three-Dimensional Computer Graphics," Addison-Wesley, Wokingham, England, 1989. -Watt & Watt, "Advanced Animation and Rendering Techniques," ACM Press/Addison-Wesley, 1992, ISBN 0-201-54412-1. -Wolberg, George, "Digital Image Warping," IEEE Computer Society Press, 1990. -Woo, Neider, Davis, "OpenGL Programming Guide," Second Edition, Addison Wesley, 1993, ISBN 0-201-46138-2. -Young, "Windows Animation Programming with C++," AP Professional, 1994, ISBN 0-12-773750-2.