This document is an attempt to distill my hand-written notes while the experience is still fresh in my mind.

Sunday, July 21 2002, 8:30AM

Course 2, "Advanced Global Illumination"

This course may not have been dead-on relevant to Viz @ ORNL, but it fit in with my experience in a number of ways.

At a previous SIGGRAPH, I took a course which focused on the BRDF (Bi-Directional Radiance Distribution Function) as a method of achieving better realism in computer-represented surface materials. The BRDF is one aspect of the Global Rendering Equation which was also covered in today's course.

More interesting perhaps was the revelation that Global Illumination requires applying Monte-Carlo numerical methods to solve a Fredholm integral equation of the second kind.

A good deal of effort was made in the course to outline a spatial acceleration structure for ray-traced image rendering -- the method called for by Global Illumination -- and how to deal with non-uniform sample density distribution across the spatial domain.

These themes would appear repeatedly throughout the courses I subsequently took in Parallel Rendering. Ray Tracing was characterized as an "embarrassingly parallel" sort of problem -- but with challenges on the path to doing it efficiently.

The course notes (I assume) provide a link to a free software test-bed for Global Illumination at [expands to:]


Sunday, July 21 2002, 1:30PM

Course 4, "Multidimensional Visualization With Applications to Multivariate Problems"

Unlike the previous course, this one (3-1/4 hours) was taught by a single lecturer, Alfred Inselberg (Tel Aviv University). The redeeming quality of the lecture was that professor Inselberg supplied numerous anecdotal instances in which understanding is gleaned from high-dimensional datasets.

Inselberg's technique of visual data mining within a multi-dimensional data set is to employ a parallel coordinate system, defined as follows:

In the Euclidean plane with xy-Cartesian coordinates, N copies of the real line labeled X1, X2, ... XN are placed equidistant (e.g., 1 unit apart) and perpendicular to the x-axis. They are the axes of the parallel coordinate system for N-space all having the same positive orientation as the y-axis.
Inselberg then introduces the concept of dualism in the projective plane, which also resurfaces again in a later SIGGRAPH course.
A point C with coordinates (c1, c2, ..., cn) is represented by the complete polygonal line C (i.e., the lines of which only the local segments are usually shown) whose n vertices are at i + 1 ci on the Xi-axis for i from 1 to N. [ ... ] In this way, a 1:1 correspondence between points in N-space and planar polygonal line with vertices on the parallel axes is established. The definition is deceptively simple and many people stop here without realizing the power of Parallel Coordinates which is really a whole METHODOLOGY.
Similarly, lines in N-space correspond to points of intersection of many poly-lines in parallel coordinates.

After exposing some mathematical foundation of his projective system, Inselberg presents a series of case studies in which an astute visual data miner can recognize patterns and anolamies in datasets of high dimension. Applications ranged from air traffic control (N-body problem of motion in 2 dimensions + time) to integrated circuit manufacturing yield to market economics.

Inselberg interactively browsed prepared datasets in a piece of software he has developed, called "Parallax". Simply the action of doing a lasso-selection on a group of poly-lines in the parallel coordinate plane seems to provide a great deal of understanding in how a select region of one of the parameters can localize a region of interest in the dataset.

The examples he showed were in the range of 1-80,000 points in 2-80 dimensions -- although he did also show a case of classifying points in a high-dimensional LANDSAT raster image, which could have contained more than 80,000 pixels.

The general algorithm for classifying multi-dimensional data via a "nested hulls" (of hypersurfaces in N-space) method was not presented explicitly, but was an intuitively understandable way to select hypersurfaces containing points matching a selection criterion.

Links supplied in the course notes include: http://www.pnl.gov/nsd/commercial/starlight/ http://www.atkosoft.com/profile/Web_eng/products_stat.htm http://www.cs.uml.edu/~phoffman/dna1/


Monday, July 22 2002, 8:30AM

Course 22, "Practical Parallel Rendering"

This course presented both the theory and practice of rendering images on a parallel-processing system.

Despite the fact that Ray Tracing is an "embarrassingly parallel" kind of problem, there are some tricks required to parallelize it efficiently. This course concentrated on those tricks and techniques.

Examples of working systems included an interactive ray-tracer running on a 32-processor (16Gb shared-memory) SGI Origin 3800 and a production render farm (Square Pictures, USA) composed of a hundred or so dual-processor Pentium machines running Linux.

Stages of the parallelization include spatial domain data decomposition as well as decomposition of the ray tracing algorithm into parallel "threads" or pipelines. Parallelizing compilers were said to be not good, but multi-threading program design was used, including a parallel threading run-time scheduler. Efficiency is gained in caching traced ray paths between neighboring image pixels.

The reference to the render cache seems particularly app;licable to Jim Kohl's proposed "Scalable Vizualization Cache" work. Here is the reference to what would seem to be the seminal paper on the concept: "Interactive Rendering using the Render Cache"; Bruce Walter, George Drettakis, Steven Parker; Rendering techniques '99 (Proceedings of the 10th Eurographics Workshop on Rendering) volume 10 pages 235--246 Jun 1999; New York, NY.

