ECSE 6800
Advanced 3D Graphics & Visualization
RPI, Spring 2004
Note: Many of the links that were valid when this
page was created have since rotted.
Table of Contents
New entries are at the top. This is updated by hand and so
might be obsolescent at times.
- CS seminar: Multiresolution and Discrete Models as
Foundations for Scalable Simulation, March 30
- Direct X, OpenGL and Misc; for March 22
- Homework 3 Due Mar 22
- Project Ideas
- Thu Mar 18 class replaced by CS talk
- Chandra Narayanaswami's talk rescheduled to Apr 22
- Fast HW
- Stereographs
- Linear Programming
- Voronoi diagrams
- Convex Hulls
- Tight COCONE
- Bring me your point clouds
- Due Dates
- Homework 2 Due Date
- Class Schedule
- JPEG
- MPEG
- NTSC Video Compression
- Resolutions of Early Monitors
- New Scientist on Colors
- Syllabus
- Student Presentations
- Term Project
- Course Subjects (Tentative)
Term Paper Presentations
Everyone who, up to Apr 18, has asked to present on Apr 26,
has Apr 26. That fills up Apr 26. The remaining date is Apr
19, and there are no other classes. However, to give people
who would be on Apr 19 more time, I'll schedule a special
presentation time on Friday Apr 23 at 2 pm, in a room TBA. Is
that convenient? This not being the official class time,
attendance is optional for people not presenting.
Misc Announcements
Homework 3 Due Mar 22
You may do this work in teams of up to 2 people.
- If you have a rotation of 180 degrees about the X-axis, followed by a
rotation of 180 degrees about the Y-axis, what are the axis
and angle of the combined rotation? Use quaternions.
- Now find the combined rotation if the two rotations are
applied in the opposite order.
- In 9-dimensional (Euclidean) space, how much time would
the best known convex hull algorithm take to process N points?
- In 9-dimensional (Euclidean) space, how much time would
the best known Voronoi diagram algorithm take to process N points?
- In the following figure, which points are depth 1, depth
2, depth 3, depth 4, and depth 5? Depth is described in
Preparata & Shamos.
- Pick one of Curtis Priem's patents, and describe it.
- Give me a title and 100 words on your term project.
Project Ideas
If you're still searching for ideas, check out some of the
things I'm thinking of, here.
Yes, thinking of ideas is hard. However it's a very useful
skill. E.g, that's what I do for each proposal that I write
to try to raise money. It's what you would do before talking
to a venture capitalist.
Thu Mar 18 class replaced by CS talk
Thursday, March 18: Colloquium
Geometric
methods in protein structure analysis
Yusu Wang, Duke University
Time: 4:00pm-5:00pm (refreshments at 3:30pm)
Location: JEC 3117
Chandra Narayanaswami's visit has been rescheduled, to
Thurs Apr 22. He'll be speaking at 3:30 in DCC 324. That
replaces the class that day. I encourage everyone to attend.
Bring me your point clouds
On Feb 23, I'll be discussing Tight
COCONE, which fits a surface to a point cloud. In
preparation for that, if you like, send me a point cloud or
two. The format is one point per line:
x1 y1 z1
x2 y2 z2
...
Due Dates
Homework 2 Due Feb 19
- JPEG quality vs accuracy
- Pick a photographic-like image you like, which has a hi technical quality,
like 24 bit color, but with only about 100 rows and columns.
- Convert it to jpeg at several different quality levels.
- Make a website showing the different versions, and the image sizes in bits per pixel (bpp).
- What do you think is the minimum acceptable bits per pixel?
- Repeat this with an image of text.
- Optionally, graph the average intensity difference as a function of bpp.
Note: Use anything you like; I would do this with xv, and/or netpbm.
- MPEG quality vs accuracy
- Look at the frames of my union of cubes video,
here.
- Encode them repeatedly into mpegs at varying quality
levels and sizes. I used ppmtompeg
with this parameter file. If you
prefer, you may use another tool.
- What's the minimum bits/pixel/frame that you find
acceptable for that example?
- In what way does the video look bad as the quality falls?
- Put the videos on a website for me to see.
- OptionalRepeat this with an example of your choosing.
-
From:
http://www.eskimo.com/~billb/amateur/holo1.html.
HAND-DRAWN HOLOGRAMS!
(c)1995 William J. Beaty
I've stumbled across a technique for drawing holograms directly upon a
plastic plate by hand. It sounds crazy, but I've been sitting on the
livingroom sofa making holographic images of floating polyhedra, words,
3D starfields, etc. No laser, no isolation table, no darkroom, no
expensive film plates. This takes nothing more than a compass and some
scraps of black plexiglas. Too cool, if I say so myself!.....
This homework problem is to try to make a hand-drawn
hologram, bring it to class, and report on your success. I
don't know how well it works, but that's the nature of
research.
- Start thinking about your Term Project.
Give me an idea (or more if you're uncertain) of what you
want to do.
IAEA Internship Available
(Not related to this course).
(formerly
http://www.bnl.gov/ispo/Internship/internship.htm) Spend a
year in Vienna. The deadline is RSN.
Homework 1 Due Feb 3
- Suppose you combine these 2-D transformations:
- Translate by (1,2).
- Rotate by 90 degrees. I.e. (1,0) -> (0,1).
- Translate by (3,4).
- Rotate by -90 degrees.
This is equivalent to one translation (x,y) followed by one
rotation by angle t. What are they?
I have not discussed this at all, so use your creativity,
and any legal method. If almost no one gets it, then we'll
cover it in class.
- Review the SIGGRAPH course #33 notes, including the parts
I skipped, and anything else you like, and answer these
questions:
- Why should red and blue not be used directly together?
- With NTSC, do saturated colors come out well or not?
- What is the Mach band effect?
- What is the difference between kinematics and dynamics in animation?
- How is the rendering equation related to nuclear physics?
- Is raytracing or radiosity better at modeling lenses?
- Is raytracing or radiosity better at modeling surfaces with diffuse reflection?
- Make a creative video MPEG in POVRAY. Put it in the web,
perhaps in a protected place, and give me the URL.
Due Jan 27
Each person please email me a ranked list of 4 research labs
you'd like to review, and 4 dates. I'll pick two for each
person, giving priority to the earlier email.
Class Schedule
- (available) means that this date is still available for a 10 minute student presentation.
- The lecture date is often linked to a copy of the notes that I wrote during the lecture.
| # | Date | Subject
|
|---|
| 1
| M 12 Jan
| SIGGRAPH 2002 course 33: intro to Computer Graphics. Reading:
the course notes
|
| 2
| R 15 Jan
| ctd.
|
| -
| M 19 Jan
| No class
|
| 3
| R 22 Jan |
POVRAY. Reading: browse www.povray.org Try to install POVRAY
on your computer.
(available)
|
| 4
| M 26 Jan
|
- (Metin Inanc on UNC)
- Fermat's principle demoed with Maple
- Snell's law, see R Nave's Hyperphysics - Refraction of Light
-
Reflection
-
Fresnell's law
- SIGGRAPH 2002 course 2: Advanced Global Illumination. Reading:
the course notes
|
| 5
| R 29 Jan
| POVRAY lab.
|
| 6
| M 2 Feb
|
- JPEG
- MPEG
- SIGGRAPH course 2 ctd from page 71. My goal is to present
an executive summary, from which you can learn more on your
own if interested.
|
| 7
| R 5 Feb
|
- (Metin Inanc on Duke)
- (David Bang on Texas/Austin) MOVED
- NTSC Video Compression
- Resolutions of Early Monitors
- quick review of homogeneous coordinates and transformations.
- 3D rotations with matrices, vectors, quaternions. These 3 methods are equally powerful; but some things are easier with one or the other. Ref: any good graphics book and
http://wrfranklin.org/misc_notes/rotation.html
- converting from 1 format to another
- extracting axis and angle
- intro to eigenvectors and eigenvalues
- 4D rotations. Ref:
http://wrfranklin.org/misc_notes/rotation4d.html
|
| 8
| M 9 Feb
|
- (David Bang on Waterloo) MOVED
- Rotations, ctd. Ref: my Nov
1983 IEEE T. Comput paper: Efficient Iterated Rotations of
an Object
- Quaternion refs:
-
Hamilton himself
-
Berkeley's Computer Graphics course
- For quaternions and animation, use google.
|
| 9
| R 12 Feb
|
- (David Millman on U Washington)
- Quaternions and rotations, ctd
-
Display Technologies Guide:
The Differences between LCD, Plasma, DLP, LCOS, D-ILA, and CRT Televisions and Displays
- New Scientist on Colors
|
| 10
| R 17 Feb
|
Note that this class is on Tuesday, not Monday.
- Colors ctd.
- SIGGRAPH 2002 course 21: A Field Guide to Digital Color.
Reading: the course notes. The
slides start on page 59.
- International Color
Consortium. In particular, their FAQ illustrates the
complexities of color management.
- Society for Imaging
Science and Technology - good tutorials on JPEG and
ink-jet printing./a
- Brown colorweb applets
- Color
FAQ - Frequently Asked Questions Color, by Charles Poynton
Frequently asked questions about Colour Physics
|
| 11
| R 19 Feb
| Class cancelled.
|
| 12
| R 23 Feb
|
- Voronoi diagrams - intro. This is the
most important data structure in Computational Geometry.
- Tight CONONE - fit a watertight surface
to an unstructured point cloud - intro.
- (Christian Vogt on IBM)
|
| 13
| 24 Feb
| My former student, Dr Chandra Narayanaswami, Manager, Wearable
Computing, IBM TJ Watson Research Center is visiting RPI.
This is not an official class day, but you'll find his talk
quite interesting. *** Visit postponed until April ***.
|
| 14
| R 26 Feb
|
- Voronoi diagrams and COCONE ctd.
- Convex Hulls
- (Stephen Bourdeau on Brown)
|
| 15
| M 1 Mar
|
- Finish Voronoi diagrams, tight cocone.
- Linear programming intro
-
(Stephen Bourdeau on Stanford; postponed)
|
| 16
| M 4 Mar
|
- Stereographs
- Fast HW
- (David Millman on Georgia Tech)
|
| -
| 8-12 Mar
| RPI holiday this week
|
| 17
| M 15 Mar
| -
(Christian Vogt on Geneva)
|
| 16
| 18 Mar
| CS talk in JEC3117 replaces lecture
(Samson Chu on Microsoft)
|
| 17
| M 22 Mar
|
Direct X, OpenGL and Misc
(Samson Chu on Berkeley)
|
| 18
| M 25 Mar
| SIGGRAPH course 3: Developing Efficient Graphics SW
(Eric Wharton on Utah)
|
| 19
| R 29 Mar
| Introduction to Computational Geometry, from Preparata & Shamos:
- what means 'computational'?
- rates of growth
- abstract data structures
- geometric searching: range search - count; report
- costs & tradeoffs: preprocessing time & storage, query time, update time
- point location: convex polygon, star polygon, general polygon
- location in a planar subdivision: slab, chain, grid
ref: SUNY Stony Brook
(Eric Wharton on TBD)
|
| 19b
| 30 Mar
| CS colloquium: Multiresolution and Discrete Models as
Foundations for Scalable Simulation
|
| 20
| R 1 Apr
| Reading: SIGGRAPH 1990 and 1991 preliminary programs
(available)
|
| 21
| M 5 Apr
| Point in polygon and point in planar graph location, from Preparata & Shamos Chap 2, with additions
(Micky Chiang on Caltech)
|
| 22
| R 8 Apr
| 8 Apr
| ctd
(Micky Chiang on MIT)
|
| 23
| R 12 Apr
| Start NPR (Non Photorealistic Rendering)
(available)
|
| 24
| R 15 Apr
| NPR ctd, Hidden Surface Algorithms
(available)
|
| 25
| R 19 Apr
| student termpaper presentations
- ____________________________
- ____________________________
- ____________________________
- ____________________________
|
| 26
| 22 Apr
| Chandrasekhar Narayanaswami talk at 3:30 in DCC 324
|
| 27
| 26 Apr
| student termpaper presentations
- Christian Vogt
- Micky Chiang
- David Bang
- Stephen Bourdeau
|
-
official MS site
-
5star on 9.0b summary
-
Brian Clair FAQ (4 yr old) - good summary comparing versions
-
another good summary comparing versions
- (formerly at:
http://thetechnozone.com/pcbuyersguide/software/system/DirectX8.html)
TechZone PC buyers guide on 8.0
-
MS: Introducing the New Managed Direct3D Graphics API in the .NET Framework
-
figures for previous page
-
MS: Introduction to the DirectX 9 High-Level Shader Language (HLSL). Excellent.
-
MS: GDI+ - links to good overview and ref
-
(brief) summary of direct x
-
MS FAQ
-
MS on OpenGL
-
Real-Time Rendering - book extracts and many links to other books. Excellent.
-
Craig Andera's Managed Direct3D Tutorial
-
Andy Pike's DirectX 8 Tutorials
-
Direct3D vs OpenGL
-
OpenGL and X - excellent
-
Basic OpenGL Operation
-
opengl.org
-
OpenGL HW registry
-
What's New in OpenGL 1.5
-
MS Steve's Computer Graphics Index. Excellent.
-
Curtis Priem, RPI'82 is co-founder of Nvidia. He has 88 patents.
-
KarbosGuide to video systems
-
Ray Tracing on Programmable Graphics Hardware
-
High Performance Graphics Hardware Design Requirements
-
3D Graphics Hardware in Linux
-
MMX etc
-
Intel i815 chipset
-
Pentium 4
-
Intel 845PE chipset
-
845GE
-
Intel extreme graphics
-
busses
-
busses
-
graphics card
-
VRAM
-
Video cards in general
-
karbosuide AGP
-
webopedia AGP
-
pcguide AGP
-
intel AGP
-
intel AGP
-
SGI on OpenGL
-
MS DirectX
-
Tom's HW on ATI Mobility Radeon 9700
-
Beyond 3D on HW Geometry Processing
This is a nice 3D technique, whose basis is this:
There are many programs to make stereographs. On linux,
the xstereograph rpm is good.
Here are some samples.



- Demo
applet that lets you move points.
- Higher
order Vor applet
- SUNY
Stony Brook's Excellent summary.
- Size: for N points in d-D, the size can be proportional to Nceil(D/2). I.e., 2D=>N. 3D=>N2.
- Construction, 2D:
- Divide and conquer: Build a Voronoi diagram on the left N/2 points and anoter on the right N/2 points. Sew them together. T=NlogN.
-
Steve Fortune's sweepline method is the best code.
- Qhull is perhaps the best
higher dimensional code. Matlab and Mathematica use it.
- Preparata & Shamos is one of the best books on this.
- Voronoi diagrams are closely linked to convex hulls.
- If you have a Voronoi diagram in d-D, you can easily find the convex hull of those same points in d-D.
- If you know how to find a convex hull in (d+1)-D, you can find a Voronoi diagram in d-D.
E.g., If your 2-D points are (x,y), then find the convex hull of the 3-D points (x,y,x2+y2). The adjacent points on the 3-D convex hull correspond exactly to the adjacent points in the 2-D Voronoi diagram.
- Therefore, I'll cover convex hulls first.
-
(formerly http://www.ifor.math.ethz.ch/staff/fukuda/polyfaq/polyfaq.html)
Frequently Asked Questions in Polyhedral Computation
-
Convex hull applet
- SUNY Stony Brook on convex hulls.
- Good ref: Preparata & Shamos.
- Methods:
- Divide & conquer
- Graham scan.
See
Princeton's animation.
- Jarvis march.
See
Princeton's animation.
- qhull.
See
Princeton's animation.
Tamal Dey's Tight
COCONE program takes an unstructured point cloud and fits
a water-tight surface, regardless of how badly spaced the
points are. The algorithm is described in these papers: cocone,
tcocone.
The executables and test files are here.
Since COCONE's algorithm was designed
by someone who knows a lot of Computational Geometry, I'll
summarize the hilites in class.
I will be displaying the output with geomview.
A lot of data is at Stanford,
tho it has to be converted from their ply format. Some local copies are
here
- 8x8 blocks
- rotate color space from RGB to perhaps YUV emphasize intensity, since people see intensity more accurately than hue.
- downsample color planes
- transform to a discrete cosine series (like a Fourier series but using step functions)
- drop hi-freq components
- encode the coefficients with as few bits as possible, using Huffman code or similar
- =>lossy
ref:
comp.compression
Frequently Asked Questions
- Predict the motion from frame to frame.
- I (intra) frames: still images
- P (predicted) frames: difference from previous I or P.
- B (bidirectional) frames: interpolate from closest I or P on each side.
- Typical sequence: IBBPBBPBBPBBIBBPBBPB...
NTSC video compression
This is worth learning as an excellent example
of electrical engineering.
- Specification requirement:
- Add color to B&W NTSC.
- Upward compatible.
- Downward compatible.
- Useful properties:
- People see color info less
precisely than B&W info.
- People see blue-yellow color less
precisely than red-green.
- In typical images, a scan-line is
much the same as the previous one.
- Engineering implications:
- We can lo-pass filter the color.
- The fourier transform of the
intensity looks like a comb.
- Solutions:
- Rotate (R,G,B) to (Y,I,Q).
- Lo-pass filter I to 2/3 of normal
bandwidth.
- Lo-pass filter Q to 1/3.
- Combine: I cos omega t + Q sin
omega t, or something like that.
- Shift the combined color signal up
in frequency by 1/2 the frequency of one
scan-line and add to the Y.
- Limitations:
- Sudden intensity changes cause
false color aliases.
- Vice-versa.
- Color changes that are not
filtered properly are especially bad.
- Interference causes phase changes
causes color shift.
- Solution: HDTV.
One good TV ref is http://www.howstuffworks.com/tv.htm
Resolutions of Early Monitors
This is an excellent example of engineering
design. It's an edited post from johana!tsw@apple.com (Tom
Watson) to alt.folklore.computers on 27 Apr 92 23:13:32 GMT.
The reason for the 16x64 character resolution
for early personal computers was that you could use 512 bit shift
registers (that were common in that day). Usually everyone used
80 columns (look at an ADM-3) and the reason for 24 rows was that
usually the character generators were 5x7 dots and with a few
dots for inter-line spacing (total of 9 dots/line) one got 216
scan lines for 24 rows. This fit just fine into NTSC monitors
that used 265.5 (interlaced, remember) lines/field (the
difference was used for blanking). The reason for 40 character
displays was again a limiting function of TV's with 5 dots across
(add a couple for nice spacing) we get 7 dots.
If one uses 80 characters we get 560 dots
across the line. In normal TV scan lines the horozontal rate is
63.5 (about) microseconds and taking the fact that the max
frequency is with alternating white and black dots (total of 280
transitions) and that gives a frequency of about 5Mhz (can't use
all of the 63.3 usec due to blanking). Since TVs have a video
bandwidth of only 4MHz (on a good day), that is too much, so
everyone used 40 characters/line to get in proper bandwidth of a
TV. If they added color, it really was necessary, since the color
bandwidth was even less (1.25MHz for NTSC TV).
Now days color monitors with .31mm dot pitch
high bandwidths (over 15 MHz) and high scan rates (31Khz
horizontal, 70 Hz vertical) are very common, but then again they
don't use NTSC composite video. The original displays were almost
always TV's, or TV monitors since they were CHEAP!!
On the other hand, some early CRT display
terminals used vector displays, and stroke character generators.
BIG horizontal and BIG vertical yoke amplifiers. Video bandwidth
wasn't a big problem then, but 300 watt 1MHz yoke amplifiers
were!!
New Scientist on Colors
This was from a page at
www.newscientist.com
that appears not to be online anymore.
Q: I was taught at school that the three primary colours are red,
blue and yellow and that by mixing these, all the other colours
could be made. If you look closely at a television screen, you can
see that the picture is made up of red, blue and green dots. Why
and how do televisions use these colours and how, for instance, do
they make yellow from them?
John Hawkins,
University of Canterbury,
Christchurch, New Zealand
A: Televisions start with a black screen and add coloured light.
Painters start with white paper and add paint which serves to
remove colours from the reflected light. The television uses
additive colours, so called because adding more makes the image
brighter. Painting uses subtractive colours and works in the
opposite way.
As you might expect, the two systems complement each other. Adding
yellow and blue paints together gives green, which is an additive
primary colour. Conversely, yellow light can be made out of red
and green light.
Here's where the fun starts. The subtractive primaries are
technically yellow, cyan (an intense light blue similar to sky
blue) and magenta (a kind of purple). True red paint can be made
from yellow and magenta paint. The problem is that it is difficult
to get a really good magenta, and so artists end up using red
instead of magenta. Although this precludes being able to mix a
good, clean magenta, it is rare to find one in the environment
anyway, so it's not missed. However, without magenta, it is
difficult to make a good, deep blue from cyan and so ultramarine
is used instead. The effect of this is that green is now difficult
to create, and so bright green is used. So really, although
artists claim to use yellow, blue and red, they in fact use a
couple of reds, yellow, green, blue, a large tube of white, black,
and often an assortment of tertiaries. Painting is an engineered
solution.
Gavin Peacock,
Brighton, East Sussex
Syllabus
Student Presentations
Each person will present two 10-minute talks in class,
one on some current topic related to the course, and one
summarizing another research lab. Pick a topic and a date.
Research labs to talk about:
- Brown University - Computer Graphics Group
(Stephen Bourdeau)
- U North Carolina - Graphics and Image Analysis Research
(Metin Inanc)
- Duke - Visualization Technology Group
(Metin Inanc)
-
U Texas/Austin - Graphics Lab,
Department of the Computer Sciences,
(David Bang)
-
U Washington - Computer Graphics, Computer Vision and Animation
(David Millman)
- Microsoft - Research - Graphics
(Samson Chu)
-
IBM Research -
Graphics & Visualization
(Christian Vogt)
-
Caltech - Computer Graphics and
Multi-Res Modeling. (Al Barr is an RPI alum.)
(Micky Chiang)
- U Waterloo - Computer Graphics Lab
(David Bang)
- Georgia Tech - Graphics, Visualization & Usability Center, including Animation Lab
(David Millman)
- Ohio State -
Computer Graphics Research, Computer Animation, Geometric Modeling, & Volume Visualization
(still available)
-
ICASE - Visualization and Graphics. This lab has closed, but it's still interesting.
(still available)
- Stanford - Computer Graphics Lab
(Stephen Bourdeau)
-
UC Berkeley - Multimedia, Human Computer Interaction and Computer Graphics
(Samson Chu)
- UC Santa Cruz - Lab for Visualization and Graphics
(still available)
- U Utah - Computer Graphics
(Eric Wharton)
- U Geneva - MIRAlab
(Christian Vogt)
- MIT
(Micky Chiang)
- Pixar
(still available)
- Raindrop Geomagic
(still available)
- Any other interesting place - you pick.
(still available)
Hardware to talk about
-
Ideas to talk about:
-
(still available)
-
(still available)
-
(still available)
-
(still available)
-
(still available)
Term Project
- Write a 10 page paper in an academic style on any topic
even vaguely related to the course. It could be either
- research,
- implementation, or
- survey.
Format it reasonably, with abstract, refs, etc.
- Give a 15 minute talk in class, to be followed by 5
minutes of questions. Use visual aids, such as HTML,
powerpoint, or wimpypoint.
Email me to reserve a slot to present your talk on April 19, 22, or 25.
- Teams are ok.
- Combining with another course is ok, if you tell everyone concerned.
- Building on existing work is ok, if you tell me.
Course Subjects (Tentative)
I modify these based on class feedback.
- 3d rotations - use matlab, maple, quaternions
- video formats (NTSC etc)
- hidden surface removal algs
- http://www.cc.gatech.edu/gvu/multimedia/nsfmmedia/cware/graphics/notes/vsdet/hisel/hisel00.html
- SIG2 advanced global illumination (read: course notes)
- SIG3 developing efficient graphics sw (read: course notes)
- SIG9 simulating nature (read course notes)
- SIG21 digital color (read course notes)
- IG25 Blinn Tensor diagrams
- Preparata & Lee paper: