A generic rendering system
Jürgen Döllner, Klaus Hinrichs · IEEE Transactions on Visualization and Computer Graphics · 2002
Describes the software architecture of a rendering system that follows a pragmatic approach to integrating and bundling the power of different low-level rendering systems within an object-oriented framework. The generic rendering system provides higher-level abstractions to existing rendering systems and serves as a framework for developing new rendering techniques. It wraps the functionality of several widely-used rendering systems, defines a unified object-oriented application programming interface and provides an extensible, customizable apparatus for evaluating and interpreting hierarchical scene information. As a fundamental property, individual features of a specific rendering system can be integrated into the generic rending system in a transparent way. The system is based on a state machine, called an "engine", which operates on "rendering components". Four major categories of rendering components constitute the generic rendering system: "shapes" represent geometries, "attributes" specify properties assigned to geometries and scenes, "handlers" encapsulate rendering algorithms, and "techniques" represent evaluation strategies for rendering components. As a proof of concept, we have implemented the described software architecture using the Virtual Rendering System, which currently wraps the functionality of the OpenGL, Radiance, POV Ray and RenderMan systems.