Graphics APIs
SGI/ARB
Low Level
-
IrisGL (previous Iris 3D API)
-
OpenGL (the basic industry standard 3D API for direct hardware access,
evolved from IrisGL, under ARB control)
-
MesaGL (Freeware OpenGL implementation, available on a wide range of platforms)
High Level
-
Open Inventor (now developed by TGS) (very flexible, extensible
scene graph API for rapid prototyping, but not very fast; provides many
interaction techniques)
-
Performer (monolithic scene graph API geared towards performance (visual
simulation - guaranteed update times, ...))
-
OpenGL Optimizer (http://www.sgi.com/Technology/OpenGL/optimizer/)
(White paper at: http://www.sgi.com/Technology/openGL/optmizer_wp.html)
New, free toolkit geared toward the CAD/CAM market; offers mesh simplification/optimization,
occlusion culling and topology preservation/reconstruction, fast picking
and handling of higher graphics primitives. Optimizer itself is not a scene
graph API, but works on a scene graph; currently, this is Cosmo3D, in the
future it will be based on the Fahrenheit Scene Graph API (and will be
called Fahrenheit Large Model Visualization API).
-
Cosmo3D (http://www.sgi.com/Products/cosmo/cosmo3D/)
(scene graph API with features from both Performer and Inventor; intended
for VRML development, but seemingly dropped in favor of OpenGL++; released
only as part of Optimizer)
-
OpenGL++ (SGI, Intel, IBM) (scene graph API under supervision of
the ARB, should contain the best of Optimizer, Performer and Inventor)
OpenGL++ has now been dropped in favor of Fahrenheit!
-
SGI's "Scene Graph API": Not sure whether this was part of OpenGL++
or not, but this will become the Fahrenheit Scene Graph API (at least it's
sure that it is not Cosmo3D)
Cosmo Suite (those are not graphics APIs!):
-
Cosmo Create (HTML Authoring)
-
Cosmo Worlds (VRML Authoring)
-
Cosmo Code (Java Development)
-
Cosmo Player (VRML Browser)
-
Cosmo MediaBase (Streaming Media)
Fahrenheit (with MS)
-
(FAQ at http://www.sgi.com/fahrenheit/faq.html);
from an interesting press release on Fahrenheit:
Fahrenheit will incorporate Microsoft Direct3D & DirectDraw APIs
with SGI's OpenGL, OpenGL Scene Graph & OpenGL Optimizer. The Fahrenheit
project will produce three components:
-
1) Fahrenheit low-level API will become the primary graphics API
for both consumer and professional applications on Windows. The
API will evolve from Direct3D, DirectDraw and OpenGL.
-
2) Fahrenheit Scene Graph API will provide high level data structure
& algorithms for developers creating applications on both Windows and
SGI IRIX. This API will evolve from SGI's current Scene Graph API
-
3) Fahrenheit Large Model Visualization Extensions will be based
on SGI's OpenGL Optimizer API and DirectModel API from HP and Microsoft.
The Large Model Visualization API adds functionality so developers can
easily write interactive applications for extremely large visual databases.
Microsoft
-
DirectX Suite
-
DirectDraw (direct framebuffer access, mainly BitBlts)
-
DirectSound
-
DirectPlay (multiplayer networking API)
-
DirectSetup
-
Direct3D (see later)
-
DirectInput (keyboard, mouse, joystick w/forcefeedback)
-
DirectMusic (in development)
-
Direct3D Immediate Mode: low level 3D API, like OpenGL, but based on COM
(Common Object Model, very cumbersome API framework)
-
Execute Buffers (fill memory buffers with drawing commands and send them
to hardware) - not really used anymore, much too complicated and exposed
-
DirectPrimitive (very much like OpenGL, offers primitives like OpenGL:
triangles, quads, strips, fans, ...)
-
Direct3D Retained Mode
-
basic scene graph API with support for Animation, not widely used
-
DirectEngine (with Monolith) (includes DirectEditor) (http://www.directengine.com/)
(game development toolkit based on Direct3D with scene-graph and advanced
effects like shadows, bump mapping, ...)
Intel
-
Intel's 3DRender (3DR) (probably already phased out)
-
Intel Scene Manager (ISM) (in development, Scene Graph API with video/sound,
like OpenGL++)
Sun
-
Java3D (unofficial info at http://java3d.sdsc.edu/)
(platform independend Scene Graph API, somehow similar to OpenGL++)
-
OpenGL bindings for Java (Magician)
Apple
-
QuickDraw3D (Apple's proprietary API, like rather OpenGL)
-
Rave (other 3D API from Apple, not sure what it's for)
HP
-
Starbase (HP's original proprietary 3D API, like OpenGL with some higher
level primitives like NURBs; still supported for compatibility)
-
PHIGS (older industry standard (ISO) not used anymore)
-
PEX (client-server system: X-server extensions for PHIGS)
-
DirectModel: similar to Optimizer (White Paper at: http://hpcc997.external.hp.com/wsg/products/grfx/dmodel/overview.htm)
DirectModel is more or less cancelled and will be integrated into the
Fahrenheit Large Model Visualisation API
Other proprietary
-
Heidi (Autodesk 3D Studio MAX proprietary API; MAX R2 now also supports
OpenGL and Direct3D)
-
Pixar's RenderMan (photorealistic rendering toolkit; powerful shading language)
-
Criterion's Renderware (older software rendering toolkit; not widely used)
-
BRender (older software rendering API)
-
GKS (old industry standard, not used any more)
-
Hoops, Nugraf: info for some of those: http://www.okino.com/toolkit/compare.htm
-
Reality Lab (software rendering API, acquired by MS and developed into
Direct3D)
-
MultiGen's GameGen (large scale world/game development toolkits, very expensive)