CS 551/851: Big Data in Computer Graphics

Fall 2002


Time: Tuesdays and Thursdays, 11:00-12:15
Place: Olsson 228E
Instructor: Greg Humphreys, humper@cs.virginia.edu
Office Hours: MW 10-12 in Olsson 216
Assignments:

Number

Assignment

Due

0 Choose Presentation Topics September 5
1 Benchmarking Graphics Hardware September 26
2 Choose Project Topic October 3
3 Final Project December 3
Format: Reading and discussion oriented, with one assignment and a final project.
Prerequisites: Previous computer graphics course experience, or consent of instructor. Familiarity with parallel computing concepts will be very helpful. Good programming skills or a very tolerant project partner a must.
Description: This course will cover a variety of issues that arise when trying to interact with or visualize big datasets. The definition of "big" always varies with the application, but similar issues arise again and again, such as bandwidth constraints, latency requirements, scalability limits, parallel load balancing, visual fidelity, and output device characteristics. These issues are particularly critical when it is important to build a system that is interactive.

In this class, we will look at recent research results related to these topics. The focus will mostly be on scalable systems, but we will also consider the use of levels of detail, tone mapping, and alternate rendering architectures. Topics to be covered include but are not limited to:

  • Approaches to Parallelism in Graphics
  • Architectural Case Studies
  • Using Commodity Technology
  • Compression in Graphics
  • Displays and Interaction Techniques
  • Image Compositing
  • Interfaces and Software Systems
  • Maintaining Interactivity
  • Partitioning Screen Space
  • Ray Tracing
  • Sources of Large Datasets
  • Stream Processing
  • Texture Management
  • Volume Rendering

All students in this course will be expected to read all the assigned research papers. In addition, each student will be required to present one or more (depending on enrollment) topics to the class. This will typically require presenting background material on the topic, summarizing a small number of papers, and leading a class discussion on the topic. Students will also complete one small assignment on probing the capabilities of graphics hardware.

