The classes and methods that must be captured by a programmer to implement a
graphics system in an object--oriented language. Rather than focus on one
specific language defined by a particular library, this course provides a
taste of the different languages that result from the compromises in library
design.
Speakers present concrete examples from several graphics and
geometry APIs, such as OpenGL++, OpenInventor, Fahrenheit/XSG, Java3D, LEDA,
and CGAL.
Prerequisites
The course is designed for computer graphics practitioners who are familiar
with an object-oriented programming language but use an older, imperative
language--based, API. In addition to being familiar with the fundamentals of
rendering, attendees should be well--versed in an object--oriented programming
language such as C++ or Java. Some sections of the course also assume that
attendees are familiar with the basics of genericity and template
instantiation.
Topics
Introduction to scene graph concepts, scene graphs and shapes, ways of
embedding classical geometry classes in a modern API, separating topology
from geometry in an API, immediate vs. retained-mode rendering, methods of
specifying viewers in a scene graph, associating a file format with an API,
user interaction, visibility culling, multiprocessing,
the future of scene graph APIs.
Organizer
Sherif Ghali,
Max Planck Institute for Computer Science
Lecturers
David Blythe,
SGI
Sherif Ghali,
Max Planck Institute for Computer Science
Lutz Kettner,
University of North Carolina at Chapel Hill
Henry Sowizral,
Sun Microsystems, Inc.
Course Schedule
Morning Session
8:30 Introduction and Objectives of the Course
8:40 Affine and Projective Geometry
8:40 Designing geometry classes (Ghali)
9:00 Classes for affine and projective geometry (Blythe)
9:20 Geometry class design issues (Sowizral)
9:40 Robustness of geometry classes (Kettner)
10:10 Break
10:30 Introduction to Scene Graphs
10:30 Scene graph motivation (Ghali)
10:50 Introduction to scene graphs (Blythe)
11:10 Building scene graphs (Sowizral)
11:30 Shapes and transformations in CGAL (Kettner)
12:00 Lunch Break
Afternoon Session
1:30 Lighting and Visibility
1:30 Camera and light objects (Ghali)
1:50 Performing visibility computation (Blythe)
2:10 Separating the physical and the virtual worlds (Sowizral)