CSS 451: 3D Computer Graphics
Winter 2013
Room UW2 205, TuTh
3:30pm-5:30pm
Computing and Software Systems
Contacting Me:
Name |
Office Hours: |
Tuesday:
12:00-1:00 pm Or by appointment |
|
Phone |
(425)-352-5420 |
Office: |
UW1-339 |
Information on the Course TA:
Name |
Office Hours: |
TTh: 2:30-3:30 pm |
|
Phone |
(425)-352-3272 (UW1-302) |
Office: |
UW1-302 (Knock on the door) or Windows Lab |
Introduces practical and popular three-dimensional (3-D) graphic algorithms. Examines modeling (how to build 3-D objects), animation (how to describe the motion of objects), and rendering (how to generate images of 3-D objects in animation).
Winter 2013: In this class, we will learn about the essence of 3D interactive applications including: user interface, virtual cameras and their manipulations, review of basic applied linear algebra, mesh and related data structures, hardware shading language, illumination model, texture mapping, and some foundational modeling techniques like rotational sweeps. After this class, students are expected to understand the basic computer graphics terminology, concepts, algorithms, and be able to design and implement 3D interactive computer graphics related programs.
NOT GOALS: We are not here to learn DirectX, OpenGL, XNA, GLUT, FLTK, MFC (Microsoft Foundation Classes), WPF, Swing, WinForm, Java, C, C++, etc. These are all transient technologies! In fact, these are so unimportant that you are free to choose any combination of the above technologies for doing your programming assignments and projects. I could care less, you just need to make sure the TA can compile run your project on our lab machines.
GOALS: The primary goal of this class is to ensure that, given typical GUI and graphics API, students will be able to design and implement interactive applications based on real life user requirements.
Prerequisites: CSS342 with a grade of C of better; may not be repeated.
Course Objectives:
The objectives of this course are for students to:
• Study the Model-View-Controller (MVC) software architecture and its support for implementing interactive graphical applications
• Understand the essential conceptual areas of 3D computer graphics: modeling, animation, and rendering
o Modeling: Coordinate transformation pipeline, basics of hierarchical modeling, mesh representation
o Animation: simple linear interpolation
o Rendering: illumination models
• Learn the programming model of modern 3D graphical Application Programming Interface (API)
o Issues behind 3D API design
o Device initialization
o Vertex and Pixel shaders
• Practice the graphics concepts learned based on a graphical API
Course Learning Outcomes:
Upon successful completion of the course, students shall be able to:
· CO-1: Discuss how MVC software architecture can support the implementation of 3D graphical applications.
· CO-2: Describe popular interactive graphical software systems (e.g., Microsoft Powerpoint, or Adobe Photoshop) in the context of MVC architecture.
· CO-3: Discuss the programming model of contemporary graphical API (e.g., OpenGL, Direct3D, or XNA).
· CO-4: Design and build 3D interactive graphical applications that supports:
o Real-time user control and manipulation of graphical scenes
o Graphical scenes with multiple camera views of 3D models
o 3D models organized as scene nodes in scene graphs with multiple transformable components
o 3D models rendered by custom vertex and pixel shaders with basic effects including: Lambertian and Per-pixel Phong illumination based on simple light source types (e.g., point, directional, and spot-light).
Programming Assignments (5-6) |
60% |
Weekly Quiz |
15% |
Final Project |
25% |
Required Text: we don’t have one. We will read different chapters from different books. I will post the reading material on our course website based on chapters from the following textbooks:
Required Readings:
A. Essentials of Interactive Computer Graphics, Kelvin Sung, Peter Shirley, Steven Baer, Wellesley, MA., A K Peters Ltd, 2008.
1. Chap 1 – 5: Event Programming + GUI + MVC
2. Chap 8 & 9: Transformation and compositing transforms
3. Chap 13: Simple 3D Scene Construction
4. Chap 14: 3D Viewing Volumes
5. Chap 15: Camera Manipulations
B. Real-Time Rendering, Third Edition, Tomas Akenine-Moller and Eric Haines, AK Peters, 2008.
1. Chapter 2: Rendering Pipeline
2. Chapter 3: GPU + Shader
C. Interactive Computer Graphics – A Top-Down Approach With OpenGL, fourth edition, Edward Angel, Addison Wesley, Boston, 2006.
1. Chapter 6: Illumination and Lighting
D. Graphics Shaders: Theory and Practice, Mike Bailey and Steve Cunningham, AK Peters, 2009.
1. Chapter 1 and 2: GPU + Rendering Pipeline
E. 3D Math Primer for Graphics and Game Development, Fletcher Dunn, and Ian Parberry, Wordware Publishing, Inc., 2002.
1. Chapter 4 and 5: Vector Math
F. More will probably follow
General References:
· Fundamentals of Computer Graphics, third edition, Peter Shirley and Steve Marschner, Wellesley, MA., A K Peters Ltd, 2009.
·
Interactive Computer Graphics –
A Top-Down Approach Using OpenGL,
fifth edition, Edward Angel, Addison Wesley, Boston, 2008.
Week
|
Topics
|
Reading
|
Date
|
Note
(Subject to change)!!
|
1 |
Event Driven Programming Drawing with Graphics API |
A1 |
Jan 8, 10 |
Assign: MP #1 |
2 |
MVC Framework Viewing Volume + Virtual Camera |
A1, A3 |
Jan 15, 17 |
Due: MP #1 Assign: MP #2 |
3 |
Fixed Functional Pipeline + World Matrix: Transformation NSF TUES PI Conference (no class) |
B1, D1 |
Jan 22, 24 |
Due: MP #2 Assign: MP #3 |
4 |
Transformation + Camera Manipulation Rotation in 3D + Math for 3D Graphics |
A5, A2 E1 |
Jan 29, 31 |
Due: MP #3 Assign: MP #4 |
5 |
IEEE Computer Editorial Meeting (may be no class) Hierarchical Modeling |
Catch up on
reading |
Feb 5, 7 |
|
6 |
Shading Architecture + HLSL Phong Illumination Model |
D1, B2,
On-line reference |
Feb 12, 14 |
Due: MP #4 Assign: MP #5 |
7 |
Texture Mapping Texture Placement + Texture Filtering |
C1 |
Feb 19, 21 |
|
8 |
Procedural Textures + Noise |
More to come |
Feb 26, 28 |
Due: MP #5 Assign: MP #6 |
9 |
Multi-pass Rendering: Shadows + Reflection ACM SIGCSE Conference (no class) |
Mar 5, 7 |
||
10 |
Modeling: Index Primitives + Rotation Sweep |
Mar 12, 14 |
Due: MP #6 Assign: Final Project |
|
11 |
Final’s Week: Final Project Demo in class |
Mar 19 |
Due: Final Project |
Submitting Programming Assignments (MPs):
Submitting Source Code: You will submit your source code of each programming assignment (or machine problem, or mp) and the TA will run/test your submissions. We will be using the catalyst facility (refer to the course web-site for submission link). There is a folder with the corresponding mp number on the submission site (e.g. mp1, mp2, etc.). Before the due time of the assignment, you should:
· Create a folder containing all the relevant source files of your mp and no more. Having extra useless/irrelevant files in that folder will result in lost credits. Please clean up both obj and bin folders before you copy your files over. These folders can be huge and will take up unnecessary time/space.
· WARNING: 3% of each mp’s grade will be deducted if your submission includes the contents of obj or bin folders, or any useless files (e.g., .ncb, etc.)
· Use your first and last name and mp# as the name of your folder. Please do not include blank space as part of the name for this folder (i.e. do use “KelvinSungMp1” as folder name, and do not use “Kelvin Sung MP1” with blank spaces.)
·
Please zip up our folder into
one zip file. Go to our course
submission area and “turn in” you .zip file.
·
Submit as many times as you
wish, the TA will only look at the last one received before the deadline.
Please do not submit hard copies of your program. Let’s safe some
trees, we will look at your source code electronically.
There is a “Test Turn-in” assignment for you to try things out. Please do try it before the first MP due date! If I do not see a test submission and you have trouble submitting your first assignment at the last minute, I will not help you. I can only help those who tried.
In addition, and very importantly, you should always download your submission, un-zip/compile/run to ensure your submission is correct. Remember, the TA will download your submission, unzip, double-click on the .sln file to compile and run. If the TA cannot download, double click on something (in case you choose to work with another programming language and API) and run/compile your program, you will receive a zero. You have been warned.
You are responsible to ensure that the files you submitted are correct. 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! We will not accept submissions via emails. You are responsible to ensure that the files you submitted are correct. Minor submission mistakes (e.g. missed a small file) will result in 10% deduction from the assignment. Major submission mistakes (e.g. forgot to include a major source code file) will be treated as incomplete assignment and you will get 0% for the assignment. On a case-by-case basis, I will decide if a submission mistake is minor or major. 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 342.
Weekly
Quizzes: We usually have weekly short quizzes. When we do have a quiz, an email will be sent
to your @u.washington.edu email account on Friday at 6pm, and you have till the
following Monday to go on-line and complete the quiz. You will have one hour to
do the quiz (typically it should not take you more than 10-20 minutes) and
remember, you cannot save and
come back to the quiz. Please find a proper internet connection for taking the
quiz (e.g., take the quiz in our lab). If you take the quiz on your fancy phone
and the connection was dropped during the quiz, you will receive a zero. If you
do not check your @u email account, start doing that now!
Assignment Deadlines: 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. If you want to leave early, it would be very nice if you could give me an advance warning. If that’s too much trouble, or if you forget, don’t worry, just don’t disturb anyone and leave quietly.
Commitments and such: I am usually 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 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 is worth 10%, so on average, you will probably need about 10-20 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 hard and try my best to make this class a worthwhile learning experience.
Collaboration: Discussions of problems with fellow students are ok, provided you do not exchange algorithms, or copy code. You may always discuss any problem with the TA or I. 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[1]. 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.
If you have any problem with this course, please talk to me as soon as possible. I would like to help in any way 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.
Academic
Conduct
Student
Code of Conduct: http://apps.leg.wa.gov/WAC/default.aspx?cite=478-120:
“The university is a public institution having special responsibility for providing instruction in higher education, for advancing knowledge through scholarship and research, and for providing related services to the community. As a center of learning, the university also has the obligation to maintain conditions conducive to freedom of inquiry and expression to the maximum degree compatible with the orderly conduct of its functions. For these purposes, the university is governed by the rules, regulations, procedures, policies, and standards of conduct that safeguard its functions and protect the rights and freedoms of all members of the academic community.”
…
“An instructor has the authority to exclude a student from any class session in
which the student is disorderly or disruptive. If the student persists in the
disorderly or disruptive conduct, the instructor should report the matter to
the dean of the school or college, or, at the University of Washington Bothell
and Tacoma campuses, to the dean or director of the program in which the
student is enrolled.”
Academic Integrity and Plagiarism: See http://www.uwb.edu/studentservices/academicconduct
for crucial information regarding academic
integrity. The library also has an extremely useful website with
resources at http://libguides.uwb.edu/ai. You are responsible for knowing what constitutes a
violation of the University of Washington Student Code, and you will be held
responsible for any such violations whether they were intentional or not.
Plagiarism is one of the most common violations of academic integrity, so
please pay attention to both the web information and when your instructor
explains all of this in class. In short, do your own work, and clearly cite all your sources. If you
are unsure, ask for help!
Privacy: The opinion you expressed (in class discussion, in written assignments, on our course discussion board), are yours. None of this information will be shared with anyone, not even your parents.
Special Needs
If you believe that you have a disability
and would like academic accommodations, please contact Disability Resources for Students
(UW1-175) at 425.352.5307 or at drs@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.
Other
potentially useful/important information
H1N1 and Other
Communicable Diseases Action Steps:
As part of the campus
community’s shared responsibility for minimizing the possible spread of H1N1
virus and other diseases this year, it is critical that all students are
familiar with the symptoms of H1N1 Flu described on the UW Bothell website at
http://www.uwb.edu/flu. Any student or instructor with flu-like symptoms is
encouraged to stay at home until at least 24 hours after they no longer have a
fever without the use of fever-reducing medications. If you are sick and have
an extended absence, please speak with me regarding alternative ways to
maintain your progress in your courses. If I am sick and need to cancel class,
I will post an announcement on Blackboard.
Inclement Weather:
Please check if the campus may
be closed due to weather. Information about
suspension of operations will be
made public and available through the media. Students can learn of campus
operations status from the website or by calling the Campus Information Hotline
425.352.3333. You may also sign up with an alert system that will contact you
via email or text message if classes are canceled. For more information on the
alert process, please see http://www.uwb.edu/alert. Class activities will be rescheduled as needed.
Student Support Services:
IT Helpdesk: IT@uwb.edu , 425-352-3456
Library: http://library.uwb.edu/
425-352-5340
Writing Center: www.uwb.edu/WritingCenter/
425-352-5253
Quantitative Skills Center: http://www.uwb.edu/qsc 425-352-3170
Student Success Services: http://www.uwb.edu/cusp/studentsuccess
425-352-3776
Career Services: http://www.uwb.edu/careers
425-352-3706
Student Counseling Services: http://www.uwb.edu/studentservices/counseling 425-352-3183
[1] This paragraph is copied in its entirety from Dr.