Home Page
ECSE-4750 Computer Graphics
Rensselaer Polytechnic Institute
Fall 2005
This course home page will be updated with announcements
and interesting material. The calendar will list lectures, labs,
homeworks, and exams. I'll update it regularly. The syllabus is mostly an unchanging
description of the course.
If you didn't receive an email, tell me. (12/19/5).
Zhongyi will hold a review session for the final exam in
CII (aka Low) 3051 on Tues from 3 to 5. (12/12/5)
is
here. (12/7/5)
here. There is a certain
overlap with the homework. (12/7/5)
Lecture #
13,
14,
15,
16,
17,
18,
20,
21.
(12/7/5)
I forgot to put "hand in lab 8" as part of homework 9.
Therefore we're making handing in lab 8 to be homework 9, and
renumbering homework 9 as 10. The calendar has been changed
to reflect this. Sorry for the mess. (12/8/5)
- It's Wed Dec 14, 8-11 am, DCC (aka Darrin) 337.
- You may bring any paper, papyrus, or vellum-based notes,
either handwritten or mass-produced.
- You may not share your notes with other students during the exam.
- You may not use any computers.
- You may not communicate with others (except the course
staff) during the exam.
Dec 1 will be a special event for the class. (Barring
unexpected glitches) we will have a guest is an ECSE alumnus,
who co-founded a major computer graphics company, and who also
has strong opinions on intellectual property. He wants to
have a discussion with you, so come prepared with your
questions.
I presented him with the following list of possible topics to discuss:
- the history of your company.
- of graphics HW in general, including how changes in the
relative performance of different components changes the optimum
solution. Also, where are the remaining bottlenecks?
- the state of IP. Patents and copyrights are listed in the
constitution to achieve certain social goals. Is this still working?
Tangentially, note that several RPI students have been busted by the
MPAA.
What about submarine patents? What about the money that MS keeps paying
other companies, like Stac Electronics, Sun and Real? Is this evidence
that MS has stolen their property? Or, is MS the victim of a protection
racket?
Is the open source movement a communist plot, as MS hints? I'm using
no commercial SW to compose this message, and so would disagree.
However, this might start a lively discussion.
- still unsolved problems, which the students might consider attacking.
Some of those problems might involve using gaming technology in broader
contexts, like teaching. Some people think that bringing educational
techniques out of the 18th century might reduce the cost of education a
factor of ten while improving quality (and killing most current
schools). This may sound crazy, but in the 18th century, weaving fancy
cloth was expensive.
I just emailed everyone our version of your grades:
homeworks 1 to 9 and the midterm. Please report errors to
Zhongyi. (11/22/5)
here. (11/22/5).
here. (11/16/5)
Zhongyi has a signup sheet for you to pick a time demonstrate
your project in the lab. Early signers have a larger choice.
(11/16/5).
The calendar lists when to mail project reports. The dates
were published before the first day of class. (11/16/5)
It's ok to ask other people for
help (and ok for them to help you, or not, as they wish.)
It is not ok to
take other people's answers from the pile of submitted (or
graded) work. (10/28/5)
Lab 8
(10/27/5)
here (10/27/5)
In Spring 2006, I expect to teach ECSE-6800 Advanced
Graphics & Vizualization. Anyone who has passed ECSE-4750
(or has an equivalent background) is welcome.
Here's the web
site of an earlier version.
Being a grad course, it will be less structured than ECSE-4750. (10/26/5)
Lab 7,
Homework 8. (10/26/5)
here. (10/23/5)
here (10/20/5)
Contrary to my emails with your midterm exam grades, the
exam was out of 34, not 38. (I deleted the last 4 point
question at the last minute, but then forgot that.) Zhongyi
will use 34 when computing the total grades. (10/19/5)
This class with be in the Darrin Communication Center (aka
DCC aka CC) 324. (Pres Jackson needs CII4050 for granting
agency site visit.)
(10/19/5)
lab6, homework 7
(10/18/5)
(10/18/5)
Here. Sorry for the delay :-) (10/13/5)
here. (10/12/5)
Use the time to study instead. (10/11/5)
Start thinking about the term project. You may do it in
teams of up to 3 people. You will implement, demonstrate, and
document something related to Computer Graphics. You will sign
up to demo it to the TA in one of the last two labs. The
schedule for deliverables is listed on the Calendar.
(10/10/5).
Sample questions
Spring 2005 midterm exam
Note that the course changes a little from year to year.
Since there are a finite number of electrons in the
universe, and we are told to conserve, I will recycle many of
these questions for the midterm on Thursday. Good times to
ask about answers are Tuesday's lecture, Oct 11, or
Wednesday's lab, Oct 12. Bad times are other times.
(10/10/5)
Zhongyi has prepared sample questions for many of the
lectures. The links, in the Lectures column of
the Calendar, are copied here.
- Lecture 3
- Lecture 4
- Lecture 6
- Lecture 7
- Lecture 8
- Lecture 9
- Lecture 10
(10/10/5)
I emailed our recorded grades for homeworks 1 to 5 to each
student. If you haven't received the mail, or there is an
error, please tell both Zhongyi and me. Thanks. (10/10/5).
homework 3 solution.
homework 4 solution.
(10/10/5)
(10/4/5).
We will be fortunate to have Tobi Saulnier, CEO of 1st Playable
Productions, LLC talk to the class on Oct 17. (10/3/5).
Solutions to homework 1 and
homework 2 available.
(9/21/05).
Start homework 4.
(9/20/5).
The X Window System's use of the terms client and server is
counterintuitive. The server provides a service. E.g., a
print server would print. The graphics server, i.e., your
display, provides graphics. The client is the remote machine
that you're logged into, and that is doing the computation.
(9/19/5).
Note how event driven input in graphics is like interrupt
driven input in COCO (at least when I taught COCO). (9/19/5).
glutWindowPosition measures from the top left
corner of the display.
glViewport measures from the bottom left corner of
the window.
Why? That's a good question. Keep the good questions
coming.
(9/14/5)
In other graphics contexts, like windowing systems, they
can have different meanings. E.g., what we call a viewpoint,
they might call a window. This will not be examined on; I
mention it so you won't be confused when reading other books.
(9/14/5)
The preliminary final exam schedule has the final exam for
Computer Graphics at the same time as these other courses:
- ENGR-2600 M&A of Uncertainty
- PHYS-1100 Physics I
- PHYS-1200 Physics II
No one who follows the catalog curriculum will have a
conflict. If you're taking courses in different semesters,
and so have a conflict, could you please tell me? Thanks.
(9/14/5)
(9/14/5)
xiez2ATcsDOTrpiDOTedu
(9/12/5)
Since computers are forbidden on exams, there will be no
questions that (IMHO) need a computer. E.g., you
will not have to compute eigenvalues or eigenvectors of a
matrix. However, after I get to them in class, you will have
to know their importance to graphics. (They encode the axis
and angle of a rotation matrix.) (9/8/5)
Trading off limited resources is an important part of
engineering, which will occur from time to time in this
course. One example is trading off speed and money. Another
is interlacing. That produces a TV display that has the
bandwidth of a 30Hz refresh rate, but usually looks almost as
good as a 60Hz refresh rate.
(9/8/5)
This important topic will also re-occur throughout the
course. One principle is decomposing complex systems into
simpler pieces that are joined with well-defined interfaces.
Two examples are:
- the parts of the graphics pipeline, and
- the subdivision of OpenGL into GL, GLU, and GLUT.
Another principle of complex system design is deciding to
omit things that can be done elsewhere. OpenGL does not try
to be a windowing system. (9/8/5)
is a great idea, provided you tell both courses, and the
other also agrees. (9/8/5)
Say you want the definition of GL_COLOR_BUFFER_BIT. Google
it; the 3rd listing is here,
which says:
NAME
glClear - clear buffers to preset values
C SPECIFICATION
void glClear(GLbitfield mask)
PARAMETERS
maskBitwiseOR of masks that indicate the buffers to be
cleared. The four masks are GL_COLOR_BUFFER_BIT,
GL_DEPTH_BUFFER_BIT, GL_ACCUM_BUFFER_BIT, and
GL_STENCIL_BUFFER_BIT.
DESCRIPTION
glClear sets the bitplane area of thewindow to values
previously selected by glClearColor, glClearIndex,
glClearDepth,glClearStencil,and glClearAccum. Multiple
colorbufferscan be cleared simultaneously by selecting
more than onebuffer at a time using glDrawBuffer.
The pixel ownership test, thescissortest, dithering, and
the buffer writemasksaffect the operation ofglClear. The
scissor box bounds the cleared region. Alphafunction,
blendfunction, logical operation, stenciling, texture
mapping, and depth-buffering are ignored by glClear.
glClear takesa single argument that is the bitwise OR of
several values indicating which buffer is to be cleared.
The values are as follows:
GL_COLOR_BUFFER_BIT Indicates the buffers currently
enabled forcolor writing.
GL_DEPTH_BUFFER_BIT Indicates the depthbuffer.
GL_ACCUM_BUFFER_BIT Indicates the accumulation buffer.
GL_STENCIL_BUFFER_BIT Indicates the stencil buffer.
The value to which each buffer is cleared depends on the
setting of the clear value for that buffer.
NOTES
If a buffer is not present, then a glClear directed at that
buffer has noeffect.
ERRORS
GL_INVALID_VALUE is generatedif any bit other than the four
defined bits is set in mask.
GL_INVALID_OPERATION is generated if glClear is executed
between the executionof glBegin and the corresponding
execution of glEnd.
ASSOCIATEDGETS
glGetwith argument GL_ACCUM_CLEAR_VALUE
glGetwith argument GL_DEPTH_CLEAR_VALUE
glGetwith argument GL_INDEX_CLEAR_VALUE
glGetwith argument GL_COLOR_CLEAR_VALUE
glGetwith argument GL_STENCIL_CLEAR_VALUE
SEE ALSO
glClearAccum,glClearColor, glClearDepth, glClearIndex,
glClearStencil, glDrawBuffer,glScissor
Complete and concise. (9/8/5)
Parents, gfs, bfs, and others are welcome to sit in the
lectures, and to discuss, Computer Graphics, RPI, or most
anything else after class, and to phone and write. (9/8/5)
here. (9/8/5)
Zhongyi Xie <xiezATrpiDOTedu> is the course TA.
He will be available during the Wed lab and by email. Later
in the semester, when there is a need, we'll add extra office
hours. (9/2/5)
(This is an answer to a question, which may be of
general interest. It is enrichment material. That means that
it is not part of this course and there will be no homework or
exam questions on it.)
If you'd like to experiment with Linux, the easiest way is
to boot from a live CD or DVD. I recommend Knoppix.
That doesn't write to the disk (unless you want to), so any
existing OS is not damaged. Knoppix uses the memory as a
filesystem, and can also write to USB drives. I use knoppix
as an emergency repair DVD for computers that won't boot.
The student RPI ACM club has a lot of expertise, and can
help to install linux at one of their install fests.
If you want to install linux, and don't mind nuking your
disk, use knoppix to repartition the disk, reinstall windows,
install linux, then install a bootloader like grub, which will
let you boot either one.
If you want to work with an existing windows installation,
you must first shrink the partition to make space for a new
linux partition. That requires compacting the files first,
which the default windows defrag program may not be able to
do. I've had success with Perfectdisk.
Every computer engineering student should learn enough
linux to form an informed opinion. It isn't perfect, but
IMHO, is better than windows, and I use it most of the time.
However, all that's outside the purvue of Computer Graphics.
ECSE and CS majors, and anyone else with sufficient
background, are welcome in Computer Graphics. If you pin the
paperwork by my door (JEC6026) or bring it to me in class,
I'll sign it.
Concerning the stated prereq: The real prereq is at least 2
computer courses, including C competence and some C++
programming competence. However, they wouldn't let me say "2
computer courses" so I made the closest match. You don't
actually need COCO; this course is SW. Nevertheless, there
are actually a few overlaps between COCO (as of when I taught
it) and Computer Graphics.
Also the catalog description is seriously out of date.
Read this website, or ask current students in this class, for
more current info.
Certain copyrighted material, such as powerpoint slides by
Angel, the textbook author, is behind a password protected web
site. I'll give you the password in class.
Greg Turk
asks "What math should I learn in order to study computer
graphics?", and then answers.
In case that class members would like to blog about this
course, I've created rpigraphics on blogger.com. Enjoy.
TBD
If you are an undergrad and are interested in a URP relating
to this course, then see me. This would almost require that
you already know some graphics. Either course credit or money
might be possible.
More details later.
SIGGRAPH is the
biggest Computer Graphics conference. Everyone who likes
graphics should see it once. Student interns can see it
cheap. If you work halftime then admission and a place to
stay are free, and they might also pay for transportation.
There is a hard deadline around Feb.
I've compiled a list of some famous RPI grads who can be
argued to be related to graphics.