CSS
451: 3D Computer Graphics
Spring 2007
Room UW1-020, T/TR 5:45pm-7:50pm
Computing and Software Systems
Name
Email |
Office Hours: |
TR 1:30-3:30 pm Or by appointment |
|
|
Phone |
(425)-352-5420 (phone for appointments only
please) |
Office: |
UW1-339 |
In this course, we will learn some of the practical and popular three dimensional (3D) graphics algorithms. The foundation mathematics required will be studied. Three major aspects of 3D graphics will be studied. 1. Modeling: how to describe or build three-dimensional objects.2. Animation: how to describe the motion and interaction of the modeled 3D objects. 3. Rendering: how to generate images of the modeled 3D object in animation.
This quarter we will concentrate on studying rendering effects that can be achieved in real time on mid-range to low-end machines. For example, we will study how to take advantage of modern graphics hardware in generating: transparency, reflection, shadow, etc. in real time.
Prerequisites: CSS 450 or equivalent.
|
Programming Assignments (4) |
~55-65% |
|
Take Home Mid-Term (if any) |
~10% |
|
Final Project |
~35% |
|
In class participation |
~5% |
Required
Text:
Recommended
Reference Texts:
Other
Reference Texts:
Week
|
Topics
|
|
Date
|
Note: |
|
1 |
Intro + Review D3D/MFC 3D Coordinate System |
Chap 13 + 14 |
March 27, 29 |
Assign: MP #1 |
|
2 |
Mathematics for Graphics |
Appendix A |
Apr 3, 5 |
|
|
3 |
Extending Concepts to 3D |
Chap 16 |
Apr 10, 12 |
Due: MP
#1 Assign: MP
#2 |
|
4 |
Polygonal Modeling + Mesh |
Chap 16 |
Apr 17, 19 |
Due: MP #2 Assign: MP
#3 |
|
5 |
Illumination Equation and Shading |
Handout |
Apr 24, 26 |
Assign: Final Project |
|
6 |
3D Viewing and the Camera Camera manipulation and control |
Chap 15 |
May 1, 3 |
Due: MP #3 Assign: MP
#4 |
|
7 |
Texturing Mapping Final Project: proposal presentation |
Handout |
May 8, 10 |
Due: final project proposal + presentation |
|
8 |
The Rendering Pipeline Hardware Buffers: Stencil/Blending |
Handout |
May 15, 17 |
Due: MP #4 |
|
9 |
Effects: Fog, Reflection, Shadows Final Project Progress Presentations |
Handout |
May 22, 24 |
Due: Final project progress demo |
|
10 |
Guest Lecture: CG in Games Final post test |
|
May 29, 31 |
|
|
11 |
Final’s Week: Project Demo & Presentation |
Notice this is Thursday!! |
June 7 |
Due: Final Project in class |
Submitting
Programming Assignments (MPs):
Submitting Source Code: You will submit your source code of each programming assignment (or machine problem, or mp) and I will run/test your submissions. We will be using the e-Submit facility. Here is the link to our course submission area. Before the due time of each mp, a folder with the corresponding mp number will be created here (e.g. mp1, mp2, etc.). Before the due time of the assignment, you should:
For example, for mp1, I will create a folder name
“KelvinSungMP1” (notice once again, no spaces in the folder name). You should try
downloading your submission and make sure everything works. DO NOT wait for the
first mp submission to try this. On the due date of the mp, the corresponding
directory will be close at precisely the due time. After which, you will
not be able to submit your work! I will not accept submissions via
emails. You are responsible to ensure that the files you submitted are correct.
There will be no exceptions! If there is an emergency and/or personal
difficulty, please talk to me in person. Remember to document your code, and
practice the good programming skills you learned in CSS 343. You will be graded
on your programming styles.
Assignment Deadlines: There will be no late assignments accepted. Let me put this in another way, there will be no late assignments accepted. These apply to both homework assignments and machine problems. Pay attention to the deadline on the assignments (including the time), there will be no late assignments accepted. Let me explain this again, there will be no late assignments accepted. I am actually a reasonable person, come talk to me about exceptional circumstances. You know the deadlines now please plan ahead.
Lateness to classes: It does not bother me, just don’t disturb anyone. On the days the homework assignments are due, the due time will be 10 minutes after class time. So you may wish to make sure you are not more than 10 minutes late for those classes. If you want to leave early, it would be very nice if you could give me advance warning. If that’s too much trouble, or if you forgot, don’t worry, just don’t disturb anyone and leave quietly.
Commitments and such:
I am usually very easy going. I like relaxed classrooms for learning and will
try my best to create such an environment. Please do not confuse relax
environment with relax requirements. I work very hard, and expect students to
work as hard. On average, each percentage of your assignments should represent
one-two hours of outside-of-class time. For example, MP#1 worth 8%, so on
average, you will probably need about 10-15 hours to finish this assignment.
Please use this as a reference and let me know if you are spending too much
time on the assignments. If most of you are experiencing the same problem, then
we will have to adjust the amount of work. Please seriously consider if you
have the time this quarter for this class. If you do have the time, please stay in this class, I will work very hard and
try my best to make this class a worthwhile learning experience for you.
Collaboration: You are
expected work on your own for the first three programming assignments.
Discussions of problems with fellow students are ok, provided you do not
exchange algorithms, or copy code. You may always discuss any problem with me.
You are expected to subscribe to the highest standards of honesty. Failure to
do this constitutes plagiarism. Plagiarism includes copying assignments in part
or in total, debugging computer programs for others, verbal dissemination of
algorithms, and results, or using solutions from other students, solution sets,
other textbooks, etc. without crediting these sources by name. Plagiarism will
not be tolerated in this class, any more than it would be in the “real world”.
Any student guilty of plagiarism will be subject to disciplinary action. In the “real world”,
you are responsible for the security of your intellectual properties. In our
case, you are responsible for the security of your source code (either on
public hard disk, or on printed copies). Remember to erase your work from all
public hard disks, and to dispose the hard copies of your source code with
care. If someone did not break any law, and has identical solution as yours,
you are a suspect of plagiarism.
Group Assignments: Programming
assignment 4 and the final project are group assignments. You are encouraged to
form groups of 2 or 3 persons to work on these assignments. Please talk to me
if you wish to form a 3-member-group and you will be responsible for proposing
the extra features to justify the third member. If you choose to work alone,
you will receive extra credits.
Policy for forming groups: Depending
on your scores from the first three programming assignments, I will divide all
students in class into 2 or 3 sets. You can form groups only with students from
the same set. For example, if you are in Set-A and your best friend is in
Set-B, then the two of you cannot form a group! Sets will be determined based
on your performances in the first three programming assignments.
If you have any problem with this course, please talk to me as soon as possible. I would like to help in anyway I could, but I have to know there is a problem. If you fall behind in this class, it will be difficult to catch up.
Special Needs
If you believe that you have a disability
and would like academic accommodations, please contact Disability Support
Services at 425.352.5307 or at rlundborg@uwb.edu. In most cases, you will
need to provide documentation of your disability as part of the review process.
I will coordinate with the University to ensure that the appropriate
accommodations are made in this class.