CSCE 441 Computer Graphics Fall 2018 Meetings: Monday, Wednesday, Friday 9:10-10:00 a.m. Location: HRBB 113 Instructor: Dr. John Keyser Office: 527C, H.R. Bright Building Phone: 458-0167 Email: keyser@cse.tamu.edu Office Hours: Monday 1:30-2:30, Wednesday 10:30-11:30, or by appointment Teaching Assistant: Hang Li Office: 2016 Emerging Technologies Building (ETB) Email: hangli@tamu.edu Office Hours: Tuesday and Thursday 2:00-4:00 Website: http://courses.cse.tamu.edu/keyser/csce441/ Official Course Description: Principles of interactive computer graphics; 2-D and 3-D rendering pipelines, including geometric object and view transformations, projections, hidden surface removal, and rasterization; lighting models for local and global illumination; hierarchical models of 3-D objects; systems and libraries supporting display and user interaction. Topics and Goals: This course deals with the fundamentals of computer graphics: the ways that calculations are performed to allow us to generate images on the screen. We will describe the basic algorithms and concepts that form the foundations of most modern graphics systems. The emphasis will be on 3D computer graphics and the techniques needed to model and manipulate 3D objects, and how we can model the interaction of light and physical properties to compute visual representations of objects. However, fundamental 2D operations will also be discussed. Goals: Become familiar with basic 2D rendering concepts and algorithms, including line drawing, line and polygon clipping, polygon filling, and basic 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. Be able to write basic graphics programs, using OpenGL. Specific Topics we should cover include: Overview of graphics applications, history, technologies 2D primitive drawing, including scan conversion, polygon filling, clipping, and antialiasing
3D geometric transformations including translation, rotation, and scale Specification of view frusta and projections (parallel and perspective) Hidden surface removal and z-buffering Color models and blending (transparency) Basic illumination (flat, Gouraud, Phong) and shading Texture mapping Hierarchical 3D model specification Basics of geometric and solid modeling (curves and surfaces) Ray-tracing Event-driven programming Programmable shaders OpenGL syntax and programming Learning Outcomes: Upon finishing this class, students should be able to: Describe the process for 2D rasterization and implement basic 2D operations Perform calculations to position objects in a virtual 3D world, and determine where they would project in an image produced from that world Calculate the colors at points on a surface, given lighting and material properties of objects Define key terms related to the 3D rendering process Write programs that generate images of 3D scenes, using a modern graphics library Prerequisites: CSCE 221 and Junior or Senior classification. Note that although the prerequisite is just CSCE 221 (no specific later course material is needed), the course will involve significant programming and use of mathematics. If you do not feel comfortable implementing significant size software projects involving mathematical computations from a given description of an algorithm, you may need more experience before you are able to do well in this course. In addition, students are expected to 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 will have had enough prior exposure from high school precalculus courses. A review of the relevant material is given in the textbook (Appendices A.2-A.5). To ensure that all students are familiar with this material, an online quiz will be required (described below). Textbook: Recommended: Computer Graphics with OpenGL, by Hearn, Baker, Carithers, 4 th edition. I will give reading references from this book that may be useful for supplementary study or a different way of looking at/describing the topics we discuss in class. However, there will not be any required assignments from the book. Assignments and Grading: Grading will be made of 5 components: There will be several (6-8) homework assignments throughout the semester. These may involve written work, programming, or both, and may vary significantly in difficulty. Each assignment will have a possible score, and each student will receive a given score for that assignment.
The overall homework grade will be the sum of the given scores divided by the sum of the possible scores. I expect in the range of 900-1000 total homework points. There will be a midterm. The expected date for this will be Friday, October 19. There will be a final exam. This will be given during the scheduled Final Exam time (Monday, December 10, 8:00-10:00 a.m.) 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. The overall grade will be determined as follows: Homework: 50% Midterm: 15% Final: 35% Linear Algebra Review: Multiplier of either 0 or 1 on entire grade 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. The grading scale will be: 90% or more = A 80% to 89.999% = B 70% to 79.999% = C 60% to 69.999% = D Less than 60% = F Schedule The following is the expected schedule, including the topics I expect to cover each week. However, as the semester goes on, this may be adjusted. Weeks Topic 1-2 Introduction; 2D Graphics Operations and Scan Conversion 3-4 Display, Perception, and Color 5-6 Coordinate Systems, Transformations, and Camera Specifications 7 Hidden Surface Removal 8-9 Lighting and Shading 10 Texture Mapping and Transparency 11-12 Global Illumination 13 3D Modeling 14 Additional Topics TBD
Policies Absences: University excused absences will be handled consistent with Student Rule 7 http://studentrules.tamu.edu/rule07). If you have an excused absence that delays the submission of an assignment or causes you to be absent from an in-class exam, you should report this to the instructor, with documentation, as soon as possible. Depending on the length and timing of the absence, it may mean allowing an extended period to complete work, completing an alternative exam/assignment, or dropping the assignment. Note that missed in-class discussions cannot be easily made-up, so it is your responsibility to work with the instructor to learn any material missed; this could include discussing with other students or setting up individual meetings. Students with unexcused absences should not expect to receive additional help from the instructor/ta in going over missed material, however. Late Assignments: The total number of minutes, m, that assignments are late will be determined. The score on the assignment will be multiplied by a late penalty of 0.9998 m. For example, if an assignment is 1 hour late, you lose a little over 1% of the grade. If it is one day late, you lose about 25%. After 2 days you will have lost 44%, and after 3 days you will have lost 58%. For some assignments (for which an answer key might be handed out, final grades assigned, etc.), there may be no late assignments accepted after a certain point; this will be stated when applicable. 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 code is presented in a clear, readable way. Even if your code works, if the grader can t understand it, you may lose points. Communication: We will use several methods of communication in this class. You are expected to keep up with all of these. a) A course webpage (listed at the top of the syllabus) will be the primary site for the class. I will try to maintain a schedule giving expected future plans (subject to change), assignments, readings, etc. at this location. b) We will use a piazza page for class discussion. This may be used for announcements and copies of course material may also be posted here. c) Ecampus will be used for submitting homework and posting grades. I do not anticipate using ecampus as a primary repository for course material. d) Email communication will be used for important announcements. Email addresses may be taken from Howdy, from Ecampus, or from Piazza. If you use different addresses in any of those locations, you may need to check all email addresses for email relevant to the class. 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: http://aggiehonor.tamu.edu/
All the assignments in this class are individual assignments. Tools will be used to help detect possible cases of unallowed collaboration. Collaborating with other students on assignments, beyond general discussions, is not allowed. In general, that means that if you are looking at someone else s code, or someone else s written answer, or sharing/collaborating on detailed pseudocode, it s not allowed. If you are talking in general terms with other students about how to do something, it s probably fine. 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 Disability Services, currently located in the Disability Services building at the Student Services at White Creek complex on west campus or call 979-845-1637. For additional information, visit http://disability.tamu.edu.