CENG 477 COMPUTER GRAPHICS METU, Department of Computer Engineering Fall 2015 Syllabus Instructors: ⁃ ⁃ Section 1 - Ahmet Oğuz Akyüz - akyuz@ceng.metu.edu.tr - Office: B210 Section 2 - Tolga CAN - tcan@ceng.metu.edu.tr - Office: B109 Teaching Assistants: ⁃ ⁃ ⁃ Arınç Elhan - arinc@ceng.metu.edu.tr - Room: BZ-19 Levent Eksert - eksert@ceng.metu.edu.tr - Room: A301 Mehmet Çelik - mçelik@ceng.metu.edu.tr - Room: A402 Schedule: ⁃ ⁃ Section 1: Thursday 13:40-14:30 BMB1, Friday 11:40-13:30 BMB1 Section 2: Wednesday 08:40-10:30 BMB1, Thursday 9:40-10:30 BMB1 Course Description: Hardware and software components of graphics systems. Output and filled data primitives. 2D and 3D geometric transformations. Two dimensional viewing: viewing pipeline, clipping, and windowing. Three dimensional viewing: viewing pipeline, viewing parameters, projections, viewing transformations, clipping, visible surface detection. Introduction to illumination models and surface rendering. Course Objectives: CENG 477 Introduction to Computer Graphics introduces the basic concepts of computer graphics and raster based methods. It also provides the necessary theoretical background for introductory computer graphics and demonstrates the application of computer science to graphics. It also offers an opportunity for students to formulate and implement applications of computer graphics. This course further allows students to develop programming skills in computer graphics by programming assignments. Prerequisites: None (C/C++ programming, basic linear algebra and analytic geometry knowledge are required) Text book: Peter Shirley and Steve Marschner, "Fundamentals of Computer Graphics", 3rd Edition, A K Peters, 2009, ISBN 978-1568814698 Reference Books: ⁃ Donald D. Hearn and M. Pauline Baker, "Computer Graphics with OpenGL", 3rd Edition, Prentice Hall, 2004, ISBN 978-0130153906 ⁃ ⁃ ⁃ ⁃ James D. Foley, Andries van Dam, Steven K. Feiner, and John F. Hughes, "Computer Graphics: Principles and Practice", 2nd Edition, Addison Wesley, 1995, ISBN 978-0201848403 Mike Bailey and Steve Cunningham, "Graphics Shaders", A K Peters, 2009, ISBN 978-1568813349 Peter Shirley and R. Keith Morley, "Realistic Ray Tracing", 2nd Edition, A K Peters, 2003, ISBN 978-1568814612 Kevin Suffern, "Ray Tracing from the Ground Up", A K Peters, 2007, ISBN 9781568812724 Grading: ⁃ ⁃ ⁃ ⁃ Programming Assignments: 30% (7.5% each) Midterm 1: 20% Midterm 2: 20% Final: 30% Programming Assignment Policies: ⁃ ⁃ ⁃ Programming assignments can be done in groups (2 students per group) Each programming assignment can be submitted up to 3 days late. Each late day incurs a penalty of 10 points. Programming assignment will not be postponed except for a system failure in the department computers. Cheating Policy: No joint work between different groups is allowed in assignments. Cheating groups will be punished according to the university regulations. Course Outline: (Tentative) Week 1 Introduction (goals) – 1 hr Images, displays, and human vision – 2 hr - Image properties - File formats and encodings - Color spaces - Gamma and gamma correction - Luminance - Human visual system Weeks 2 – 3 Recitation 1: Math review (vectors, matrices, linear algebra, lines, ...) Ray tracing – 6 hrs (HW1 on Basic Ray Tracing assigned at the end of third week: duration 2 weeks) - Camera/image plane properties - Ray equations - Ray sphere/triangle intersections (barycentric coordinates) - Surface shading (diffuse, specular, ambient) - Shadows - Recursive ray tracing (reflective, transparent materials) Week 4 Texture Mapping in Ray Tracing - Texture mapping a sphere (to show the idea of parameterizing a 3D surface with 2 parameters) - Texture mapping a triangle (using barycentric coordinates) - Nearest neighbor, bi-linear interpolation Week 5 Modeling Transformations in Ray Tracing – 2 hr - Hierarchy of transformations (rigid body, uniform, affine, projective), - Translation (homogeneous coordinates) - Scaling - Rotation (all in 3D) Week 6 Midterm 1 on Ray Tracing (HW2 on Texture Mapping and Transformations in Ray Tracing assigned at the end of sixth week: duration 2 weeks) Data structures for speeding-up ray tracing Week 7 Recitation 2: OpenGL introduction Introduction to Fixed Function Pipeline Transformations in OpenGL Viewing – 3 hrs - External camera transformations (duality with model transformations) - Orthographic projection - Perspective projection - Viewport transformation Week 8 Rasterization – 3 hr - Line rasterization - Triangle rasterization - Interpolation of vertex attributes Week 9 Shading (Flat, Gouraud, Phong) – 2 hrs (HW3 on Rendering in OpenGL assigned at the end of ninth week: duration 2 weeks) Texture mapping in OpenGL – 1 hr Weeks 10 - 11 Midterm 2 on OpenGL Recitation 3: OpenGL shaders Shaders (vertex and pixel shaders) – 5 hrs Vertex arrays, buffers, indexed rendering – 1hr Weeks 12-13 Shadows (HW4 on Shadow Mapping assigned at the end of the twelfth week: duration 2 weeks) - Depth buffer - Shadow mapping Week 14 Graphics in the real world - Blender - Unity