Döllner, Jürgen; Hinrichs, Klaus
Angewandte Mathematik und Informatik, Universität Münster
3D applications are built on top of procedural low-level graphics packages which are difficult to learn and to use because of their inherent complexity and their renderer oriented design. We present a fine-grained object oriented model which views 3D graphics from the developer’s perspective. Our approach is based on a logical decomposition of the elements of 3D graphics into three major classes: Geometric primitives define shapes and their geometry. Rendering attributes specify quality and appearance of primitives and of the rendering process. Virtual rendering devices process attributes and primitives through a set of generic rendering commands for different types of rendering techniques and packages. Virtual rendering devices encapsulate the functionality of most of today’s graphics packages making them exchangeable even at runtime without the need to recode the application. We have implemented our concepts in VRS, the Virtual Rendering System, as a portable C++ toolkit. Currently we have integrated the standard graphics packages OpenGL, PEX, XGL, and Radiance.