This page is under construction. Graphics Course Page.

Quick Links:
Demos Solutions Topics Marks
Evaluation Texts Announcements
Assignments Midsemester Course Eval
Lecture hours: Slot 7. Mon: 13:30. Tuesday: 16:00.
Lab: There is no formal lab hour, but keep yourself free on Thursday 3pm (slot 7C).
TA: Ravi Venue: G7/SITClassRoom
  • What I will cover next:
    1. Next for tools: Narayanan, Mukesh,
    2. Thursday: B-splines, if we have time. Also we will try to do course eval. Please try to be present.
  • Latest marks.
  • Recent Announcements
    • Picture assignments: URL's have been updated. See below. Incomplete: Nilesh, Naga, Hemendra, Mukesh. Jugal. Nue, Shameem.
    • Tools assignment not done: praveen, manjunath, cabhina, mukeshc, jugal, narayanan, aneesh, shameem
  • Topics covered so far. Note that the notes have been transcribed by some of your seniors and have errors! Please point them out to earn class participation points.
    1. Intersection of line segments. See these notes.
    2. Convex hull. End of week 2.
    3. Modeling Transformation. See these notes. Also check out the Rogers and Adams book on Mathematical Elements for computer graphics.
    4. Transformations related to projection. See these notes. Also check out the Rogers and Adams book on Mathematical Elements for Computer Graphics.
    5. Clipping. Polygon Filling See these notes. Also see Hearn and Baker for details on scan conversion and polygon filling.
    6. z-buffer algorithm. Notes to be produced by Hemendra. Not done.
    7. Perspective normalization. Notes to be produced by Praveen. Not done to my satisfaction.
    8. Ray Tracing. Some faq here and here.
    9. Front To Back algorithm. Click here.
    10. Polygon scan conversion algorithm alternative.
    11. Radiosity notes: I need a volunteer.
    12. Anti-aliased hemicube. See paper . Contains scan conversion algorithm also.
    13. Weathering See presentation, and scientific american article (downloaded version doesn't have all the nice images.)
    14. Linear Octree Display. See this paper and these slides.
  • Demos, samples.
    1. Documentation for povray
    2. Documentation for gl, for GLU, and for glut. Also see the home page of mukeshc for the red book. (make sure you see the copyright page). Thanks, mukesh.
    3. Simplest OpenGL proram. Simple rectangle from the book. On my machine, I use gcc hello.c -lGL -lglut -lGLU to compile. On pro-*, Shameem used successfully gcc -L/usr/X11/lib -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lglut -lMesaGL -lMesaGLU -lm hello.c
    4. This program (for the truncated cube) demonstrates geometrical manipulations. Click on all mouse buttons to see the effects.
    5. Tips for running OpenGL with no source code changes on NT (from Shilpa Ghadge).
      1. Visit the GLUT Web site or to download the GLUT 3.6 headers and pre-compiled libraries
      2. Copy the files in the respective areas
      3. In your project settings add the following library modules: glut32.lib, opengl32.lib, glu32.lib
  • Tasks. Assignments are not optional. You MUST submit every assignment (even if it is late) to be considered ineligible for a fail grade.
    1. Register with me via email your name by which you'd like to be called. Due, Friday Aug 4 midnight.
    2. Geometry. Due, Thursday Aug 10. midnight. Write a program (no graphics yet) that will report true if two (solid) triangles intersect. Vertices of the triangles are (currently) to be taken from standard input as three integers. The output is true or false. Submission guidelines for Assignment no 1:
      1. Send a nicely formatted text (html) version of your algorithm via email to sharat with the subject header cs685
      2. Send the source code alongwith the html version in one single source file with the subject header cs685 to sharat
      This counts towards programming assignments. Note: Adding graphics to this will come later.
    3. Picture Assignment: Due every week :-). In this assignment, you will bring a picture (either a physical one, or one on the net). The picture that you bring must have "something interesting" (as voted by the majority in the class) from our course point of view. Pornogrphic pictures, sadistic pictures, and the like are STRICTLY excluded. Every week we will do one picture from one student. You should be able to evoke a question from your audience "How was this effect achieved?" This counts towards class participation. Email me before Monday afternoon to be scheduled for that week.
    4. First OGL program. Show the truncated cube (see elsewhere in this file) in oblique (cabinet) view on a xwindow screen. All three edges of the triangle should be fully visible. No rotation stuff, no animation. Simply a static view. Due Aug 17 midnight.
    5. Tools. Due every week:-) Each of you should prepare a talk on some tools aspect of Graphics. Not a research talk. Example of topic: http://www.jausoft.com/gl4java.html. Talks should be about 15 min in duration, must contain a short demo. Check with me on your topic before you present. This counts towards class participation. Email me before Monday afternoon to be scheduled for that week.
    6. Perspective normalization. Written. Due Thursday. Derive the matrix needed to transform a canonical perspective frustum (defined by z = -1, z = z_min, y = z, y = -z, x = z , x = -z) into the canonical parallelopiped used by OpenGL (defined by z = 1, z = -1, x = 1, x = -1, y = 1, y = -1). Make sure that you show that it works.
    7. Viewport and OGL. Programming. Due Mon Sep 4 2000 Monday 8 AM. Display the triangle assignment in four viewports. The first viewport shows the triangle in 3D oblique view. The second viewport (viewed to the right the way you read this line). shows the two triangles as planar triangles (in some plane to be determined.) The triangles are shown as if they intersect (if they do), and not intersecting (if they don't). Clearly the plane has to be determined dynamically. The third viewport (below the first) shows the triangle projected on the x-y plane. The fourth viewport is reserved for future use. For this assignment, visual quality is important. Note: You may not discuss this algorithm with any one. You can use the net resources (such as this for ensuring that the algorithm is correct.
    8. Course project
      • First Stage. Please submit a (A4-sized) one-page (back side OK) design document. The document must contain information on what you plan to achieve, a handdrawn or computer generated picture of your project, schedule. I am going to be firm with the deadline, so please do not ask for extension. Note: your grades for your project will be determined by this design document irrespective of what you churn out at the end. In other words, I will hold you responsible to this document. Deadline: Oct 16. (Seehere for some ideas if you must).
      • Second Stage. Due Oct 23. Please submit updated design document. Add more pages if necessary.
    9. Ray Tracing assignment. Use POV ray to produce pictures on the theme: IIT Bombay. General guidelines are that you can borrow any code (for example textures, geometry) but that there should be something new in your page (greater than equal to 20%). Deadline: October 16. Ideas for themes: The logo, text of IIT Bombay, Hostel, PAF, Sports, TechFests, Powai Lake.
  • Evaluation (Note: CS475 is graded differently from CS685).
    1. Collaboration: By default, you may not discuss assignments with friends (or anyone else for that matter); you are expected to implement your own solutions. On the programming project, you are permitted (and encouraged) to form teams of two people and partition your work among the team members. Teams may discuss their project with other teams, but may not share code. By reading these lines, you agree to these terms :-)
    2. Attending the class is optional (except in unusual cases where I may be forced to apply the XX grade yardstick). However, if you attend the class, you must be well prepared. In particular, if
      1. You are found sleeping in the class, you will get Negative marks.
      2. You get marks for "good" point you make in the class. Everyone will be given an opportunity to make good points.
      3. You must earn good points, otherwise, you will be considered as sleeping. In other words, you don't get points for attendance.
      Is this policy clear? Remember, this course is an elective for you, so if you don't like this, please consider some other course.
    3. Class participation: 5-10% (You can make or break a grade in this category).
    4. Midsem: 10% (Week of Sept 18).
    5. Programming assignments: >=10%
    6. Course project: <= 20%
    7. Final exam: <= 50%
  • Texts/References
    1. Computer Graphics: Principles and Practise, Second Edition. Foley, van Dam, Feiner and Hugues. Addison Wesley. 1990.
    2. Advanced Animation and Rendering Techniques: Theory and Practise. Alan Watt and Mark Watt. Addison Wesly. 1992.
    3. Computer Graphics. Hearn and Baker. Best value for money.
    4. Computer Graphics. Newman and Sproull (do not look at this unless you have to).
    5. 3D Graphics Programming with OpenGL (available in the library).
  • Old Announcements
    • Sysadm Mamata has placed Mesa on all pro machines except pro-09, pro-20 and pro-01. Has anyone tried out?
    • You are EXPECTED to check the web page once a week before the class hour on Monday (around 1 pm).
    • Submissions will be done via a suitable web page. Do not send email. This will start as soon as your TA has set it up, so until then we have to resort to email.
    • In general, if you have a question copy the email to the TA. Now is a good time to set up a mail alias for this course.
    • Programming will be in Java or OpenGl, Raytracing scripts. Maybe: Flash.
    • Be prepared for the lectures with the topics already covered.
  • Solutions.
    1. Triangle triangle intersection. C version
    2. Written Assignment on perspective normalization.
    3. Picture assignments.
      1. Anand: Picture and Comments
      2. Jalem: Picture and Comments
      3. Manjunath: Picture and Comments
      4. Abhinav: Pictureand Comments
      5. Ravikanth: Pictureand Comments
      6. Vikram: Pictureand Comments
      7. Mukesh. Pictureand Comments
      8. Sunny: Picture and Comments
      9. Sundeep: Picture and Comments
      10. Susmit: Pictureand Comments
      11. Ameet: Pictureand Comments
      12. Sanket: Picture and Comments
      13. Akhilesh: Pictureand Comments
      14. Aneesh: Pictureand Comments
      15. Narayanan: Pictureand Comments
      16. Shameem: Pictureand Comments
    4. Tools assignment:
      1. Sunil. Choice: AB. Presentation: BC. Utility: BC
      2. Sunil. Choice: AB. Presentation: BC. Utility: BC
      3. Sunil. Choice: AB. Presentation: BC. Utility: BC
      4. Sunil. Choice: AB. Presentation: BC. Utility: BC
      5. Sunil. Choice: AB. Presentation: BC. Utility: BC
      6. Sunil. Choice: AB. Presentation: BC. Utility: BC
      7. Sunil. Choice: AB. Presentation: BC. Utility: BC
      8. Sundeep. Choice: AB. Presentation: AB. Utility: BC (Incomplete)
      9. Sanket. Choice: B. Presentation: B. Utility: D
      10. Akhilesh. Choice: AB. Presentation: A. Utility: C
    5. Midsemester Exam answers
  • Course Evaluation.
    • The questions in html form.
    • The answers. How to read this page: There are 27 questions. Key: 0: strongly disagree. 1: disagree. 2: undecided. 3: agree. 4: strongly agree. Each question has a score (a histogram value) based on the number of responses. A score of 2.91 (for example to question 21) implies that students "agree" with the statement made (in this case, "solutions were discussed").
    • The awk script used to create the summary.
    • The raw responses and commentsso that you know your response was considered!