CS 450 / 550 -- Introduction to Computer Graphics

Fall Quarter 2016


Lectures Projects Handouts Grades VHR

This page was last updated: December 27, 2016


What We Will Be Doing This Quarter

This course is designed to introduce you to the field of computer graphics in general. You will study 3D graphics basics, and will write programs using the industry-standard API called OpenGL.

The goals of this course are to leave you "career-ready" (i.e., both work-ready and research-ready) for graphics programming. This class will also set you up for taking our other computer graphics classes.

CS 450/550 topics include:

Note: The goal of this class, at least the first part of it, is to develop your "graphics thinking". As such, you will start by using a part of OpenGL that has been deprecated, but is easier to learn and understand. (In OpenGL, "deprecated" doesn't mean "going away", it means "not recommended".) Later on, you will learn the recommended (i.e., efficient) ways of using OpenGL.


CS 261 -- Data Structures

Learning Objectives

On completion of the course, students will have demonstrated the ability to:

  1. Explain the different coordinate systems used in computer graphics
  2. Describe the names and functions of the elements of the graphics pipeline, as well as the input and output of each stage
  3. Create a dynamic 3D scene using OpemGL
  4. Dynamically alter the viewing of a 3D scene
  5. Explain the elements of a computer graphics framebuffer
  6. Use OpenGL functions to create and apply single and compound transformations
  7. Use OpenGL to perform light-source shading
  8. Use OpenGL to perform texture mapping
  9. Explain the ways Vertex Buffer Objects can improve your interactivity
  10. Create and use an OpenGL vertex and fragment shader
  11. Use the GLM computer graphics math library to create and apply transformations

In addition, those taking this course as CS 550 will also have demonstrated the ability to:

12. Read a computer-graphics-related research paper and write a 5-page analysis paper of it.

(I will make some papers available for you, or you can propose your own. It has to be a real research paper, though. And, I need to pre-approve it.)


The class is being taught by Professor Mike Bailey.

Office: Kelley 2117 (2nd floor, south side)
Phone: 541-737-2542
E-mail: mjb@cs.oregonstate.edu
Intro Video: https://media.oregonstate.edu/media/t/0_vd78ijqa

Office Hours:

Mondays 2:00 - 4:00 My office (Kelley 2117)
Thursdays 12:00 - 2:00 My office (Kelley 2117)
Fridays 2:00 - 4:00 My office (Kelley 2117)
    or, anytime my office door is open
    or, by appointment -- send email


The TAs for the course are Sean Moore and Arash Shahbaz Badr.


Sean's Office Hours:
Mondays 10:00 - 1:00 CGEL (Bat 244)
Tuesdays 12:00 - 4:00 CGEL (Bat 244)
Wednesdays 10:00 - 1:00 CGEL (Bat 244)
Thursdays 10:00 - 1:00 CGEL (Bat 244)
Fridays 10:00 - 1:00 CGEL (Bat 244)


Arash's Office Hours:
Mondays 8:00 - 9:50 MU Main Lounge
Tuesdays 8:00 - 9:50 MU Main Lounge
Tuesdays 1:00 - 4:50 MU Main Lounge
Wednesdays 8:00 - 9:50 MU Main Lounge
Thursdays 8:00 - 9:50 MU Main Lounge
Thursdays 1:00 - 4:50 MU Main Lounge
Fridays 8:00 - 9:50 MU Main Lounge


There is no purchased textbook for this course.
Course material will consist of handouts, web pages, and notes taken in class.

The Virtual Hand Raise (VHR)

It sometimes takes courage to ask a question in class. But, the worst thing of all is to not ask! So, this class also has the Virtual Hand Raise. Click here to get into it. It will allow you to send me a question or comment, completely anonymously. I will answer questions submitted this way by email to the class or in class.


If you need a place to do your programming assignments, you can get access to the graphics systems in OSU's Computer Graphics Education Lab (CGEL) in Batcheller Hall 244.

Access to the CGEL is by your OSU ID card, which also acts as a card key. The first full week of classes, I will give the EECS Main Office a list of who is in this class, so that they can enable your cards for the CGEL.

Good References

Lecture Schedule

To see an Academic Year calendar, click here.

Class time is: Monday, Wednesday, and Friday, 1:00 - 1:50.
Unless otherwise specified, all classes will be in Cordley 1109.
(Cordley is a big building. The easiest way to get to Cordley 1109 is to come in the east door by the fence that borders the Bates building playground.)

Cancelled dates: Oct 19, Oct 21, Nov 11, Nov 23, Nov 25

Note: this schedule is my best guess of where we'll be when -- it is only approximate.
  Date Topics
1 Sept 21 General course information. Alias web form. freeglut.
A very brief history of computer graphics.
2 Sept 23 The Graphics Process.
The Graphics Pipeline.
Coordinate systems: Model, World, Eye, NDC, Clip, Screen.
3D coordinate systems.
3 Sept 26 ASOSU coming to talk about voter registration
Geometry vs. topology. glBegin-glEnd.
Compound transformations.
Project #1.
4 Sept 28 Projections.
3D viewing.
Display lists.
sample program.
5 Sept 30 sample program.
Project #2.
The rasterizer.
6 Oct 3 Color: RGB, CMYK, HSV.
7 Oct 5 Texture mapping.
8 Oct 7 Texture mapping. Project #3.
9 Oct 10 Lighting.
10 Oct 12 Lighting. Project #4.
11 Oct 14 Framebuffer.
12 Oct 17 Shaders
13 Oct 19 Prof. Bailey out of town -- no class today
14 Oct 21 Prof. Bailey out of town -- no class today

15 Oct 24 Test #1 review.
Project #5.
16 Oct 26 Shaders
17 Oct 28 Test #1
18 Oct 31 Vertex Buffer Objects
19 Nov 2 Go over test answers
20 Nov 4 Geometric Modeling
Alert former 450-student Mohamed Al-kalbani found this really fun video: https://youtu.be/4f09VdXex3A It is quite a different way to model. I think you'll like it.
21 Nov 7 WebGL
22 Nov 9 Realistic Rendering: Radisosity
23 Nov 11 OSU Veterans Day observance -- no class today
24 Nov 14 Realistic Rendering: Ray Tracing
25 Nov 16 Animation: physics, keyframing, functional
26 Nov 18 3D Printing.
27 Nov 21 Fun videos!
28 Nov 23 OSU Thanksgiving holiday -- no class today
29 Nov 25 OSU Thanksgiving holiday -- no class today
30 Nov 28 Stereographics.
31 Nov 30 Vulkan
32 Dec 2 Class Evaluations.
Test #2 review.
More Information.
T2 Dec 6 Test #2 Tuesday, December 6, 9:30 - 11:00 AM.
(You can confirm this for yourself by going here.)


Project # Points Title Due Date
1 50 Draw Something Cool in 3D! Oct 3
2 100 Animate a Helicopter Oct 12
3 100 Texture Mapping Oct 18
4 100 Lighting October 27
5 100 Shaders Nov 9
6 100 Geometric Modeling Nov 18
7 60 WebGL Nov 28
FP 200 Final Project Dec 7, 12:00:00 noon
550-only paper 100 Paper analysis Dec 7, 23:59:59

Project Turn-In Procedures

Bonus Days and Late Assignments

Projects are due at 23:59:59 on the listed due date, with the following exception:

Each of you has been granted five Bonus Days, which are no-questions-asked one-day project extensions which may be applied to any project, subject to the following rules:

  1. No more than 2 Bonus Days may be applied to any one project
  2. Bonus Days cannot be applied to tests
  3. Bonus Days cannot be applied such that they extend a project due date past the start of Test #2.

Click here to get a copy of the Bonus Day Submission Form. Fill this out and turn it in the next class period after turning in your project.


Grades will be posted through this web page. To protect your privacy, they will be posted by your alias that you give me in Project #1.

Click here to see the current grade posting.

CS 450/550 will be graded on a fill-the-bucket basis. There will be 8 projects, 10 quizzes, and two tests. You get to keep all the points you earn.
The quizzes will be done via Canvas. They will open each Friday afternoon and close Sunday night.

Those taking the class as CS 550 will also do an essay summarizing a research paper. (Those taking the class as CS 450 will get a free 100 points for this assignment.)

Your final grade will be based on your overall class point total. Based on an available point total of 1210, grade cutoffs will be no higher than:

Points Grade
1140 B+
1080 C+
1010 D+

Downloadable Files


Don't print these until you are told to do so in the Announcements section.
Sometimes I will put notes out here that are not quite complete, just to show you where we are headed.

A Brief History of Computer Graphics 1pp 2pp 6pp
The Computer Graphics Process 1pp 2pp 6pp
Getting Started with OpenGL Programming 1pp 2pp 6pp
GL Utility Toolkit (GLUT) 1pp 2pp 6pp
Sample Program sample.cpp    
Display Lists 1pp 2pp 6pp
Framebuffer 1pp 2pp 6pp
Texture Mapping 1pp 2pp 6pp
Lighting 1pp 2pp 6pp
Shaders 1pp 2pp 6pp
Geometric Modeling 1pp 2pp 6pp
Vertex Buffer Objects 1pp 2pp 6pp
GLM 1pp 2pp 6pp
WebGL 1pp 2pp 6pp
OpenGL Transparency 1pp 2pp 6pp
Animation 1pp 2pp 6pp
3D Printing 1pp 2pp 6pp
Stereographics 1pp 2pp 6pp
Rendering 1pp 2pp 6pp
Vulkan 1pp 2pp 6pp
More Information PDF    

Class Rules

Students With Disabilities

Accommodations are collaborative efforts between students, faculty and Disability Access Services (DAS). Students with accommodations approved through DAS are responsible for contacting the faculty member in charge of the course prior to or during the first week of the term to discuss accommodations. Students who believe they are eligible for accommodations but who have not yet obtained approval through DAS should contact DAS immediately at 541-737-4098. OSU students can also apply to DAS and request accommodations at the Getting Started with DAS page.

Religious Holidays

Oregon State University strives to respect all religious practices. If you have religious holidays that are in conflict with any of the requirements of this class, please see me immediately so that we can make alternative arrangements.

Other Useful Online Graphics Information