CSCE 441: Computer Graphics

Fall 2017


Location/Time: MWF 9:10am-10am, HRBB 113

Class Web Page: http://courses.cs.tamu.edu/schaefer/441_Fall2017

Instructor TA
Dr. Scott Schaefer TBA
Office: HRBB 527B Office:TBA
Phone: 862-4251 Phone: None
Office Hours: TBA Office Hours: TBA

Topics and Goals:
This course deals with the fundamentals of computer graphics. We will emphasize the most basic algorithms and concepts in computer graphics that form the foundation (both historical and practical) for most modern graphics systems. The emphasis in this class will be on interactive 3D computer graphics, although we will discuss some 2D algorithms, and introduce some non-interactive rendering methods.

Goals:

  • Become familiar with basic 2D rendering concepts and algorithms such as line drawing, line and polygon clipping, polygon filling, and antialiasing.
  • Understand 3D rendering techniques including hierarchical model structures, geometric transformations, projections, and hidden surface removal.
  • Understand basic lighting and shading techniques.
  • Understand the basics of color models as they relate to computer graphics.
  • Become familiar with basic aspects of geometric and solid modeling.

Topics:

  • Overview of graphics – applications, history, technologies.
  • 2D primitive drawing, including scan conversion, polygon filling, clipping, and antialiasing.
  • Fractals and Iterated Affine Transformations.
  • 3D geometric transformations including translation, scaling, rotation.
  • Specification of view frusta and projections (parallel and perspective).
  • Hidden-surface removal and z-buffering.
  • Color models.
  • Basic illumination (including flat, Gouraud, Phong) and shading.
  • Texture mapping.
  • Hierarchical 3D model specification.
  • Curve and surface (geometric modeling) basics.
  • Solid modeling basics.
  • Ray-tracing / Radiosity basics.

If time permits, we may be able to cover certain other topics, to be determined at a later date.

Upon finishing this class, you should be able to understand how graphics are produced, write your own basic graphics programs, and explore on your own some of the more advanced graphics techniques and algorithms

Prerequisites:
The course description lists CSCE 221 as prerequisites. There will be a significant amount of programming in this class, and students will be expected to use C/C++ for the assignments.

In addition, students should be familiar with basic linear algebra (vector and matrix representation and arithmetic). A prior course in linear algebra (e.g. MATH 304) is more than sufficient, and many students may have had enough previous exposure without such a class. A review of most of the relevant material is given in the textbook (Appendix A.1 through A.5). To ensure that all students are familiar with this material, an online quiz will be required (described below).

Grading:
There will be several (5-7) projects throughout the semester. Each project will have a “possible score,” and each student will receive a “given score” for that project. The overall project grade will be the sum of the given scores divided by the sum of the possible scores. In addition, there will be a midterm exam and a final. The overall grade will be determined as follows:
Projects: 60%
Midterm: 15%
Final: 25%
The expected grading scale will be A >= 90% > B >= 80% > C >= 70% > D >= 60% > F. Depending on the final percentage distribution, an absolute or relative curve may be applied, though an attempt will be made to avoid this. In addition, the instructor reserves the right to raise grades near a “borderline” to the next highest letter grade. Factors weighing into this decision will be the individual student’s perceived effort and class attendance and participation.
Linear Algebra Review: An online examination testing the basic linear algebra concepts you should know for this class will be required of all students. Each student will be required to complete this exam by a certain date. Students may take the exam as many times as they wish until it is passed. Failure to complete the exam with an acceptable score by the deadline will result in an automatic F for the class. The details of this exam, including the passing score required and the deadline will be announced in class.

Required Textbook:
Hearn, Baker. Computer Graphics with OpenGL. Fourth Edition, Pearson Prentice Hall, 2010.

Recommended Textbook:
Shreiner. OpenGL Programming Guide, Seventh Edition. Addison-Wesley, 2010.

The Hearn and Baker book will be the primary textbook for all required readings. It gives a broad overview of graphics fundamentals, as well as a broad description of OpenGL. Although Hearn and Baker includes OpenGL information, the Programming Guide is far more complete, better organized, etc. It will be far more useful for graphics programming in OpenGL after this class. OpenGL-specific readings and some assignments will draw on this book. Note: for the purposes of this class, an earlier edition of the OpenGL Programming Guide could be used – it is likely that only page numbers will change for the material we will cover.

Finally, one other book you might want to consider, if you plan on studying graphics further is the following:
Foley, Van Dam, Feiner, Hughes. Computer Graphics: Principles and Practice (Second Edition in C). Addison-Wesley, 1996.
Foley and van Dam is considered the standard book on computer graphics. While most of the core material is covered in Hearn and Baker, and Hearn and Baker is more up-to-date, Foley and van Dam is more complete, and goes into more depth in many areas.

Policies:
Attendance: Attendance will not be checked, however it will be considered in borderline decisions for the final grade. Students with unexcused absences should not expect additional help outside of class and are still responsible for any material or instructions given in class, for turning in assignments on time, and for taking exams at the scheduled times. Make-up assignments will not be given unless there is a highly unusual circumstance. If you know that you will be absent for a class, you should let the instructor know ahead of time.
Late Assignments: Assignments are due at 11:59pm on the given due date. Assignments turned in after that time will be considered late. The percentage penalty applied to each late assignment will be calculated as follows: let m be the number of minutes late, the percentage penalty is (m/57.6). Therefore, an assignment 9.6 hours late will receive 10% off of the grade assigned without any penalty and an assignment 4 days late will receive no credit. Certain assignments may not be allowed to be turned in late.
Communication: A class web page (listed at the top of this syllabus) will be maintained throughout the semester. Students are responsible for checking both the web page and email regularly for class updates.
Reading: Readings from the required textbook will be given out throughout the semester. We will not be able to discuss all of it in class, but you are still responsible for keeping up with these readings.
Code Documentation: When assignments are graded, source code may be examined to verify the way a solution was achieved or to award partial credit. It is your responsibility to make sure that your source code is presented in a clear, readable, way. Even if your code “works,” if the grader can’t understand it, you may lose points.

Academic Honesty:
The Aggie Honor Code is: “An Aggie does not lie, cheat, or steal or tolerate those who do.” Upon accepting admission to Texas A&M University, a student immediately assumes a commitment to uphold the Honor Code, to accept responsibility for learning, and to follow the philosophy and rules of the Honor System. Students will be required to state their commitment on examinations, research papers, and other academic work. Ignorance of the rules does not exclude any member of the TAMU community from the requirements or the processes of the Honor System. For additional information please visit: www.tamu.edu/aggiehonor/

For this class, the interpretation of the code will be as follows: Unless specifically stated otherwise, all assignments are to be done on your own, unless specified otherwise. You may discuss general concepts, and get help in tracking down a persistent bug, but should not copy work, download code from the web or other sources, or work together with other students on problems or programs unless specifically stated otherwise. By turning in an assignment or exam, you are implicitly assumed to be committing to the honor code. If you are unsure of whether a type of cooperation is appropriate, check with the instructor or TA first. That is, you should err on the side of assuming cooperation is not allowed.

ADA Statement:
The Americans with Disabilities Act (ADA) is a federal anti-discrimination statute that provides comprehensive civil rights protection for persons with disabilities. Among other things, this legislation requires that all students with disabilities be guaranteed a learning environment that provides for reasonable accommodation of their disabilities. If you believe you have a disability requiring an accommodation, please contact the Department of Student Life, Services for Students with Disabilities, in Cain Hall or call 845-1637.