News

Welcome to CMSC 435/634 Spring 2016!

Time: MoWe 2:30pm-3:45pm, Location: ITE 227

Course home (this page): http://www.csee.umbc.edu/courses/undergraduate/435/Spring16

Instructor: Dr. Jian Chen (Email: jichen@umbc.edu); Office: ITE 357; Office hours: MW: 1:20-2:20pm or by appointment.

TA: Anudeep Nallamothu (Email: nan4@umbc.edu); ITE 353; Office hours: TuTh 3-4pm or by appointment;
Grader: Kevin Jones (Email: jkevin1@umbc.edu)

Prerequisite: MATH221 (Linear Algebra), CMSC313 (or other class covering C), CMSC341 (Data Structures) (We will make heavy use of the prerequisites.)

Textbooks

(Required): Fundamentals of Computer Graphics, 3rd editor, Peter Shirley, AK Peters, 2005 . (errata)
(Required and free): OpenGL Programming Guide, M. Woo, J. Neider, T. Davis, and D. Shreiner, Addison Wesley.

Objectives

Introduction to graphics systems, rasterization, clipping, transformations, modeling, viewing, hidden surface removal, illumination, and shading. Emphasis on realistic, 3D image synthesis.
  1. Understand the foundations of computer graphics: hardware systems, math basis, light and color.
  2. Implement key components of the rendering pipeline. Understand the issues involved in implementing other components.
  3. Come to appreciate the complexities of modeling realistic objects through modeling complex scenes using a high-level scene description language.
  4. Become acquainted with some advanced topics in computer graphics; these might include texturing, animation, physically-based modeling, procedural modeling, curves and surfaces, global illumination, interaction, visualization, and virtual reality.
  5. Come to appreciate and being able to solve real-world problems that make use of computer graphics techniques. These might include scientific and information visualization visualization in medical imaging, biological science, commerce, virtual reality, and so on.

Grades

Grades will be based on programming assignments (38%), homework problems (10%), final project (12%), midterm exam (15%), final exam (20%), and participation (5%). The letter grades follow the tradition: A: [90-100]; B: [80-90) C: [70-80); D: [60-70); F: <60

Assignments

There are three types of assignments: programming, homework, and a final project. CMSC 634 Students taking this course for graduate credit will be expected to do extra readings and extra parts.

Programming assignments require the use of the OpenGL and C/C++ programming languages. Programming assignments will account for a total of 38% of the grade. Here is a list of requirements:

  1. All programming assignments must be submitted to the TA by email. Additional submission policy may apply and please find that information in each programming assignment.
  2. Please submit source code and README only using a single tarball. Your tarball must be named by the following: .tar.gz>. For example, for John Doe, who is to submit project 1, the file name should be DoeJohn.proj1.tar.gz.
  3. Your code must work on the gl server on campus. To log on gl using ssh, try "ssh -X -l gl.umbc.edu" from a terminal. Please note that "-X" must be enabled for the graphical display on your local machine.
  4. Please include a makefile in your source code directory. And an example makefile will be provided in each programming assignment (except the one using Spotfire.)
    The README file should containing at least two things: (1) basic information about your design decisions and any known bugs or extra credit; (2) method to compile and run your code as if you are telling a colleague who is to continue the development. README is worth 5% of your grades for each project.
These assignments may be time-consuming. START EARLY! A tentative list is given below:
Assignments Weight Description
P1 6% Simple Scene
P2 8% Viewing
P3 8% Modeling
P4 8% Interactive Graphics
P5 8% Ray Tracing

Homeworks will be assigned at intervals. There will be five such assignments and will typically be due a week after the assignment is made. Homeworks will account for a total of 10% of the grade. Here is the list of requirements:
  1. All homeworks must be submitted to the TA by email in a single PDF file. No other format is accepted (e.g., you can write it on paper, take pictures of your write up, and compose and convert it to a pdf file.) So plan ahead!
  2. Homeworks are due before class on the due date listed. A homework No late homework submission will be accepted. Homeworks submitted during the lecture on the due date will not be graded.
Tentative sets are listed in the table below. We may use OpenGL shader or Spotfire in the last homework assignment.
Homework Weight Description
Hw1 2% Viewing
Hw2 2% Modeling
Hw3 2% Ray tracing
Hw4 2% Interaction
Hw5 2% Final-project dependent (TBD)

