CS 536 Computer Graphics

Course Page : http://www.cs.drexel.edu/~david/Classes/CS536

Suggested Textbook:

Suggested Supplemental Text:
E-mail:
It is University policy that you read your official Drexel email; it is the course policy that you read it at least once per day.


Course Objective

Computer Graphics represents a vast technical field, ranging from mathematics and geometry topics to computer hardware and software engineering topics to rendering, animation and virtual reality; far more material than can be comprehensively covered in a 10 week term. CS 536 Computer Graphics is designed to provide graduate students with an introduction to the geometric modeling aspects of computer graphics, as well as the related topic of transformations. Course material will cover the various representations for 3D curves, surfaces and solids, and will also discuss the creation of complex, hierarchical models. Material on general topics in computer graphics, e.g. drawing/clipping algorithms, color, viewing and rendering, will also be interspersed throughout the class in order to expand its coverage.


Pre-Requisites

Like the other introductory CS graduate classes, this one requires that you have a basic background in computer science. You can demonstrate this by either having a computing-related undergraduate degree, or by taking our "pre-core classes", CS 501, 502, 503 and 504. You will find this course extremely difficult if you do not have strong (B or better) linear algebra, trigonometry and multi-dimensional calculus skills. Minimal review of the relevant mathematics background will be given in this class. Students are assumed to have excellent knowledge of programming. Students can use whatever programming language they wish (C, C++, Java, Python, etc.) for the assignments in this class with the following caveat: you will need to turn in both source code and a makefile or script for testing and evaluation. Code must run as a single command-line process on the CS Department's Linux (tux) computers, without needing special libraries. Arguments passed to the command-line will parameterize program outputs; hence you'll need to read command-line arguments (argc, argv) in arbitrary order and parse input files. This course is mathematically intense and implementationally challenging. You will be required to implement complex data structures and mathematical calculations as a regular part of your assignments.


Course Grading Scheme

Graduate Students

  • Assignments (75%)
  • Presentation (10%)
  • Final exam (15%)
I intend to use the standard grading scale of 100→ 90 (A), 89→ 80 (B), 79→ 70 (C), 69→ 60 (D), else (F).
Also note that incompletes will not be given for this course.



Assignments

Students must work on the assignments individually. No geometry or graphics libraries may be used in the homework assignments.
You may use math libraries to represent and manipulate vectors and matrices, command line option processing libraries, and libraries to write Open Inventor.
But they must be installed on tux!
No other libraries or frameworks may be used for the homework assignments.

Assignments that do not meet the program specifications EXACTLY will not be graded!
Any assignments that are returned to students because they do not meet the assignment specifications will be penalized with late points.

Assignment results will be assessed visually. I am not looking for any specific file output.

1 point per day (max of 5 points, out of 10) will be deducted from late assignments.
The deadline for turning in all assignments is December 7.
You will be given a grade of 0 if an assignment is not turned in by this date.

The programming assignments should be submitted on the class Bb Learn page before 11:59 PM on the due date to be considered on-time.

All assignments will be run in the Unix Command Line Interface (CLI) on tux and will generate geometry files in the ASCII Open Inventor format.
Examples of Open Inventor files can be found here.
Inventor (*.iv) files can be viewed with an open-source CAD system called FreeCAD. Go here to download a version of this sofware for your computer.
You must ensure that your Inventor files can be displayed in FreeCAD.

All assignments should include source code files, a README file, and a makefile (if you're writing in a compiled language) or a script (if you're writing in an interpreted language).



Academic Honesty

You must be the sole original author of all assignments and examination solutions in their entirety, unless the instructor explicitly instructs you otherwise in written directions on an assignment or exam. Collaborative work is a violation of academic honesty in this course. You are not to examine or use code belonging to someone else, nor may you let anyone else examine or copy your code.

Students found in violation of the Academic Honesty policy will receive an 'F' in the class.
In the case of plagiarism, all parties involved will be equally penalized.

