CS 184: COMPUTER GRAPHICS
184 HOME < - - - - > CURRENT
< - - - - > NEXT
Lecture #1 -- Tu 8/31/2004.
Who I am; my background; my philosophies ...
What is Computer Graphics ?
WHY DO YOU WANT TO TAKE A COURSE IN COMPUTER GRAPHICS ?
The Role of Computer Graphics ...
Increase bandwidth between humans and computer.
Present: information rather than data, functions rather
shapes rather than equations, ==> more relevant form of
Help to visualize things: new buildings, car bodies,
Help to model things: air flow around wing, stresses in a molded part.
Also: Read CH 1.1 of our textbook "Interactive Computer
Graphics" by Eward Angel.
Evolution of Computer Graphics
done in previous CS184 courses.
the art today
Animated pictures, movies
Course goal: to understand how all this is done.
Course Coverage, Focus:
Insight into inner workings of graphics pipeline.
What does the next generation of graphics chips require?
What are the key programming concepts
that lead to robust graphics behavior?
This course is NOT a
vocational training course on how to use graphics software, such as
Maya, Photoshop, OpenGL...
You are encouraged to learn this on the side, but this is not the focus
of the course.
Methods for geometrical modeling:
Conceptual ways to assemble complicated scenes;
data structures; mathematical intro to curved surfaces.
Basic operation and organization of a rendering system:
From object descriptions in terse but user-oriented language to a
on the screen.
Grab things, make them move, animation of 3D objects, and of
objects, such as robots.
Main Approach and Teaching Style
Gain Understanding !
-- not just acquiring skills to use graphics programs.
"Learning by doing !"
--> we will BUILD (program) things.
of Lab Assignments.
We will orient ourselves by constructing a complete rendering system
(actually re-build an existing, well-designed system piece by piece).
Outline / Syllabus
The Lab sequence pretty much determines the sequence of topics covered
Attending the lectures is crucial. -- Please come on time.
Put in some safety margins -- if you are early you will be entertained
with some video clips ...
Lecture covers key concepts.
Think along in real time ! Ask
questions to stay synchronized.
Don't delay trying to understand and cram until till exam-time.
I will try to explain why things are the way they are,
-- show you how to think about the problems that you have
to solve on the exams,
-- provide some high-level connections between topics
covered in different places in the book.
"Interactive Computer Graphics: A Top-Down Approach with OpenGL" (3rd
Edition) by Edward Angel.
accompanied by: "OpenGL: A Primer" by Edward Angel.
We cover about 1/2 of the book in a non-monotonic manner.
Repeat some points of class material at a more detailed technical
so you can implement these algorithms;
discuss data structures, provide organizational hints.
Excellent TA's: Pushkar Joshi
and Egon Pasztor with very
solid experience in graphics..
We assume you know how to program in C++; -- TA's are not supposed to
debug your code!
We will answer questions at the algorithmic level. Use graphical
debugging (piece by piece)!
Significant amount of programming in C, C++, in the context of a large
set of C++ libraries.
Graphics API is OpenGL.
"OpenGL Programming Guide." Recommended for your lab work. --
some of that info 8is also on line.
First two programming assignment to be done on your own.
Later do lab work in pairs -- changing partners each week for about
Finally settle on one partner for rest of course and for theFinal
Cooperation versus cheating: Share
ideas, but not code!
For feedback to us (and forcing function to you) : quizzes and exams:
4, 8, 11, 16.
Fairly absolute grading (enough experience from previous courses)
Should you take this course ?
Do you have the prerequisites ? ==> see SELF-TEST
Do the self-test at home, alone! (OK to look in a book).
Find out whether you are ready.
This course will demand work and a good deal of C-programming - but
it will be rewarding.
It is not a filler course, but needs a committment. (Don't take it
simultaneously with cs152 ! )
In 2nd week you will obtain a modeling/rendering framework SLIDE (X000
lines of C++).
You need to understand the basic structure of it, so you can integrate
your own work into it.
During the duration of the course and project, you will write a few
hundred lines of code yourself,
but you may look at many more lines already existing.
You also need to learn parts of OpenGL, the graphics language/API.
Ask yourself whether you have the time: 10-15 hrs on top of class.
Who is in this course ?
I don't controll admission. For fairness this is handled by staff
the Computer Science Enrollment Policyposted on the web.
Currently 94 enrolled thru telebears, 22 on waiting list, some "gate
crashers" in the audience.
Not everybody present may have required status or has taken
Everybody not yet admitted need to get on Telebears waiting list and
also fill out an appeals form.
This will take a couple of weeks to settle. But we need to get started
Please fill out the BACKGROUND
This is our own system to build a tentative class list until we get
the official one.
Trade in the filled-out form (and a possibly the appeals form) in the
discussion sessions on Monday
for a class account and for access to our labs 330 Soda and 349 Soda.
When we finally get the information on who has been admitted to course,
we will remove all other accounts and names from the key card list.
Beginning of Technical Stuff:
Graphics Output/Display Hardware
In the first two asignments you will program an interactive interface
draw lines onto a computer graphics display devive.
A simple task -- but raises all kinds of intereting issues !
First we need to understand how the computer remembers a graphics
Many options: The first we study is the "boundary representation" or "B-rep".
Geometry is defined by points in 2D or 3D space.
These points can then be connected with edges.
Edges can be grouped into faces, faces into shells (bodies) ...
But for assignment #1 we stop at a single polygon.
Here are examples of polygons created
by previous classes,
when the theme was make a "Fantasy Fish".
Then we need to display that stored geometrical information.
For now we let some existing software handle that aspect.
But we need to know how these graphics display devices work in
There are two main classes of devices:
Laserbeam deflector (as in planetarium show)
Direct-view storage tube (DVST).
Its most important representative is the Line-drawing
==> to draw a line from A to B, sweep the beam from A to B.
Array of light bulbs (=active)
Array of light-emitting diodes (LED) (=active)
Array of black/white disks that can flip (=passive)
Plasma panel (=active)
Liquid crystal display (LCD)
The most important one is the Color
-- typically controlling some of these devices:
- - passive: control reflectance or transmittance
- - active: put a light source behind it.
Impact dot matrix printer
Laser + electrostatic printer
==> to draw a line from A to B, turn on a select set of matrix
(but a good API will shield you
from the details how this is done!).
Study: ( i.e., try to understand fully, so that you can answer
on an exam):
2nd Ed: Ch 1.1-1.3, Ch 2.3.1, Ch 3.9.2,
3rd Ed: Ch 1.1-1.3, Ch 2.4.1, Ch 3.9.2,
Skim: ( i.e., get an idea of the concept and the technical terms
introduced, so that you get feel for the overall scope):
2nd Ed: Ch 1.4-1.9, Ch 3.2.3-3.2.4,
3rd Ed: Ch 1.4-1.9, Ch 3.2.3-3.2.4,
New Homework Assignments (1 and 2):
Will be formally assigned and discussed in the
Both must be done individually.
Assignmnt #1 is due in one week; assignment #2 in two weeks.
Deadlines are typically on Monday evening 7:59pm -- electronic
184 HOME < - - - - > CURRENT
< - - - - > NEXT
Page Editor: Carlo