One of the course presenters, Tim Davis, mentioned that the Clemson University Department of Computer Science is beginning to do parallel rendering using Chromium on a 240-node Linux cluster.


Monday, July 22 2002, 1:30PM

Course 25, "Using Tensor Diagrams to Solve Geometrical Problems"

Another single-instructor course -- Jim Blinn of Microsoft Research.

This course was extremely abstract with only a few hints as to the kinds of problems in computer graphics that these techniques could be used to solve.

Blinn presented a graphical system of representing matrices and matrix operations, resulting in a new, graphical algebra -- related to Clifford Algebra.

Here, again, Blinn presented the point-line (2-D) and point-plane (3-D) duality in homogeneous coordinates (projective space). In Blinn's graphical algebra, row and column vectors are 'mapped' to co-variant and contra-variant tensors. His diagram system represents transformationally invariant tensor properties.

In particular, the Epsilon-Delta Identity has a very intuitive graphical presentation. Blinn used it several times to solve tensor problems.

Applications (current and potential) include finding intersections (line-surface, surface-surface), converting between parametric and implicit forms of curve and surface descriptions, Ideals, Varieties and Grobner Bases.


Here is a session I did not make it to, but seems relevent to work we are doing or want to do here at ORNL.

Course 35, "Super-Size It! Scaling up to Massive Virtual Worlds"

This course was geared mainly toward VR flight simulators where the large and detailed geometry in question is a terrain. Techniques used to render huge terrain datasets interactively are primarily concerned with culling from the data a level-of-detail in the display being generated which is appropriate for the current viewpoint.

One of the lecturers in particular for this course seems to be a specialist in "Simulation Culling and Level-of-Detail", particularly applicable to un-organized data samples/irregular grids, etc.:


Tuesday, July 23 2002, 10:30AM

Course 42, "High-Quality Volume Graphics on Consumer PC Hardware"

This course described methods to employ the OpenGL access to texture memory and the rendering instruction set of current high-end gaming graphics boards (nVidia and ATI) for doing interactive volume rendering and visual dataset navigation.

The technique is to create proxy geometry in the form of square polygons bounding the pixel volume. The volume slices are texture-mapped onto the polygons. And the volume is rendered by alpha-blending the textured polygons in the graphics hardware.

A number of advanced lighting and rendering techniques were shown, including rendering non-polygonal iso-surfaces. There was an interactive portion of the course which took place in the SIGGRAPH Creative Applications Lab (CAL) on WinTel PCs equipped with nVidia hardware.

Included in the course was treatment of techniques for tuning the volume rendering transfer function. This is critical in communicating knowledge from volume data. Important techniques include using the histogram of voxel (intensity/density) values as a form of user feedback, and the ability to save thumbnail images along with transfer function parameter settings for rendering experiments which showed promising results.


Tuesday, July 23 2002, 3:30PM

Course 38, "Impacct of Public Policy on Computer Graphics"

This course tended to degrade quickly into a running debate between the speakers and select members of the audience on issues pertaining to Intellectual Property -- try as the speaker might to deflect these comments to the session dedicated to that topic alone, which was to take place the following day.

Topics I found of interest had cursory mention: That the ACM is concerend with and has formal programs on: User access/computer interfaces for persons with disabilities. Access to Broadband communications facilities in rural locales. That Government-funded Research is thought generally to contribute to prosperity. (Echoed by Ray Orbach at ORNL on 8/14)

There is a common misconception that there is nothing left to do in Computer Graphics Research. The ACM is about to conduct a study (NRC, CSTB) to develop a list of unsolved problems in CGI. There are no results yet on this.


Friday, July 26 2002, 9:30AM

Sketches and Applications: Virtual Reality Techniques"

A paper was presented by a group at the Clemson University CS Department, attempting to improve the rendering response in immersive VR by reducing picture resolution in the periphery of the image, while retaining sharp 'focus' -- high resolution in a limited area, in the fovea of the viewer's visual field. This was done using a corneal eye-tracker.

Friday, July 26 2002, 10:30AM

Sketches and Applications: Hardware

Michael Deering from Sun Microsystems persented the SAGE (XVR-4000) graphics display hardware. This graphics system is design to do real-time anti-aliasing (high-bandwidth image super-sampling) at video display rates: 100Gb/S internal throughput. The intent is to support large, high-resolution, anti-aliased projection displays.

Chromium: A Stream-Processing Framework for Interactive Rendering on Clusters

The Chromium is a second implementation of the WireGL system for doing tiled (parallel) rendering on computing clusters. The stated intent of Chromium is "Ubiquitous, Remote Visualization". Chormium provides an application programming framework, rather than imposing a specific rendering algorithm.

Chromium is designed to be a parallel cluster-based implementation of the OpenGL API, such that existing OpenGL codes can be ported to Chromium and thereby parallelized with minimal modification -- "In some cases, the application does not even need to be recompiled."

The stream processing program architecture model was chosen in the Chromium system to deal with huge data in parallel, to hide latency in the interactive graphic display. The stream filters are configurable to support several models of parallel algorithm decomposition (sort-first vs. sort-last, etc).

Chromium exploits graphics processor board to do high-speed computation, then collect the results from graphics hardware to send results to the display.