The description of the department's Academic Integrity Policy can be found here. If a student violates this policy, an Alleged Academic Misconduct Report will be filed with the university.

It is your responsibility to avoid violating the university's policy. If you are unclear as to what the policy means in a particular situation, ask the instructor for clarification before you hand anything in.

See the examples below for clarification of this policy.

Examples

The following are acceptable:
  • Using code provided in lecture: include comments that cite the source.
  • Using code provided in the class textbook: include comments that cite the source.
  • Code developed jointly with instructor or teaching assistants assigned to this course.
  • Discussing algorithms or possible approaches to writing your program, WITHOUT discussing particulars of the code.
  • Discussing how to resolve errors, WITHOUT discussing particulars of the code.
These are NOT acceptable:
  • You borrow a printed or electronic copy of a friend's assignment, and use it for "inspiration".
  • You give a printed or electronic copy of your assignment to somebody else.
  • You "find" a copy of somebody's program in the trash, on a lab machine, on their hard drive, on the web, etc., and use it for "inspiration".
  • You pay a "tutor" who writes the assignment for you.
  • You download code from the Web, and turn in some or all of it as your own assignment.
  • You use generative tools to create portions of your assignments.
  • You and a friend together write one assignment, then create separate modifications to be handed in.
  • You and a friend write certain portions of the assignment individually, but collaborate on other portions of the assignment.
  • You work in a group that works out the detailed structure of the assignment and you turn it into a specific program.

Your source code for all programming assignments will be run through a plagiarism detection system. This program uses compiler techniques, which are invariant of syntax and style. If you are sharing/borrowing code with other classmates (from this or previous years), you will get caught.



Presentations

Each graduate student will read a technical conference paper related to geometric modeling or geometry processing and submit a Powerpoint presentation that describes/summarizes the paper.
Suggested conferences are the SIGGRAPH Conference, SIGGRAPH Asia Conference, Eurographics Conference, Shape Modeling International Conference, Solid and Physical Modeling Conference and the Symposium on Geometry Processing. The paper must be from the main SIGGRAPH or SIGGRAPH Asia Conference, not just from any ACM SIGGRAPH-sponsored conference, symposium or workshop.
The presentation should include:

  • at least 10 slides
  • images
  • the citation information for the paper, i.e. where and when was the paper published, and by whom. Included on the title slide.

If you are not on a drexel.edu computer you will have to access the papers through the Drexel Library, or by connecting to the Drexel network via VPN.
Please no "Games Papers".

Here is a good example of what I expect.

Email me the full citation of the paper that you will review by October 20th.
The deadline for submitting the Powerpoint presentation is November 24th.
The same policy as programming assignments applies for late presentations.



Examinations

There will be a final exam on the material from class that is NOT covered by the regular assignments.
This is an open-notes exam.

The exam will be in a short-answer format. Questions will be drawn from the lectures and lecture notes, as should your answers.

Final Exam Topics

This is on online exam. The required steps of the exam are:

  • Download the exam (a PDF file) from Bb Learn
  • Print out the exam
  • Fill in answers by hand
  • Scan pages of the exam
  • Combine into a single file
  • Upload file
  • You will have 2.5 hours to complete the exam
You may use PDF editing tools that allow you to write free-hand in the final exam file.

The exam MUST be hand-written. Typed exams will be given a zero.



Lectures Are Recorded

Recorded lectures can be viewed via the class Bb Learn page by following the "Echo Video Class Recordings" link.

If you are watching the class live on Bb Learn, you can also ask me questions in real-time via zoom. I'll have my zoom channel open during class and you can ask me questions via chat. I'll check my zoom chat regularly during class.

https://drexel.zoom.us/j/8400688080