Finally, there will be an open-ended project that can relate to any of the material covered in this course (or really any material at all with instructor's permission). The project may be done in small groups. Although these projects need not show new results, they will be "publication quality"; that is, students will be expected to explore a topic in sufficient depth (including a high quality write-up) for publication. Each group will present its results to the class at the end of the semester. Ambitious students are encouraged to use this project as an opportunity to begin new research projects, and I will be happy to assist any group wishing to continue their project after the semester ends and submit their work for publication.

Texts: None
Software: None of these software packages are required for the course, but they might be useful starting places for projects.

Chromium. Software for manipulating streams of OpenGL commands, as well as support for routing those streams over networks.  Particularly useful for doing scalability experiments on clusters.

glsim/gltrace: A simple software implementation of (part of) the OpenGL pipeline, and an OpenGL trace/playback program.  Written by Ian Buck and Kekoa Proudfoot.  Students who wish to experiment with modifications to the graphics pipeline for their project may start here or use Mesa.

HDRShop: High dynamic range image processing and manipulation

Honor Code: The honor code applies to all work turned in for this course. In particular, all code and documentation should be entirely your own work. You may consult with other students about high-level design strategies, but you many not copy code or use the structure or organization of another students program. Said another way, you may talk with one another about your programs, but you cannot ever look at another student's code nor let another student look at your own code.  Obviously, you may collaborate freely with your project partner.
Grading: Why does everyone worry so much about grades?  Grading will be determined based on four criteria: class participation, the benchmarking assignment, presentation quality/discussion leadership, and the final project.  Of these, your project is the most important, followed by your presentation.  Extra credit will be awarded depending on how "novel" your project is.  Risky projects will be rewarded, but remember that you still have to turn in a writeup at the end of the semester, even if the writeup is called "Several reasons why our fantastic new algorithm for mesh simplification was a terrible idea".
Meetings:
Date Topic Readings
August 29 Introduction
(Greg Humphreys)
None
September 3 The View from Ten Thousand Feet
(Greg Humphreys)
A Volumetric Method for Building Complex Models from Range Images
The Digital Michelangelo Project
September 5 The View from Ten Thousand Feet (cont)
(Greg Humphreys)
Virtual Graphics
Triangle Scan Conversion using 2D Homogeneous Coordinates
A Characterization of Ten Rasterization Techniques
September 10 Approaches to Parallelism
(Cliff Wooley)
A Sorting Classification of Parallel Rendering
Designing Graphics Architectures around Scalability and Communication (Especially chapters 2-4)
Parallel Rendering
September 12 Partitioning Screen Space 1
(Brenden Schubert)
A New Algorithm for Interactive Graphics on Multicomputers
Hierarchical Graphics Databases in Sort First
The Sort-First Rendering Architecture for High-Performance Graphics
September 17 Partitioning Screen Space 2
(Rui Wang)
Architectural Implications of Hardware-Accelerated Bucket Rendering on the PC
Dynamic Load Balancing for Parallel Polygon Rendering
Models of the Impact of Overlap in Bucket Rendering
September 19 Image Compositing - Software
(Dale Beerman)
Parallel Volume Rendering Using Binary-Swap Compositing
Pixel Merging for Object-parallel Rendering: A Distributed Snooping Algorithm
A Comparison of Parallel Compositing Techniques on Shared Memory Multiprocessors
Depth Complexity in Object-Parallel Graphics Architectures
September 24 Image Compositing - Hardware
(Brenden Schubert)
Lightning-2: A High Performance Display Subsystem for PC Clusters
The Metabuffer
Scalable Volume Rendering Using Off-the-Shelf Components
September 26 Maintaining Interactivity 1 - Simplification
(Guest Lecture - Dave Luebke)
Efficient Adaptive Simplification of Massive Meshes
Progressive Meshes
Surface Simplification Using Quadric Error Metrics
View-Dependent Refinement of Progressive Meshes
October 1 Interfaces and Software Systems
(Dale Beerman)
The Design of a Parallel Graphics Interface
IRIS Performer
Curved PN Triangles
October 3 Maintaining Interactivity 2 - Subsampling
(Cliff Wooley)
Frameless Rendering: Double Buffering Considered Harmful
Interactive Rendering Using the RenderCache
QSplat - A Multiresolution Point Rendering System for Large Meshes
October 8 NO CLASS - READING HOLIDAY The Wheel Patent
Unskilled and Unaware of It
October 10 Commodity Components 1
(Greg Humphreys)
Tracking Graphics State for Networked Rendering
WireGL: A Scalable Graphics System for Clusters
Chromium: A Stream Processing Framework for Interactive Graphics on Clusters
October 15 Commodity Components 2
(Hongtao Zhang)
Software Environments for Cluster-based Display Systems
Hybrid Sort-First and Sort-Last Parallel Rendering Using a Cluster of PC's
Parallel Rendering with K-Way Replication
October 17 Stream Processing
(Pascal Vicaire)
Polygon Rendering on a Stream Architecture
Comparing REYES and OpenGL on a Stream Architecture
October 22 Architecture Studies 1
(Brenden Schubert)
High-Performance Polygon Rendering
The Rendering Architecture of the DN10000VS
Leo: A System for Cost Effective 3D Shaded Graphics
October 24 Volume Rendering
(Rui Wang)
Interactive Texture-Based Volume Rendering for Large Data Sets
Marching Cubes - A High Resolution Surface Reconstruction Algorithm
Parallel Volume Rendering on a Network of Workstations
Fast Volume Rendering Using a Shear-Warp Factorization of the Viewing Transformation
October 29 Visualization
(Julian Dymacek)
Interactive Visualization of Large Graphs and Networks
October 31 Dynamic Range
(Nolan Goodnight)
Recovering High Dynamic Range Radiance Maps from Photographs
LCIS: A Boundary Hierarchy for Detail-Preserving Contrast Reduction
A Visibility Matching Tone Reproduction Operator for High Dynamic Range Scenes
Gradient Domain High Dynamic Range Compression
November 5 Displays and Interaction
(Julian Dymacek)
Early Experiences and Challenges in Building a Scalable Display Wall System
Fluid Interaction for High-Resolution Wall-Size Displays (Especially chapters 3+4)
High-Resolution Multiprojector Display Walls
PixelFlex - A Reconfigurable Multi-Projector Display System
The Design and Implementation of PixelFlex
November 7 Ray Tracing 1
(Pascal Vicaire)
Ray Tracing on Programmable Graphics Hardware
Rendering Complex Scenes with Memory-Coherent Ray Tracing
Realistic Modeling and Rendering of Plant Ecosystems
November 12 Ray Tracing 2
(Dale Beerman)
Interactive Rendering with Coherent Ray Tracing
Interactive Ray Tracing
A Simple and Practical Method for Interactive Ray Tracing of Dynamic Scenes
State of the Art in Interactive Ray Tracing
November 14 Texture
(Nolan Goodnight)
The Clipmap: A Virtual Mipmap
Prefetching in a Texture Cache Architecture
The Design and Analysis of a Cache Architecture for Texture Mapping
Using Texture Mapping with Mipmapping to Render a VLSI Layout
November 19 Architecture Studies 2
(Hongtao Zhang)
PixelPlanes 5 - A Heterogeneous Multiprocessor Graphics System Using Processor-Enhanced Memories
PixelFlow - High-Speed Rendering Using Image Composition
PixelFlow - The Realization
November 21 Architecture Studies 3
(Nolan Goodnight)
RealityEngine Graphics
InfiniteReality - A Real-Time Graphics System
VC-1: A Scalable Graphics Computer with Virtual Local Framebuffers
November 26 Architecture Studies 4
(Cliff Wooley)
The SAGE Graphics Architecture
Neon: A Single-Chip 3D Workstation Graphics Accelerator
Pomegranate - A Fully Scalable Graphics Architecture
November 28 HAPPY THANKSGIVING Ray Tracing Jell-Otm Brand Gelatin
December 3 Project Presentations  
December 5 Project Presentations  

Greg Humphreys