CS 428 Introduction to Computer Graphics 2014-15

Instructor: Shanmuganathan Raman

Indian Institute of Technology Gandhinagar

Lecture Hall - S4-230

Lecture Hours - F Slot, Tutorial P2 Slot

Office - Shed 5 (216), Office Hours - K2 Slot

shanmuga@iitgn.ac.in

Description

Introduction to Computer Graphics is a PG level open elective and a Computer Science minor course. BTech, MTech and PhD students can opt for it. It is a course with applications and theory blended in almost equal amount. Some of the potential opportunities for Computer Graphics experts can be found at the SIGGRAPH website.

Course Contents

Introduction to human visual perception – visual system, eye, constancy, continuation, shadows; Graphics pipeline; Mathematical foundations – sets, functions, coordinates, operations on coordinates, intersections, triangles, polygons; Introduction to OpenGL and WebGL; Shaders – vertex, fragment, GLSL; Transformations – 2D, 3D; Cameras and transformations – perspective and orthographic; Ray casting and rasterization; Basic image processing tools and techniques – convolution, sampling, aliasing, Fourier transform, enlarging, shrinking; Textures – mapping, synthesis; Interaction techniques – multi-touch, mouse-based; Splines – polynomial curves, Hermite curve, cubic B-splines; Meshes – topology, geometry, applications; Light – physics, measurement, reflectance; Materials and scattering – object-level, surface, models; Color – perception, color spaces; Principles of ray tracing and rendering; Basics of motion and animation; Graphics hardware basics – NVIDIA GeForce 9800 GTX.

Textbooks

  1. Hughes, J., Van Dam, A., McGuire, M., Sklar, D. F., Foley, J. D., Feiner, S. K. & Akeley, K. (2014). Computer Graphics: Principles and Practice. Third Edition. Pearson Education. (Buy Cheaper Second Indian Edition)
  2. Matsuda, K., & Lea, R. (2013). WebGL Programming Guide: Interactive 3D Graphics Programming with WebGL. Pearson Education.

References

  1. Gortler, S. J. (2012). Foundations of 3D Computer Graphics. MIT Press.
  2. Hearn, D. D., Baker, M. P., & Carithers, W. (2010). Computer Graphics with OpenGL. Fourth Edition. Prentice Hall Press.
  3. Shirley, P., Ashikhmin, M., & Marschner, S. (2009). Fundamentals of Computer Graphics. Third Edition. CRC Press.
  4. Angel, E. & Schreiner, D. (2011). Interactive Computer Graphics: A Top-Down Approach with Shader-Based OpenGL. 6th Edition. Addison-Wesley.
  5. Angel, E. and Schreiner, D. (2014). Interactive Computer Graphics: A Top-Down Approach with WebGL. 7th Edition. Addison-Wesley.

Grading 

  • Mid-Semester Exam - 20%
  • End-Semester Exam - 20%
  • Project - 60%

Assignments

Pre-requisites

ES 102 or ES 112 Computing (For BTech students),  Familiarity with Linear Algebra and programming in C/C++ (For MTech and PhD students) .

Lecture Schedule and Reading Material

 Date

 Topics Taught

 Reading

 30 July 2014

Course Orientation

-

 1 August 2014  

Introduction to Graphics, Examples

CGPP Chapter 1

5 August 2014

 Sets, Functions, Points, Vectors, Dot & Cross Products

Tutorial: HTML5 Example1, Example2

CGPP Chapter 7

 6 August 2014

 Projection of Vectors, Line Segments, Lines - Parametric and Implicit, Intersection of 2 Lines

CGPP Chapter 7

 8 August 2014

Intersection of 2 lines. Ray-Plane Intersection, Ray-Sphere Intersection

 CGPP Chapter 7

12 August 2014

 Triangles, Barycentric Coordinates, Intersection of a Ray with a Triangle

Tutorial: Javascript

 CGPP Chapter 7, Moller-Trumbore Algorithm

Sample Codes for Tutorial

13 August 2014

 2D Linear Transformations - Invertible and Non-invertible, Rotation, Scaling, Shear

 CGPP Chapter 10, 2D Applet

19 August 2014

 2D Invertible Transformations, Design of Transformation Matrix, Eigenvalue Decomposition, Singular Value Decomposition (SVD)

Tutorial: Object Oriented Programming using Javascript, Canvas API

 CGPP Chapter 10

Sample Codes for Tutorial

 20 August 2014

 Linear Systems of Equations - Solutions using SVD, Least Squares Solutions, Translation through Matrices, Homogeneous Coordinates

 CGPP Chapter 10

 22 August 2014

