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.

Contents:

1. Final Course Grades Submitted and Emailed

If you didn't receive an email, tell me. (12/19/5).

2. Review Session Tues 3-5 CII3051

Zhongyi will hold a review session for the final exam in CII (aka Low) 3051 on Tues from 3 to 5. (12/12/5)

3. Spring 2005 Final Exam

is here. (12/7/5)

4. Final Exam Sample Questions Now Online

here. There is a certain overlap with the homework. (12/7/5)

5. More Sample Questions Based on the Lectures Are Now Online

Lecture # 13, 14, 15, 16, 17, 18, 20, 21. (12/7/5)

6. Homework 9 and 10 Numbering Confusion

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)

7. Final Exam

  1. It's Wed Dec 14, 8-11 am, DCC (aka Darrin) 337.
  2. You may bring any paper, papyrus, or vellum-based notes, either handwritten or mass-produced.
  3. You may not share your notes with other students during the exam.
  4. You may not use any computers.
  5. You may not communicate with others (except the course staff) during the exam.

8. Thu Dec 1: Special Guest Discussion on Founding a Graphics Company and Intellectual Property

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:

  1. the history of your company.
  2. 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?
  3. 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.

  4. 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.

9. Grades Emailed

I just emailed everyone our version of your grades: homeworks 1 to 9 and the midterm. Please report errors to Zhongyi. (11/22/5)

10. Homework 8 Solution Online

here. (11/22/5).

11. Homework 9 Online, Due Nov 30

here. (11/16/5)

12. Sign Up to Demonstrate Your Projects

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).

13. Timely Project Reports are Part of Grade

The calendar lists when to mail project reports. The dates were published before the first day of class. (11/16/5)

14. Homework and Lab Etiquette

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)

15. Lab 8 Online

Lab 8 (10/27/5)

16. Tobi Saulnier's Slides

here (10/27/5)

17. ECSE-6800: Spring Successor Course to ECSE-4750

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)

18. Lab 7 and Homework 8 Online

Lab 7, Homework 8. (10/26/5)

19. Homework 6 Solution Online

here. (10/23/5)

20. Midterm Exam Solution Online

here (10/20/5)

21. Correction to Midterm Exam Total Points

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)

22. Thurs Dec 1 Class Moved

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)

23. Lab 6 and Homework 7 Online

lab6, homework 7

(10/18/5)

24. Midterm Exam Grades were Emailed

(10/18/5)

25. Midterm Exam Online

Here. Sorry for the delay :-) (10/13/5)

26. Homework 5 Solution Online

here. (10/12/5)

27. Homework 6, Including Lab, Due Date Changed to Oct 19

Use the time to study instead. (10/11/5)

28. Term Project

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).

29. Sample Midterm Questions and Spring 2005 Midterm Exam Now Online

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)

30. Sample Lecture Questions Now Online

Zhongyi has prepared sample questions for many of the lectures. The links, in the Lectures column of the Calendar, are copied here.

  1. Lecture 3
  2. Lecture 4
  3. Lecture 6
  4. Lecture 7
  5. Lecture 8
  6. Lecture 9
  7. Lecture 10

(10/10/5)

31. Grades Emailed

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).

32. Solution to Homeworks 3 & 4 online

homework 3 solution. homework 4 solution. (10/10/5)

33. Lab 5 and Homework 6 are Online

(10/4/5).

34. Guest Lecture by Tobi Saulnier of 1st Playable Productions

We will be fortunate to have Tobi Saulnier, CEO of 1st Playable Productions, LLC talk to the class on Oct 17. (10/3/5).

35. Solutions to homework 1 and 2 are Online

Solutions to homework 1 and homework 2 available. (9/21/05).

36. Lab 4 and Homework 4 are Online

Start homework 4. (9/20/5).

37. Client vs Server

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).

38. Relevance to COCO

Note how event driven input in graphics is like interrupt driven input in COCO (at least when I taught COCO). (9/19/5).

39. OpenGL Inconsistent Coordinate Systems

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)

40. Windows and Viewports

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)

41. Tentative Final Exam Conflicts

The preliminary final exam schedule has the final exam for Computer Graphics at the same time as these other courses:

  1. ENGR-2600 M&A of Uncertainty
  2. PHYS-1100 Physics I
  3. 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)

42. Homework 3 is Ready

(9/14/5)

43. New Email for Zhongyi Xie

xiez2ATcsDOTrpiDOTedu (9/12/5)

44. No Eigenvalue Computation on Exams

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)

45. Engineering Trade-offs

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)

46. Designing Complex Systems

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:

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)

47. Combining Your Graphics Term Project With Another Course

is a great idea, provided you tell both courses, and the other also agrees. (9/8/5)

48. Using Google for OpenGL Definitions

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)

49. Parents are Welcome

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)

50. Homework 2 is Ready

here. (9/8/5)

51. Zhongyi Xie: TA

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)

52. Getting Started With Linux

(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.

53. Note to Students Who Want to Take Computer Graphics in Fall 2005

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.

54. Password Protected Web Pages

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.

55. Greg Turk: Mathematics for Computer Graphics

Greg Turk asks "What math should I learn in order to study computer graphics?", and then answers.

56. Blog Available

In case that class members would like to blog about this course, I've created rpigraphics on blogger.com. Enjoy.

57. TA Office Hours

TBD

58. Undergrad Research Projects

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.

59. Summer Opportunity - SIGGRAPH Student Volunteer

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.

60. Famous Graphics-related RPI Grads

I've compiled a list of some famous RPI grads who can be argued to be related to graphics.