Binghamton University
             Watson School of Engineering and Applied Science
                      Department of Computer Science
                 CS-460/560 (Computer Graphics), Spring, 2010

Professor Richard R. Eckert
Office Hours: T 3:00-4:00 P.M., R 2:00-3:00 P.M.
EB-N6; 777-4365, 777-4802
Section 01 -- TR 11:40 A.M. - 1:05 P.M., SL-210,

Professor's Home Page URL (with links to the CS-460/560 web pages):

Course listserve email address:

Teaching Assistant: Yibo Sun
TA's email address:
TA's Office Hours: M, W 1:00-2: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

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.

Term Examinations (2).....40%
Programming Assignments...40%
Final Examination.........20%

Term Examinations (2).....38%
Programming Assignments...38%
Final Examination.........18%
Term Paper.................6%

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.


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,

                     ****** 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 
-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,, "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.,
-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
-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
-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,
-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.