2D Affine Transformations, Transformation of 3 Non-collinear Points, Rotation about a Point, Reflection of a Point along a Line, Composition of Matrices

 CGPP Chapter 10

 26 August 2014

Coordinate Frames, 2D Transformation of Points across Different Coordinate Systems, Example Problems on 2D Transformations

Tutorial: Canvas API and Basic Shapes

CGPP Chapter 10 Sample Codes for Tutorial

 27 August 2014

2D Transformation of Vectors and Covectors, 2D Projective Tranformation, Homogenization, Transformation of 2D Lines, Invariants of 2D Transformations

CGPP Chapter 10

 29 August 2014

 2D Transformations using Canvas API, 3D Transformations - Rotation (Euler Angles), Scaling, Shearing, Affine, Projective

 CGPP Chapter 11

2 September 2014

 Image Formats, Compositing Operations


Tutorial: Affine Transformations, Compositing, Images

 CGPP Chapter 17

Sample Codes for Tutorial

3 September 2014

 Introduction to Sampling, Convolution and Fourier Transform

 CGPP Chapter 18

5 September 2014

 Image Formation, Processing, Display, Continuous and Discrete Convolutions

 CGPP Chapter 18

 9 September 2014

 Fourier Series for Periodic Functions in L2

Tutorial: 2D Animation

 CGPP Chapter 18

Sample Codes for Tutorial

 10 September 2014

Fourier Transform for Aperiodic Functions in L2

 CGPP Chapter 18

 12 September 2014

Continuous Fourier Transform and its Inverse, Box Function, Properties - Compression, Convolution, Multiplication, Spatial and Frequency Domain Duality

 CGPP Chapter 18

 16 September 2014

 Sampling, Pulse Train and its Fourier Transform, Band Limiting and Reconstruction

Tutorial: Introduction to Three.js

 CGPP Chapter 18 Sample Codes

17 September 2014

 Applications of 2D Convolution - Line Rendering, DFT/FFT, Image Enlarging and Shrinking

 CGPP Chapter 18, 19

 25 September 2014    

 Mid Sem Exam

 

7 October 2014

Perspective Cameras, Near Plane, Far Plane, Field of View, View Frustum, Clipping, Windowing Transformation

Tutorial: Cameras in Three.js, Zooming in and out

 CGPP Chapter 13

Sample Codes


8 October 2014

Perspective View, Standard Pyramid View Volume, Perspective Transformation Matrix, Pyramid to Parallel Transformation Matrix, 3D Graphics Rendering Pipeline, Orthographic Projection

CGPP Chapter 13

 10 October 2014

Curves in Graphics

 CGPP Chapter 22

 13 October 2014

 Bezier and Hermite Curves

 CGPP Chapter 22

 14 October 2014

 Curves through Multiple Points

 CGPP Chapter 22

 17 October 2014

Light, Measurement of Light

CGPP Chapter 26

 18 October 2014

Radiance, Irradiance, Radiant Flux, Solid Angle

 CGPP Chapter 26

 21 October 2014

 Different Types of Light Sources

 CGPP Chapter 26

 22 October 2014

Scattering of Light, Reflecto Goniometer

CGPP Chapter 26

 24 October 2014

Reflectance, BRDF, BTDF, BSDF

 CGPP Chapter 27

 28 October 2014

Reflectance from Specular Surface, Problems in Tutorial

CGPP Chapter 27

 29 October 2014

Reflectance from Ideal Lambertian Surface

CGPP Chapter 27

 31 October 2014

 Phong, Phong-Blinn Reflectance Models, Phong and Gouraud Shading

CGPP Chapter 6, 27

 5 November 2014

 Color and Color Perception, Photometry

 CGPP Chapter 28

 7 November 2014
 Color Spaces and Conversion, Luminance and Chrominance
 CGPP Chapter 28
 11 November 2014    
 Light Transport, Rendering Equation, Ray Tracing, Photon Mapping
 CGPP Chapter 29
 12 November 2014
 Introduction to GPUs
 CGPP Chapter 38
 18 November 2014
 Project Presentations
 
 19 November 2014
 Project Presentations
 
 21 November 2014 Computer Graphics in Practice CGPP Chapter 14


Similar Courses Offered at Other Universities

Queries/Doubts

Mails should be addressed to my IITGN mail ID with the subject line "ICG DOUBT" (All capitals) for any doubts or clarifications or queries. Mailing with this subject line would enable me filter these mails with a different label and answer them in the next lecture.