To program current graphics cards a well-defined, hardware-independent
API is necessary. For most people, this is OpenGL. The problem with
OpenGL is that it's designed to be a very thin on top of the graphics
hardware, and therefore programming graphics in OpenGL is comparable to
programming other programs in assembly language: very powerful, gives the
best performance possible when done right, horriblew when done wrong, and
generally very painful to deal with.
A higher level approach, comparable to using an object-oriented language
like C++ or Java, is using a scenegraph, which represents the whole scene
as a tree of different kinds of nodes and hides all the nitty gritty
OpenGL details from the. My scenegraph is OpenSG®.
(All images © by Fraunhofer IGD)
Scenegraphs have been around for a long time. But most of them have not
evolved very much and don't use current developments in general and graphics hardware
as well as programming languages.
OpenSG® tries to address three core aspects: