ITCS 6120/8120 Introduction to Computer Graphics Fall 2007
Instructor: Dr. Zachary Wartell
Class Room: Woodward 135
Office: Woodward 410C (also check lab in 412)
Office Hours: TTh 2-3
TA: No TA
Meeting Times: MW 2-3:15 PM
Prerequisites: Data Structures (ITCS 2214 or equivalent), linear/vector algebra (MATH 2164), good programming skills (C++).
Computer Graphics with OpenGL, Hearn & Baker (abbr. “H&B”)
Stephen Prata, C++ Primer Plus (5th Edition)
Grading: Programming projects: 50%, Midterm 25% and Final: 25%.
There will be 5 to 10 programming projects. Some will be shorter (one week) while others will be longer (2-3 weeks). Each will be weighted according to the estimated complexity.
90-100% of total grade – A
80-90% of total grade - B or better.
70-80% of total grade - C or better.
60-70% of total grade - D or better.
Passing grade on programming projects is required to pass the course.
Incompletes will be given, only under exceptional circumstances and at the discretion of instructor.
Copies of lecture slides on each topic as well as other materials will be made available from the class website found here:
The lecture slides will be in PowerPoint format.
Attendance of all scheduled classes is strongly encouraged, as the material covered in the lectures will not necessarily be restricted to that in the prescribed text. You are responsible for all material covered in class. Attendance for all exams is mandatory. Makeup Exams will not be given except under documented, special circumstances.
Cheating in any form is subject to disciplinary action (UNCC Catalog, pages 275-278). As far as programming projects are concerned, you are allowed to discuss general concepts and strategies for solving problems. No sharing of modules or parts of programs will be allowed. You cannot help debug another person’s program.
Programming Assignment Policies
1) Programs that don’t compile will be given 0 credit.
2) Late assignments will lose 15% of their grade for each day they are late. Assignments turned in later than 3 days late will be given a 0. (Saturday counts as one day. Sunday counts as another day).
3) Partial Credit: If there are parts of your program that compile but you cannot get to work correctly you may hand in the non-working (but compiling) code in addition to your working code. To get even minimal partial credit:
- The non-working code must be compilable and must be compiled by the compilation scripts turned with your assignment.
- The non-working code must be placed in a separate function or method.
- Your program should include a call to that non-working function at the appropriate places in the rest of your code, but the call should be commented out.
(The idea here is that you must prove that you know where the non-working function should be called, how its fits into to the over all program structure and that you are not just handing in some random code that you copied from somewhere else.)
- You must add a comment to the non-working code that explains what about it doesn’t work, what about it does work, and what problems you had.
The amount of partial credit given for such non-working code is purely up to the discretion of the TA and professor. If your program includes an excessive amount of ‘non-working’ code, you will be given minimal credit overall for the entire assignment. What determines ‘excessive’ is purely up to the discretion of the TA and professor. Again, no credit will be given for any code that doesn’t compile.
Introduction (1 week)
Read: H&B Chapter 1, 2.1-2.8
– Applications of computer graphics.
– Conceptual Model for Interactive Computer Graphics
– Display technologies - Raster and Random Scan devices
– Video controller , lookup tables
– Input/Output devices
Raster Graphics (3 weeks)
Read: H&B Chapter 2.9, 3
– Graphics Primitives: Points, lines, circles, polygons, polylines
– Scan-conversion of lines
Read: H&B Chapter 8.8-8.11
– Planar curves
Read: H&B Chapter 4.11-4.13
– Attributes of Graphics Primitives
– Scan-conversion of polygons
Geometric Transformations (2 weeks)
Read: H&B Chapter 5
– 2D Affine Transformations
– 3D Affine Transformations, (Matrices & Quaternions)
2D Viewing (1 week)
Read: H&B Chapter 6
– Window-Viewport transformation
– 2D Line and Polygon Clipping
3D Viewing and Projections(2 weeks)
Read: H&B Chapter 7
– Types of projections - parallel and perspective
– The Viewing transformation
– Mathematics and implementation of geometric projections.
– 3D Clipping
Shading Models (2 weeks)
Read: H&B Chapter 10
– Reflectance Models - Constant, Diffuse, Specular
– Flat, Gouraud and Phong shading.
– Global Illumination Algorithms - Ray Tracing, Radiosity
– The Rendering Equation
Hidden Surface Algorithms (1.5 weeks)
Read: H&B Chapter 9
– Image vs. Object precision algorithms
– Z-buffer, painter’s, Warnock’s algorithms.
– Scanline algorithm, BSP trees, Ray Tracing.
Object Hierarchies (1 week)
Read: H&B Chapter 14
– Geometric Modeling
– Modeling Transformations
– Hierarchical Structure Networks
– Traversal of Object Hierarchies.
Advanced Topics (time permitting)
– Color, Texture Mapping, Fractals, Animation
1.4 – office hour change