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