Final project will account for a total of 12% of the grade. Please refer to the Final Project tab.
Working at home. If possible, don't. We test things out on the university computers and may or may not be able to help you if things do not work right for you at home. If you do work at home, your final submitted version must be able to run on the gl machines and must be electronically submitted there. If you absolutely must work at home, there are a few things you may try (ask TA about them.)

Tentative Schedule

Required reading should be completed BEFORE the first date listed below for maximum benefit. A tentative schedule is listed below. Here FP=Final project.
FP 2nd iteration due on 5/6 (Email your code to Kevin & Dr. Chen)
Date Topic Required Reading (S=Shirley) Assignments Suppl. Material
W1:1/25,27 SNOWY WEEK - University closed.
W2:2/1,3 Overview; Math review; Display S1-3 lines.c,lines2.c, Makefile
W3:2/8,10 Transforms (ppt) S5-6 P1 out on 2/8
W4:2/15,17 (Jian@IA) Basics: OpenGL programming, Visualization Design FP out
W5:2/22,24 Veiwing1, Viewing2 S7 P1 due on 2/22, Hw1 and P2 outDeadline moved to 2/29 Office hours:FP ideas (Mandatory) SIGGRAPH2001_courseNotes
W6:2/29,3/2 Viewing2, Pipeline & Antialiasing S8,12.4 P1 due on 2/29, Hw1 and P2 out exercise, Office hours:FP ideas (Mandatory)
W7:3/7,9 Pipeline & Antialiasing, Mesh, texture S11 HW1 due on 3/9 FP proposal due 3/7
W8:3/14,16 SPRING BREAK SPRING BREAK SPRING BREAK
W9:3/21,23 (Jian@VR),Modeling, Modeling Lecture By Dr. Olano, By Dr.Adam S15, 18,19,26 P2 due on 3/21, HW2 and P3 out Midterm Review, FP prototype discussion
W10:3/28,30 Interactive Graphics, Midterm on 3/30 Hw2 due on 3/30 Midterm Solution
W11:4/4,6 (Jian@NSF) Midterm explained, Animation Dr.Olano's slides S18, 19, 26 P3 due on 4/6, FP prototype due on 4/4
W12:4/11,13 Interactive Graphics, Basic ray tracing S4, 13, 20, 24, 25 HW3 and P4 out FP 1st iteration due on 4/15
W13:4/18,20 Ray tracing S 13, 20, 24, 25 HW3 due on 04/18
W14:4/25,27 Increasing realisms P4 due on 04/25 HW4 and P5 out exercise
W15:5/2,4 Visualization design, FP 15m presentation (FP grade out; team eval) HW4 due on 5/2, HW5 out Final exam review
W16:5/9 FP 15m presentation (FP grade out) P5 due on 5/9 FP 2nd iteration due on 5/9
5/13 1:00-3:00 FINAL EXAM (this room!)
W18: 5/16, 17 1-hour meeting w/ Jian&Kevin Final project due (final paper & code)

Late Policy

No late homework assignments and final project will be accepted.

Programming assignments are to be submitted electronically by 11:00 PM on the due date listed. Programming assignments submitted for each late day will be penalized 10 percent of the possible score for that assignment. No more than 3 days is allowed for each programming assignment. If a programming assignment is due on 1/1, at 11:00pm, the last day/time we will accept an submission will be 1/4 at 11:00pm.) Each student gets two free "late" days without penalty for the entire semester. You don't need to claim the late days, and we will optimize your grades accordingly at the end of the semester. Use the two late days smartly!

Academic Honesty

By enrolling in this course, each student assumes the responsibilities of an active participant in UMBC's scholarly community in which everyone's academic work and behavior are held to the highest standards of honesty. Cheating, fabrication, plagiarism, and helping others to commit these acts are example forms of academic dishonesty.

All assignments and exams in the course are expected to be your INDIVIDUAL work. You may discuss assignments with anyone. Any help you receive, however, must be documented. At the beginning of the readme.txt submitted with each assignment, you must include a statement indicating the sources you used while working on it (excluding course staff and text) and the type of help you received from each. If you received no help, say so. Failure to include this statement with your assignment will result in your program being returned ungraded. For example, "I discussed the algorithms for this project with my study group, including student X and student Y. I also found some helpful descriptions on site.xyz."

We will use programs to check plagiarism and any form of dishonesty will lead to a F in this course.

Come join us in this exciting adventure!