Teacher

歐陽明 Ming Ouhyoung
ming[at]csie.ntu.edu.tw

TAs

葉哲華 Che-Hua Yeh
chyei[at]cmlab.csie.ntu.edu.tw
TA Hour - R501, Tue. 2:00~4:00 pm

屠愚 Yu Tu
tantofish[at]cmlab.csie.ntu.edu.tw
TA Hour - R506, Wed. 9:00~11:00 am

Lecture Notes

user/password: icg2011/icg2011

Lecture slides Part I
Lecture slides Part II (2011/09/15)
Part II supplementary
Lecture slides Part III (2011/09/15)
Radiosity (2011/11/28)
OpenGL slides part I
OpenGL slides part II
Edward Angel's slides

Links

About ICG
3D Models

Last Updated

Latest News

2011/09/19 2011 ICG first class
2011/10/03 HW #1 announcement
2011/10/11 The deadline of HW #1 is extended to 2011/10/31.
2011/10/26 The TA information has been updated.
2011/10/31 The midterm will be held on 11/21.
2011/11/07 HW2 is announced.
2011/11/13 The download link for 2010 exam paper
2011/12/05 The course in 12/12 will be canceled due to SIGGRAPH ASIA 2011 conference.
2012/01/17 The scores of each HW are announced. Please contact TAs before 1/18 if there is any wrong. Score Table
2012/01/19 Final Score Table Please contact TA if there is any wrong.


HW Submission Status

Please send your source codes of HW1 and HW2 to TAs for 工程認證.
(Please send to chyei23[a]gmail.com if any error occurred.)

Status LINK
Please contact TAs if there is anything incorrect.


Term Project

Schedule
2011/12/19Final Project Oral presentation #1
2011/12/26Final Project Oral presentation #2
2011/01/02Final Project Oral presentation #3, Final Project Demo #1
2012/01/09Final Project Demo #2
2012/01/11Final Project Report Deadline (5:00 pm)

The report of your final project is required. Please send the report to TA (chyei[@]cmlab.csie.ntu.edu.tw) and hand in a hard copy to TAs or Professor's mail box in R339.

Term Project Reference List
Term Project References
Ray Tracing Source
Radiosity Source
Dance Animation


Midterm

Time: 2011/11/21 (Monday)

Range: Class material covered before midterm

Midterm is open-book, you can take notes, texts and any kinds of resource materials; however, please remember everything should be "on paper", electronic devices are not allowed.

2010 midterm questions



Homework #2

Deadline: 2011/12/05 (Monday)

You are required to do the following things in homework #2:
1. Flat shading and Gouraud shading (You can use OpenGL functions to implement them)
2. Phong shading (Must implemented by yourself with shading language)
3. You should provide the function to change different shading methods without re-writing the program.
4. Put "at least" three OpengL lights(glLight) in the environment, and shine them on the object. The three lights should be placed at the top-right-front, bottom-left-front and bottom-left-back sides of the object.
5. You should provide the ability to switch each light on/off independently. The lighting effect of each light must be presented.

Reference
1. HW #2 Guide link
2. Shader code example link
3. GLSL Tutorial http://www.lighthouse3d.com/opengl/glsl/
4. GLSL Document http://www.opengl.org/documentation/glsl/
5. OpenGL Reference Page http://www.opengl.org/sdk/docs/man/
6. HW #2 skeleton code link
7. The slides of Dr. Chen's (陳維超博士) talk "GP-GPU shader language and architecture" 2009 link

Expected Result:
1. Flat Shading:

2. Gouraud Shading:

3. Phong Shading:


Homework #1

Deadline: 2010/10/31 (Monday)

You are required to do the following things in homework #1:
1. Load a 3D model file of TRI format. Draw it in wireframe mode and view it in perspective view.
2. You should provide object rotation mode and camera rotation mode, and implement basic transformations such as rotation, translation, scaling and shear.
3. The camera (eye) can be moved around and into the model.
4. Clipping is required. Try to show the difference between clipping and non-clipping.
** You can not use functions gluPerspective and glFrustum !!

Download 3D Models and TRI format link, Balls.tri link
OpenGL Tutorial link (user/pass: icg2011/icg2011)
OpenGL Example code link
Tri Model Loader link

PS:
1. No doubt you can re-write or change any part of the Tri Loader to perform other functions.
2. The format of Pot.tri model is a little bit different. You can skip it, adjust the tri file or altering the code of Tri Loader.
3. The green rectangle in the result examples only shows the x-y clipping range, nothing deal with the viewing settings and conditions.
4. You should provide scaling on each axis independently, not scaling on three directions at the same time.

If there is any questions or suggestions, please contact with TAs.

Homework #1 Baseline Requirements

The supplementary detail description of the baseline requirements:
1. You should provide the function to change different models without re-writing the program.
  (Select/reload/change or other functions supporting equivalent results are all allowed.)
2. (1). Camera rotation mode, much like the concept of planet revolution, means that you can either
   I. rotate the camera around the object (with object as the origin), or
   II. rotate the object around the origin, camera or other specified point.
  (2). You should provide the rotation, translation and scaling on each of all three axes.

Expected Results

Some result examples are provided below; however, please remember "They are examples just for reference, not what must be done in the same way."

00. Load model


01. Change different models


02. Object rotation mode


03. Camera rotation mode


04. Translation


05. Scaling


06. Shear


07. Camera(eye) movement


08_1. Clipping on x, y (The green rectangle only shows the x-y clipping range.)

08_2. Clipping on z far plane


08_3. Clipping on z near plane


08_4. Adjust clipping range (or you can do the function of turning on/off clipping effect.)


If there is any questions or suggestions, please contact with TAs.


Text Book

Interactive Computer Graphics: A Top-Down Approach Using OpenGL5th edition