CG Class 8, Mon 2018-09-24

1   Next few classes

  1. There'll be a regular class in 2018-09-26 lab.
  2. There'll be no classes next week because I'll be presenting at the International Meshing Roundtable . My paper is Exact Fast Parallel Intersection of Large 3-D Ttriangular Meshes, joint work with my Brazilian friends, Salles Viana Gomes de Magalhães, Marcus Vinícius Alvim Andrade at the Federal University of Viçosa. Salles got his PhD in CS at RPI in 2017. We have many papers together.

2   Homeworks

  1. Because of the inconsistency in the due date for homework 3, you may hand it in Thurs, if you wish.
  2. Homework 4 is online, due next Mon.

3   Today's iclicker questions

  1. A mouse reports which type of position?
    1. Absolute
    2. Relative
  2. A tablet reports which type of position?
    1. Absolute
    2. Relative
  3. Which of these can easily be a logical keyboard?
    1. a physical keyboard
    2. a tablet with handwriting recognition
    3. a virtual keyboard on the screen, selecting letters with the mouse
    4. voice input and recognition
    5. all of the above
  4. Which of these mode scales up better when there are many input devices, most of which are quiet most of the time.
    1. event
    2. request
  5. The X window system was designed to
    1. help Mulder and Scully keep track of their data
    2. implement a client-server graphics system for workstations
    3. make smart phone graphics programming easier
    4. be a proprietary hi performance IBM product
    5. succeed the W window system.
  6. Double buffering solves which problem:
    1. producing stereo images
    2. low memory bandwidth
    3. remote debugging PCs
    4. displaying from a frame buffer while it's being updated
    5. optimizing scheduling two elevators as a group

4   Textbook slides

4.2   Chapter 5

The big topic for Chapter 5 is homogeneous coordinates. They allow all the common transformations - translation, rotation, scaling, projection - to be expressed as a multiplication by a 4x4 matrix.

  1. 5_1 Representation - I'll do this really quickly.
  2. 5_2 Homogeneous coordinates
  3. 5_3 Transformations.

5   Picking

The user selects an object on the display with the mouse. How can we tell which object was selected? This is a little tricky.

E.g., It's not enough to know what line of code was executed to draw that pixel (and even determining that isn't trivial). That line may be in a loop in a subroutine called from several places. We want to know, sort of, the whole current state of the program. Also, if that pixel was drawn several times, we want to know about only the last time that that pixel changed.

Imagine that the image shows cars in the north lot. You select a pixel that's part of the image of a wheel nut. However there are many wheel nuts in the image, perhaps all drawn with the same subroutine. You might want to know that you selected the 4th wheel nut on the right front wheel of the 2nd car on the left of the 3rd row from the front.

There are various messy methods, which are all now deprecated. The new official way is to use the color buffer to code the objects.

  1. Decide what granularity you want for the selection. E.g, in the north lot, you may not care about specific wheel nuts, but just about wheels. You want to know that you selected the right front wheel of the 2nd car on the left of the 3rd row from the front.
  2. Assign each wheel in the lot a different id number.
  3. When drawing the scene, use each wheel's id number for its color.
  4. Look at the contents of the color buffer pixel to know what you picked.
  5. Perhaps really store this info in a 2nd buffer parallel to the color buffer, so the image will look better.

6   Textbook programs

My local web copy .

  1. Chapter 3: We'll continue with cad2.

  2. Chapter 4:

    1. color interpolation
    2. element arrays
    3. etc

    We'll skip quaternions until we see 3D rotations.

7   SIGGRAPH 2017 videos

SIGGRAPH is the world's leading CG conference. I'll show various videos from it.

  1. Computer Animation Festival Trailer.
  2. SIGGRAPH 2017 VR Village Trailer.