Calendar
Week 1 (September 22 - 26)
Week 2 (September 29 - October 3)
Week 3 (October 6 - 10)
  • October 6 - Assignment 1 Due
  • Reading Assignment
    • Goldman: Chapters 27 & 28
    • Hughes et al.: Section 22.5, 22.6
    • Foley et al.: Sections 9.2.4→9.2.6, 9.2.8
  • October 7 - Lecture (6 per page) : B-Splines and NURBS
  • October 7 - Lecture (6 per page) : Drawing B-Splines Curves
Week 4 (October 13 - 17)
  • October 13 - Assignment 2 Due
  • Reading Assignment
    • Goldman: Chapters 18 & 30; Section 19.7, 21.1, 24.6,
    • Hughes et al.: Sections 7.9, 7.10, 8.3, 8.4, 14.5, 22.6, Chapters 23 & 25
    • Foley et al.: Chapter 9.1, 9.3→9.4
  • October 14 - Lecture (6 per page) : Surfaces
  • Patch tessellation animation
  • October 14 - Lecture : Subdivision Surfaces
Week 5 (October 20 - 24)
  • October 20 - Email research paper citation to Prof. Breen
  • Reading Assignment
    • Foley et al.: Sections 3.2, 3.3, 3.9, 3.10
  • No in-class lecture this week!
    Watch videos via links sent in email.
  • October 21 - Lecture (6 per page) : Line Drawing
  • October 21 - Lecture (6 per page) : Circle Drawing
  • October 21 - Lecture (6 per page) : Line Clipping
  • October 23 - Assignment 3 Due
Week 6 (October 27 - 31)
Week 7 (November 3 - 7)
  • November 4 - No class because of Election Day. Please vote!
Week 8 (November 10 - 14)
Week 9 (November 17 - 21)
  • November 17 - Assignment 6 Due
  • Reading Assignment
    • Goldman: Chapters 4, 12, 13 & 15
    • Hughes et al.: Chapters 10 & 11
    • Foley et al.: Chapter 5.2→5.9, 6.7, 7.1, 7.4→7.6
  • November 18 - Lecture (6 per page) : 2D and 3D Transformations
  • November 18 - Lecture (6 per page) : Hierarchical Models
Week 10 (November 24 - 28)
  • November 24 - Research Paper Presentation Due
  • Reading Assignment
    • Goldman: Sections 11.7, 12.5, 13.5, 13.6; Chapters 17 & 22
    • Hughes et al.: Chapters 15 & 18; Sections 7.8, 14.4, 36.1→36.6
    • Foley et al.: Sections 3.7, 3.14, 6→6.2, 6.4, 12→12.2, 12.3.3, 12.4, 13
  • November 25 - Lecture (6 per page) : Introduction to 3D Viewing
  • November 25 - Lecture : Scanline Rendering
  • November 25 - Lecture (6 per page) : Culling, Z-Buffering, Ray Tracing and Radiosity
  • November 25 - Lecture (6 per page) : Thick Primitives
Week 11 (December 1 - 5)
  • December 1 - Assignment 7 Due
  • Reading Assignment
    • Goldman: Chapter 21
    • Hughes et al.: Chapters 27 & 35
    • Foley et al.: Chapter 14
  • December 2 - Lecture: Phong Shading Model
  • December 2 - Lecture : Introduction to Animation (Courtesy of Ren Ng, UC Berkeley)
  • December 2 - Lecture (6 per page) : Level Set Morphing
  • December 5 - Extra Credit Assignment Due

 

CCI's Commitment to Culture and Community

The College of Computing & Informatics commits to creating a positive and safe learning environment for everyone - instructors, professional staff, and students - both inside and outside of the classroom. We embrace the wide range of thoughts, perspectives, and experiences that each community member brings, and we honor everyone's unique identity and lived experience. We encourage each community member to share information and feedback that will assist instructors and staff in fostering a supportive and inclusive community environment. For more information about CCI's commitment to culture and community, visit the Culture & Community Council website.

Initial Course Participation (ICP):

Class attendance is critical to your success as a student.
Missing classes may impact your class success and your federal financial aid.


File last modified on December 8, 2025.