Syllabus
Description:
This course is an introduction to the mathematical and algorithmic
issues that arise in computer graphics and visualization. It
covers the material from the bottom up. That is, it begins with
the mathematical and algorithmic foundations and then moves to
application-level programming. Hence, while this is not a course
on rendering, you will need to understand the rendering process
and implement a simple renderer before using existing (sophisticated)
renderers.
Textbook:
Some of the readings for this course are available on the Internet.
Most others are are from the following required textbook:
Angel,
E.
(2005)
Interactive Computer Graphics: A Top-Down Approach with OpenGL
, Addison Wesley.
(Order from
amazon
, order from
Barnes and Noble
, compare at
bigwords
, compare at
CampusBooks4Less
, order from
Chegg
, or search
eFollett
)
Outline: This course is organized as follows, though specific topics and dates may change. (Readings are listed in the right-most column.)
Part I: Introduction (Math and/or Programming 'Review')
|
1/9 |
About CS480
|
|
1/11 |
Math Review:
2D Vector Arithmetic
|
B
|
1/16 |
Programming Review:
Java Basics
,
Using Objects
and
References
|
|
1/18 |
Math Review:
Matrix Arithmetic
|
C
|
1/23 |
Programming Review:
Developing Classes
,
Multi-Dimensional Arrays
and
Specialization
|
|
1/25 |
Math Review:
3D Vector Arithmetic
|
4.1
|
Part II: Foundations of 2D Graphics
|
1/30 |
2D Analytic Geometry (i.e., Graphics Primitives)
|
|
2/1 |
2D Rasterization
|
7.8-7.9
|
2/6 |
2D Transformations
|
|
2/8 |
Exam 1
|
|
Part III: Foundations of 3D Graphics
|
2/15 |
3D Analytic Geometry
|
|
2/20 |
3D Transformations
|
4.6-4.9
|
2/22 |
Projections:
Overview
and
Classical
|
5.1-5.9
|
2/27 |
Hidden/Visible Objects
|
7.1-7.11
|
3/1 |
Lighting
|
6.1-6.4
|
3/13 |
Shading
|
6.5
|
3/15 |
Review
|
|
3/20 |
Exam 2
|
|
Part IV: Applied 3D Graphics
|
3/22 |
Developing in C
,
Arguments in C
,
GLUT Basics
and
Comparing GLUT and MS-Windows
|
2, 3, 4
|
3/27 |
OpenGL Basics
and
OpenGL Animation
|
6.7-6.10
|
3/29 |
Lighting in OpenGL
|
6.7-6.10
|
4/3 |
Texture Mapping
and
Textures in OpenGL
|
8.8-8.11
|
4/5 |
Misc. OpenGL:
Display Lists
,
Text
and
Animation (Revisited)
|
|
4/10 |
DXUT Basics
and
Direct3D Basics
|
D3D 1
,
D3D 2
,
D3D 3
and
D3D 4
|
4/12 |
Lighting and Shading in Direct3D
,
Textures in Direct3D
and
Animation in Direct3D
|
D3D 5
and
D3D 6
|
Part V: 3D Modeling
|
4/17 |
Scene Graphs
,
Java3D Scene Graphs
and
Java3D Basics
|
10.1-10.9
,
J3D 1
and
J3D 4
|
4/19 |
Lighting
,
Texture Mapping
,
Animation
and
J2ME
|
J3D 6
and
J3D 7
|
4/24-4/26 |
Presentations (Optional)
|
|
Attendance at lectures is not mandatory but is strongly encouraged.
You are expected to come to class prepared to ask and
answer questions. Hence,
you should complete the readings on a topic before it
is discussed in lecture.
Grading:
Final grades will be based on your performance on:
2
in-class exams (35% each)
,
several
assignments (10% total)
and
1
final project (20% total).
Programming Assignments: 4
programming assignments will be
assigned during the semester. Note that their due dates are subject
to change.
Make sure you read and understand all of the
policies
related to programming assignments.
Office Hours:
You may meet with Prof. Bernstein during his
scheduled office hours
or you may schedule an appointment with him.