There will be about a dozen homeworks.
| No
| Date
| Summary
|
| 1
| Tues Aug 26
|
Topics:
Syllabus and Intro. Reading:
- AngelCG01.ppt: What is Computer Graphics?
- Angel, chapter 1.
Announcements:
- Room change to Lally 104 (Tues and Fri) and J-Rowl (aka
Science Center) 2C22 (Wed)
- Homework 1 available, due Sep 2.
|
| 2
| Wed Aug 27
|
Topics:
Chance to ask questions about homework Announcements:
It's ok to render the NCC1701 as polygons, if you wish.
|
| 3
| Fri Aug 29
|
Topics:
Chapter 1. Notes:
- What physical principles are each type of HW based on?
- CRT: certain rare earth materials emit photons when hit
by electrons. Explaining this is what got Einstein his
Nobel (not relativity).
- What engineering challenges required solving?
- Shadow-mask CRT: electron beams travel varying distances
at different angles, but don't hit the wrong phosphor even
as the system gets hotter. The precision is 0.1%.
- What tech advances enabled this solution?
- Raster graphics required cheap memory.
Reading:
- AngelCG02.ppt: Image Formation
Announcements:
Midterm exam date fixed at Wed Oct 8
|
| 4
| Tues Sep 2
|
Topics:
- Engineering Grounded In Reality
- A little on API philosophy, e.g,
Portability And Standards, and submarine patents.
- AngelCG03.ppt: Models and Architectures
Reading:
Announcements:
- Homework 2 available, due Sep 9.
|
| 5
| Wed Sep 3
|
Topics:
- chance to talk to Jixu about homework
|
| 6
| Fri Sep 5
|
Topics:
- AngelCG04.ppt: Programming in OpenGL I
- simple2.c - simplest OpenGL program. Features:
- including required include file
- initializing OpenGL
- creating a top level window of default size and position
- setting window title
- defining and registering a display callback
- entering the main event loop
- clearing the frame (aka color) buffer to a default color
(black)
- drawing a polygon with the default color (white)
- forcing pipeline to flush
- compiling and linking
- simple3.c - slightly bigger OpenGL program
- setting vertex colors and observing polygon color
- overlapping polygons
- simple4.c - version created in class
- my Makefile - YMMV
- AngelCG05.ppt: Programming in OpenGL II
Reading:
Announcements:
To compile the OpenGL examples in Visual C: If you get a
redefinition error for exit, then do not include
stdlib.h in your program. It is already included by
another include file, and it lacks an inclusion guard.
|
| 7
| Tues Sep 9
|
Topics:
- AngelCG06.ppt: Programming in OpenGL III
- Demo, discuss, and modify
shape_test.c. New features:
- OpenGL datatypes like GLfloat
- Allocate and enable depth (aka Z) buffer
- Perspective view
- Several utility polyhedra
- sphere, cone, cube, torus, dodecahedron, teapot,
octahedron, icosahedron
- wire or solid
- Light source and color
- Enabling and disabling lighting
- Reshape callback
- Push and pop transformation matrix
- Rotate, scale, translate transformations
- Using viewport to draw into a small region of the
window. Anything outside the viewport is clipped.
- AngelCG07.ppt: Input and Interaction
- Demo, discuss, and modify
gasket2.c . Features:
- Array of vertices passed to glVertex2fv
- Array of triangles
- Recursively creating the graphic object
- glBegin and glVertex2fv are in different routines. It's
the order in which they are executed that matters, not their
order in the source file.
- Parallel (ortho) projection.
- Demo, discuss, and modify
gasket3.c . Features:
- 3D.
- Spec colors in an array.
- Reshape callback. It handles rectangular windows,
keeping the tetrahedra undistorted, with the same aspect
ratio, centered in the window.. Portrait and landscape
mode are separate cases.
- glPostRedisplay
|
|
Reading:
Angel, chapter 2, excluding 2.11
Announcements:
- In Homework 2, the nonphysical aspect of the
graphics pipeline is the idea that objects do not interact
with each other, i.e., that object A's
brightness/color/etc is not affected by object B.
Therefore, OK to hand in homework 2 tomorrow.
- Homework 3 available, due Sep 16.
- Prof Roysam is looking for graphics students in various
roles from undergrad projects on up. See his website and
talk to him. Working for him would make a good term
project for this course.
|
| 8
| Wed Sep 10
|
Topics:
Chance to talk to Jixu.
Reading:
Announcements:
|
| 9
| Fri Sep 12
|
|
Topics:
- AngelCG07.ppt: Input and interaction
- Demo, discuss, and modify
paint.c . Features:
- keyboard callback
- write the key at a position stored in a global and
update that
- mouse callback
- accumulating info, such as triangle vertices, from
successive callbacks
- converting coords from what is passed to mouse callback
(origin is top left corner) to what is used by openGL
window (origin is bottom left corner)
- picking a region of window by analyzing coords of mouse
click.
- immediate mode: on redisplay, if it's not explicitly
redrawn, it's not there any more.
- colors as unsigned bytes.
- using globals to pass data to/from callback routines.
- menus
- create
- add entry
- add submenu
- attach to mouse button
- menu callback
- arg is the int key associated with that menu entry
- pushing and popping attributes
- writing text
- setting position
- writing char
- updating position by width of char
|
|
Reading:
Announcements:
- The Provost has cancelled class on Oct 3.
- Good news: Profs Barb Cutler (CS), Tom Zimmie (Civil), and
I just won a National Science Foundation Cyber-Enabled
Discovery and Innovation award for $670K, Fundamental Terrain Representations and Operations, which, "unifies
the fields of computational geometry, computer graphics,
and civil engineering hydrology, resulting in a
transformational ability to predict how erosion occurs,
specifically in levee failure by overtopping, and, after a
failure, to reverse-simulate what happened...."
Details.
- talk today at 3 in JEC 3117 by Shivkumar Kalyanaraman an
ECSE prof on leave at Telecom Research Innovation Center
(TRIC), IBM India Research Laboratory, Delhi ''Spoken Web: Towards a Telco-hosted Voice-based Web created from
Ordinary Cell Phones''. I'll end class a few minutes
early so people can attend this.
|
| 10
| Tues Sep 16
|
Topics:
- passivemotion.c. Changes the image depending
on where the mouse is, using a mouse passive motion
callback. This shows how to answer Friday's question
about causing something to happen when you mouse over a
menu at the top of the window
- passivemotion2.c. Extends passivemotion to
redraw only when something changes. This prevents the
image tearing caused by redrawing during the refresh.
It's also more efficient.
- single_double.c. Shows:
- The difference between single and double buffering.
- Creating two graphics windows in one program. Note the order:
- Set the display mode.
- Create the window.
- Register the callbacks.
- Repeat for each window.
- Call MainLoop.
- Mouse input.
- Changing the idle callback. The new one replaces the
previous one.
- getinfo.c. Shows how to read information about
the OpenGL version and how to get internal state variables.
This also shows how to access command line arguments.
This shows just a sample; there are more.
- showinput.c. Shows how to get input. This also
shows the coordinate system used to report mouse events. Units
are pixels.
(0,0) ...... (xmax,0)
....
....
....
(0,ymax).....(xmax,ymax)
- Beyond double buffering:
How to avoid tearing caused by swapping the foreground and
background buffers in the middle of refreshing the image and
the two buffers have different images?
- One solution is to wait until the vertical retrace to swap
the buffers. However, if each buffer takes about 1/60 second
to recompute, sometimes more and other times less, then the
refresh rate will fluctuate between 1/60 and 2/60 second.
- Another solution is to use 3 buffers. You display from the
1st, have the 2nd ready to swap with the 1st in the next
vertical retrace, and meanwhile compute into the 3rd. This
uses 50% more memory.
- How to fight tearing
- OpenGL Extension WGL_I3D_swap_frame_lock
- Smooth Gaming with Triple Buffering
- AngelCG08.ppt more on callbacks
Reading:
Angel, chapter 3.
Announcements:
- Homework 4 available, due Sep 23.
|
| 11
| Wed Sep 17
|
Topics:
chance to talk to Jixu
Reading:
Announcements:
|
| 12
| Fri Sep 19
|
Topics:
- time.c. Times how quickly a frame with a
square can be drawn.
- square2.c. Demonstrates glutMotionFunc callback.
Change glutMotionFunc to glutPassiveMotionFunc to see what
happens.
- manywindows.c. Shows that many top level windows
(a new one with each left mouse click) can be dynamically
created.
- paintxor.c modified by paint.c to write triangles
into the color buffer in XOR mode. Everything else is still
written in COPY mode. XOR mode is useful for cursors and
rubberbanding because XORing the same object twice restores the
original buffer.
- AngelCG09.ppt Better interactive programs
- AngelCG10.ppt Geometry
Reading:
Announcements:
By popular requests, homeworks will henceforth be due on Fridays.
|
| 13
| Tues Sep 23
|
Topics:
I will present transformations 3 different ways to help you
understand this important topic.
- AngelCG11.ppt Representation
- AngelCG12.ppt Transformations
- My note on homogeneous coordinates and projections demoed by Albrecht Durer
(The following display better in Firefox than Internet Explorer.)
- Homogeneous matrix examples, p' = M p for
- Translate by (1,2,3):
M = \left(\begin{array}{cccc} 1 & 0 & 0 & 1\\ 0 & 1 & 0 & 2\\ 0 & 0 & 1 & 3\\ 0 & 0 & 0 & 1\end{array} \right) .
This also works:
M = \left(\begin{array}{cccc} 2 & 0 & 0 & 2 \\ 0 & 2 & 0 & 4 \\ 0 & 0 & 2 & 6 \\ 0 & 0 & 0 & 2 \end{array} \right)
- Rotate around Z axis by an angle whose cosine is 0.6:
M = \left(\begin{array}{cccc} .6 & -.8 & 0 & 0 \\ .8 & .6 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{array} \right)
Reading:
Announcements:
- Tomorrow, go to Tiemann's talk.
- The final exam has been set for Fri Dec 12 11:30-2:30.
|
| 14
| Wed Sep 24
|
Topics:
Michael Tiemann, Red Hat,
Exonovation--Leveraging Innovation from the Edge, DCC324
Reading:
Announcements:
|
| 15
| Fri Sep 26
|
Topics:
- My note on 3D rotation
- all rigid transformations in 3D that don't move the origin have a line of fixed points, i.e., an axis, that they rotate around.
- deriving the vector formula for a rotation given the axis and angle
- computing the matrix from a rotation axis and angle
- testing whether a matrix is a rotation
- if it is, then finding the axis and angle
- Bill Jacobs' OpenGL video tutorial - excellent
Reading:
Announcements:
- The display list question from homework 4 is postponed until
the next homework.
- Next Wed, go to the Network-Centric Data Acquisition talk
|
| 16
| Tues Sep 30
|
Topics:
- My note on homogeneous coordinates and projections demoedby Albrecht Durer in more detail.
- My note on 3D rotation in more detail
Reading:
Announcements:
- Homework 3 solution online.
- Dreamworks is visiting RPI around Nov 4-5, to give a talk and
interview students. If interested, contact the CDC.
|
| 17
| Wed Oct 1
|
Topics:
special talk, Dr. Gavin Pearson, Ministry of Defense in the
UK, The Coming Transformation of Network-Centric DataAcquisition: Concept, Technologies, Benefits andChallenges,
Lally 102
Reading:
Announcements:
|
| 18
| Fri Oct 3
| Class cancelled on 9/9 by Provost.
|
| 19
| Tues Oct 7
|
Topics:
Review for midterm exam
Announcements:
- What do you think of my replacing my lectures with
pointers to distinguished external speakers, such as on open SW?
- Do you want to use calculators in tomorrow's exam?
- I'm working to set up a behind-the-scenes tour of EMPAC.
The video and audio capabilities are incredible.
|
| 20
| Wed Oct 8
|
Topics:
Midterm exam Announcements:
- Calculators, and any books, papers, and notes are allowed.
Computers (above the level of calculators), communication
tools, and sharing material with other students are not
allowed.
- DreamWorks Animation will be coming to campus on Friday,
February 29th. They are very interested in interviewing
seniors in EMAC, EART and CSCI for a variety of full-time
positions (Effects Animators, Effects Developers, Crowd
Simulation Animators, Character FX Animators, Technical
Directors). The RedHawk JobLink Job ID is 691510 for the
full-time position, and #691536 for summer internships
(use job ID in Keyword field). Resume submission ends on
February 19th. ... DreamWorks's URL is:
http://www.dreamworksanimation.com. DreamWorks will be
making a presentation that is open to all students on
Friday, 02/29 at 4:00 PM in Sage 3303. (More info is
available.)
- Homework Solution4.pdf online.
|
| 21
| Fri Oct 10
|
Topics:
- displaylist.c - sample display list program.
- AngelCG13.ppt OpenGL transformations
- AngelCG14.ppt Model Building
- This topic becomes ever more important as your models
get bigger.
- We start to see the separation of geometry from topology.
- AngelCG15.ppt Classical viewing
This is largely obsolete. However you should recognize
the terms. Vanishing lines is useful for drawing
perspective objects by hand.
- AngelCG16.ppt Computer viewing
Reading:
Announcements:
- Homework 5 online.
|
| 23
| Wed Oct 15
|
Topics:
regular lecture.
Reading:
Announcements:
|
| 24
| Fri Oct 17
|
Topics:
Reading:
Announcements:
|
| 25
| Tues Oct 21
|
Topics:
Reading:
Announcements:
|
| 26
| Wed Oct 22
|
Topics:
regular lecture.
Reading:
Announcements:
|
| 27
| Fri Oct 24
|
Topics:
Reading:
Announcements:
Term project proposal due, containing:
- title,
- team members (name, email, RIN),
- 100 word summary.
Email to TA Jixu Chen, chenjFOUR ATrpiDOTedu
|
| 28
| Tues Oct 28
|
Topics:
Reading:
Announcements:
|
| 29
| Wed Oct 29
|
Topics:
regular lecture.
Reading:
Announcements:
|
|
| Fri Oct 31
|
Topics:
No class; prof running
Fall Workshop in Computational Geometry at RPI
|
|
| Tues Nov 4
|
Topics:
Reading:
Announcements:
|
|
| Wed Nov 5
|
Topics:
chance to talk to Jixu
Reading:
Announcements:
|
|
| Fri Nov 7
|
Topics:
Reading:
Announcements:
progress report due; email to TA Jixu Chen, chenjFOUR ATrpiDOTedu.
|
|
| Tues Nov 11
|
Topics:
Reading:
Announcements:
|
|
| Wed Nov 12
|
Topics:
regular lecture.
Reading:
Announcements:
|
|
| Fri Nov 14
|
Topics:
Reading:
Announcements:
|
|
| Tues Nov 18
|
Topics:
Reading:
Announcements:
|
|
| Wed Nov 19
|
Topics:
regular lecture.
Reading:
Announcements:
|
|
| Fri Nov 21
|
Topics:
Reading:
Announcements:
progress report due; email to TA Jixu Chen, chenjFOUR ATrpiDOTedu.
|
|
| Tues Nov 25
|
Topics:
Reading:
Announcements:
|
|
| Tues Dec 2
|
Topics:
Five minute term project presentations.
Reading:
Announcements:
|
|
| Wed Dec 3
|
Topics:
Five minute term project presentations.
Reading:
Announcements:
|
|
| Fri Dec 5
|
Topics:
review for final exam
Reading:
Announcements:
|
|
| Fri Dec 12
|
Topics:
Final exam. 11:30-2:30.
|
This is only a summary that I created so you can merge it
with your other Google calendars. The details are above.