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
Inselberg's technique of visual data mining within a multi-dimensional
data set is to employ a parallel coordinate system, defined as follows:
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/
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.
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.
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.:
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.
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.
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.
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.
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.
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.
Monday, July 22 2002, 1:30PM
Course 25, "Using Tensor Diagrams to Solve Geometrical Problems"
Another single-instructor course -- Jim Blinn of Microsoft Research.
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"
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.
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.
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.