CS 184: COMPUTER GRAPHICS
PREVIOUS
< - - - - > CS
184 HOME < - - - - > CURRENT
< - - - - > NEXT
Lecture #1 -- Mo 8/26/2002.
Introduction:
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 than numbers,
shapes rather than equations ==> more relevant form of information.
Help to visualize things: new buildings, car bodies,
Help to model things: flow around wing, stresses in a molded part.
Also: Read CH 1.1 of our textbook "Interactive Computer
Graphics"
Evolution of Computer Graphics
Selected historical slides from SIGGRAPH
Examples
done in previous CS184 courses.
What can
be done today ?
Course goal: to understand how all this is done.
Course Coverage, Focus
Three
main themes:
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 picture
on the screen.
Interaction techniques:
Grab things, make them move, animation of 3D objects, and of articulated
objects, such as robots..
Main Theme and Teaching Style
Gain Understanding !
-- not just acquiring skills to use graphics programs.
"Learning by doing !"
--> we will BUILD (program) things.
Course Organization
List
of Lab assignments.
We will orient ourselves by constructing a complete rendering system
(actually re-build an existing, well-designed system piece by piece).
Tentative
Outline / Syllabus
The Lab sequence pretty much determines the sequence of topics covered
in lecture.
Attending the lectures is crucial. -- Please come on time.
Lecture covers key concepts.
Think along in real time ! Ask questions to stay synchronized.
Don't delay trying to understand 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.
Textbook:
"Interactive Computer Graphics: A Top-Down Approach with OpenGL" (2nd
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.
Discussion Sessions:
Repeat some points of class material at a more detailed technical level,
so you can implement these algorithms;
discuss data structures, provide organizational hints.
Experienced TA's: Jordan Smith, Lillian Chu, Mike Hamler.
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)!
Lab Work:
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 info also on line.
First programming assignment to be done on your own;
later do lab work in pairs -- changing partners each week for about
3-4 weeks;
finally settle on one partner for rest of course and for theFinal Project.
Cooperation versus cheating: Share ideas, but not code betwen
different teams!
Exams:
For feedback to us (and forcing function to you) : quizzes and exams: Week
4, 8, 11, 16.
Fairly absolute grading (enough experience from previous courses) -->
no competition.
Should you take this course ?
Do you have the prerequisites ? ==> see SELF-TEST
FORM
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 according
to
the Computer Science Enrollment Policyposted on the web.
Currently 105 enrolled thru telebears, 117 on waiting list, some "gate
crashers" in the audience.
Not everybody present may have required status or has taken prerequisite
courses.
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
full speed.
Please fill out the BACKGROUND QUESTIONNAIRE.
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 to
draw lines onto a computer graphics display devive.
A simple task -- but raises all kinds of intereting issues !
First we need to understand how these graphics display devices work.
There are two main classes of devices:
Calligraphic Devices:
Its most important representative is the Line-drawing
CRT
Others are:
Pen plotter
Laserbeam deflector (as in planetarium show)
Direct-view storage tube (DVST).
==> to draw a line from A to B, sweep the beam from A to B.
Raster Devices:
The most important one is the Color
frame buffer
-- typically controlling some of these devices:
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)
- - passive: control reflectance or transmittance
- - active: put a light source behind it.
Electroluminescent displays
Electrofluorescent displays
Electrochromatic displays
Impact dot matrix printer
Inkjet printer
Laser + electrostatic printer
==> to draw a line from A to B, turn on a select set of matrix elements.
(but a good API will shield you
from the details how this is done!).
Reading Assignments
Study: ( i.e., try to understand fully, so that you can answer questions
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 today's and tomorrow's discussion
sessions.
#1 must be done individually and is due in a week.
#2 can be done in pairs and will be due at the end of the 2nd week..
PREVIOUS
< - - - - > CS
184 HOME < - - - - > CURRENT
< - - - - > NEXT
Page Editor: Carlo
H. Séquin