Migrating to an Object-Oriented Graphics API

Siggraph 2000 - Course #15

Course Description

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.


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.


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.



Course Schedule

Morning Session

8:30 Introduction and Objectives of the Course

8:40 Affine and Projective Geometry

10:10 Break

10:30 Introduction to Scene Graphs

12:00 Lunch Break

Afternoon Session

1:30 Lighting and Visibility

2:30 Input and User Interaction

2:50 Break

3:50 The Future of Scene Graph API's

Course Slides

Programming Samples