CSS 451A/590B: 3D Computer Graphics

Fall 2017

Room UW2 031, TuTh 5:45pm-7:50pm
Computing and Software Systems

University of Washington Bothell

 

 

Name

Kelvin Sung

Office Hours:

Thursday: 4:00-5:00 pm

Or by appointment

Phone

Email

(425)-352-5420

ksung@uw.edu

Office:

UW1-260 O

 

 

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).

 

Fall 2017: 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. We will use Unity3D as the vehicle for learning these concepts. 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++, or Unity3D etc. These are all transient technologies!

 

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:
    • Real-time user control and manipulation of graphical scenes
    • Graphical scenes with multiple camera views of 3D models
    • 3D models organized as scene nodes in scene graphs with multiple transformable components
    • 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).

 

Grading:

Programming Assignments (6)

65%

Weekly Quiz + Classroom Participation

15%

Final Project

20%

CSS590: Final project in groups of two (or three): propose/build an AR and VR collaborative application based on the Augmented Space Library (ASL).

             

Books:

Required Text: we dont 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, 2 to 2.3, 5 & 6: Event Programming + GUI + MVC

2.      Chap 8 & 9: Transformation and compositing transforms

3.      Chap 11: Hierarchical Modeling

4.      Chap 12: Blending + Texturing

5.      Chap 13: Simple 3D Scene Construction

6.      Chap 14: 3D Viewing Volumes

7.      Chap 15: Camera Manipulations

 

  1. 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, Forth edition, Steve Marschner and Peter Shirley, CRC Press, 2016.

·         Interactive Computer Graphics A Top-Down Approach with WebGL, 7th edition, Edward Angel and Dave Shreiner, Addison Wesley, Boston, 2015.

             

Schedule:

 

Week

Topics

Reading

Date

Note

(Subject to change)!!

1

Intro and GUI

A1

Sep 28

Assign: MP #1 (Warm up + Button)

2

MVC Framework and Relationship to the ECS of Unity3D

Math for 3D Graphics

A5, E + Online

Oct 2, 5

Due: MP #1

Assign: MP #2 (MVC + GUI)

3

Viewing Volume + Virtual Camera + Camera Manipulation

A6, A7

Oct 10, 12

Due: MP #2

Assign: MP #3 (Math + Camera Manipulation)

4

Shading Architecture + HLSL

Graphics Pipeline + World Matrix + View Matrix

B, D

Oct 17, 19

5

Pivoted Transformation + Rotation in 3D

Hierarchical Modeling

A2, A3

Oct 24, 26

Due: MP #3

Assign: MP #4 (Pivoted xform + Camera Visualization)

6

Modeling: Index Primitives + Rotation Sweep

Oct 31
Nov 2

7

Modeling Continue + Catch up

Nov 7, 9

Due: MP #4

Assign: Final Project

Assign: MP #5 (Rotational Sweep)

8

Final Project Proposal Presentation

Illumination Model

C

Nov 14, 16

Due: Final Project Proposal

9

Kelvin to Visit ASUS Lab, Guest Lecture Brian Zhou, Invite Bill Erdly

Thanksgiving Day: No Class

Nov 21, 23

Due: MP #5

Assign: MP #6 (Texture placement + Shaders)

10

Texture Mapping: Placement + Filtering

Final Project Progress Demo

A4

Nov 28, 30

Due: Final Project Progress Demo

11

Shader Effects: Reflection + Shadow

Online references

Dec 5, 7

Due: MP #6

12

Finals Week: Final Project due

 

Dec 12

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 grader 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 a folder containing the build results of your project (the exe file and the corresponding assets). Failure to include the build folder will result in lost credits.
  • 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 grader will only look at the last one received before the deadline. Please do not submit hard copies of your program. Lets 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 grader will download your submission, unzip, double-click on the .exe file to run. If the grader cannot download, double click and run 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 significant 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.

 

General Policies:

 

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 dont disturb anyone. If you want to leave early, it would be very nice if you could give me advance warning. If thats too much trouble, or if you forgot, dont worry, just dont 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 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, if an MP worth 8%, then 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 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 for you.

 

Group Assignments: The final project is a group assignment. You must form groups of two (or three if there is a left over person) to work on the final project. No groups can be less than two members.

Problems

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.

 

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.

 

Access and Accommodations: Your experience in this class is important to me. If you have already established accommodations with Disability Resources for Students (DRS), please communicate your approved accommodations to me at your earliest convenience so we can discuss your needs in this course. If you have not yet established services through DRS, but have a temporary health condition or permanent disability that requires accommodations (conditions include but not limited to; mental health, attention-related, learning, vision, hearing, physical or health impacts), you are welcome to contact Disability Resources for Students (UW1-175) at 425.352.5307 or at drs@uwb.edu. DRS offers resources and coordinates reasonable accommodations for students with disabilities and/or temporary health conditions. Reasonable accommodations are established through an interactive process between you, your instructor(s), and DRS. It is the policy and practice of the University of Washington to create inclusive and accessible learning environments consistent with federal and state law.

 

For Our Veterans: If you are a student who has served in our nations military forces, welcome home, and thank you for your service. I hope that you feel comfortable enough to confidentially self-identify yourself to me so I can help you make a successful transition from the military to higher education.

 

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.

 

Other potentially useful/important information

 

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