Introduction to Computer Graphics
2020 Fall
Office Hour

13:20~16:20, wednesday or By appointment

Lectures
Week Content Notes Assignment

01

  • Course introduction
  • Image color and cameras
  • Color and light
  • File format and compression
[Lecture 01]  [Lecture 02]  [Lecture 03]  [Lecture 04] 
  • Project 1 announce and will be due and demo at 10/07.

02

  • Color quantization
  • Dithering
[Lecture 06]  [Lecture 05] 
  • Project 1 announce and will be due and demo at 10/07.

03

  • Image manipulation
[Lecture 07] 
  • Project 1 announce and will be due and demo at 10/07.

04

  • P1 Demo

  • Composition 

[Lecture 08] 

05

  • Transformation
  • View and projection
[Lecture 09]  [Lecture 10] 

06

  • Clipping
  • Visibility 
[Lecture 12]  [Lecture 11] 

07

  • P2 Demo
  • Visibility
  • Rendering 
[Lecture13] 

08

  • Rendering
  • Modeling: description of shapes
[Lecture 14] 

09

  • Parametric representation
[Lecture 15] 

10

  • P3 Demo

  • Object representation

[Lecture 16] 

11

  • Subdivision 
[Lecture 17] 

12

  • Texture mapping 
[Lecture 18] 

13

  • GPU shading
  • Parallel computation with GPU
[Lecture 20]  [Lecture 19] 

14

  • P4 Demo
  • Global illumination 
[Lecture 21] 
  • Project 5 due and demo at 01/13 or 01/20.

15

  • Global illumination
  • Animation
[Lecture 22] 
  • Project 5 due and demo at 01/13 or 01/20.

16

  • Animation
  • Project 5 due and demo at 01/13 or 01/20.

17

  • Project 5 due and demo at 01/13 or 01/20.

18

  • Project 5 due and demo at 01/13 or 01/20.

19

  • P5 Demo?
  • Project 5 due and demo at 01/13 or 01/20.

20

  • P5 Demo?
  • Project 5 due and demo at 01/13 or 01/20.
PreRequisites

Technically, Data Structures and some familiarity with linear algebra.

 

請有修課的同學,填寫此表單

 422464.png

Reference books

red_book.jpg

Mason Woo, et al. The OpenGL Programmer's Guide.

  • This is sometimes known as the "red book." 

The current edition is the 6th edition, but for the purposes of this class an older edition would be OK too. If you don't want to buy this book, the complete contents of the older version is online in html. There used to be an online PDF version as well, but it seems to have vanished. The old edition is OK for most things, the critical chapter in the 6e will be provided online in class. 

  • There will be some readings from this book, and its an important reference.

rtr3.jpg

Tomas Akenine-Mller and Eric Haines. Real Time Rendering, 3e.

  • This book is specifically about real-time rendering, and is very useful if you're interested in interactive stuff like games. It is really well written, and has great discussions of a lot of the basic topics. The new edition just came out (so new its out of stock most places), and is quite encyclopedic. Its an awesome reference book, but a little hard to learn from, so I highly recommend it if you are serious about graphics. 

 

Exam

 


Grading
  • Mutual discussion and participation: 30%
  • Projects (15, 10, 10, 10, 25% each): 70%
Homework
  1. For each programming assignment, create a working directory named: YourStID-Name-AXX, e.g. \B10415001-張XX-A01\, and create solution files and source code files in the directory
  2. After finishing your work, zip the working directory with solution/project files and source code files only into a file name: YourStID-Name-AXX.zip.Keep your files as concisely as possible.
  3. Upload the zip file to Moodle.
  4. Remarks: to make sure your uploaded work could be unzipped and compiled and tested correctly, suggest that you can download the uploaded file and test it again.(suggest compile RELEASE program to demo)
Syllabus

Tentative Syllabus

  • Introduction
    • Administrative matters
    • What's computer graphics
    • Light and the human visual system
    • Color
  • Image Algorithms and 2D Special Effects
    • Images, quantization and sampling
    • Image manipulations
    • Flood fill, dithering
    • Point processing (contrast enhancement, compositing)
    • Filtering
  • Raster graphics
  • Coordinate systems and transformations
    • Homogeneous vector and matrix notation
    • 2D/3D transformations
    • Chaining transformations
    • Nonlinear transformations (free form deformation)
  • The graphics pipeline and toolkits
    • Graphics programming and OpenGL
    • Event-drivenprogramming
  • 3D Viewing and Projection:
    • Perspective projection
    • Viewing coordinate systemsand view volumes
    • Clipping
  • Hidden surface removal
    • Introduction to Visibility
  • Rendering
    • Line and polygon scan conversion
    • Painter's algorithm
    • Z-buffer algorithm
    • Local shading models
      • Illumination and reflection
      • Gouraud & Phong shading
    • Texture mapping
  • Modeling Hierarchies
    • What hierarchies are and why we use them
    • Matrix stack primitives
    • Hierarchy algorithms
    • Modeling examples
    • Getting the right "control knob"
    • Hierarchies w/nonlinear transformations
    • Interface and implementation issues
  • Geometric Modeling
    • Modeling with polygons
    • Spline curves: natrual, hermite, bezier, etc.
    • Recursive subdivision, forward differencing
    • Bicubic surfaces
    • Solid primitives, sweeps, B-reps
    • Implicit surfaces, quadrics, blobs
    • Booleans, CSG
    • Fractals
  • GPU Related
    • Shaders
    • CUDA and OpenCL
  • Raytracing
    • Ray-surface intersection testing
    • Ray casting
    • Shadows and Transparency
    • Recursive ray tracing
    • Spatial data structures for optimization
  • Global shading
  • Animation
    • Traditional cel animation
    • Keyframes: state space points and trajectories
    • Inbetweening: linear interpolation
    • Interpolating splines, slow in and out, etc.
    • Procedural animation
    • Inverse Kinematics
    • Dynamics and control
    • Interface and implementation issues
  • Other topics