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/19 | Final Project Oral presentation #1 |
|---|---|
| 2011/12/26 | Final Project Oral presentation #2 |
| 2011/01/02 | Final Project Oral presentation #3, Final Project Demo #1 |
| 2012/01/09 | Final Project Demo #2 |
| 2012/01/11 | Final 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 ListTerm 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