List of 3D graphics APIs
Encyclopedia
3D graphics have become so popular, particularly in video games, that specialized API
s (application programming interfaces) have been created to ease the processes in all stages of computer graphics generation. These APIs have also proved vital to computer graphics hardware manufacturers, as they provide a way for programmer
s to access the hardware in an abstract way, while still taking advantage of the special hardware of any specific graphics card.
The first 3D graphics framework was probably Core
, published by the ACM in 1977.
is a JavaScript interface for OpenGL-ES-2.x API, promoted by Khronos
. This is gaining more interest recently, as this enables applications to use native graphics.
APIs which provide additional functionality on top of the lower-level rendering API. Such libraries under active development include:
based high-level API for 3D graphics engines. Below mentioned are some.
platform to run in web browsers.
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...
s (application programming interfaces) have been created to ease the processes in all stages of computer graphics generation. These APIs have also proved vital to computer graphics hardware manufacturers, as they provide a way for programmer
Programmer
A programmer, computer programmer or coder is someone who writes computer software. The term computer programmer can refer to a specialist in one area of computer programming or to a generalist who writes code for many kinds of software. One who practices or professes a formal approach to...
s to access the hardware in an abstract way, while still taking advantage of the special hardware of any specific graphics card.
The first 3D graphics framework was probably Core
3D Core Graphics System
The 3D Core Graphics System was the very first graphical standard ever developed. A group of 25 experts of the ACM Special Interest Group SIGGRAPH developed this "conceptual framework". The specifications were published in 1977 and it became a foundation for many future development in the field...
, published by the ACM in 1977.
Low-level 3D API
These APIs for 3D computer graphics are particularly popular:- X3DX3DX3D is the ISO standard XML-based file format for representing 3D computer graphics, the successor to the Virtual Reality Modeling Language . X3D features extensions to VRML X3D is the ISO standard XML-based file format for representing 3D computer graphics, the successor to the Virtual Reality...
- OpenGLOpenGLOpenGL is a standard specification defining a cross-language, cross-platform API for writing applications that produce 2D and 3D computer graphics. The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL...
and the OpenGL Shading Language - OpenGL ESOpenGL ESOpenGL for Embedded Systems is a subset of the OpenGL 3D graphics application programming interface designed for embedded systems such as mobile phones, PDAs, and video game consoles. OpenGL ES is managed by the not-for-profit technology consortium, the Khronos Group, Inc.- Versions :Several...
3D API for embedded devices - Direct3DDirect3DDirect3D is part of Microsoft's DirectX application programming interface . Direct3D is available for Microsoft Windows operating systems , and for other platforms through the open source software Wine. It is the base for the graphics API on the Xbox and Xbox 360 console systems...
(a subset of DirectXDirectXMicrosoft DirectX is a collection of application programming interfaces for handling tasks related to multimedia, especially game programming and video, on Microsoft platforms. Originally, the names of these APIs all began with Direct, such as Direct3D, DirectDraw, DirectMusic, DirectPlay,...
) - RenderManRenderMan Interface SpecificationThe RenderMan Interface Specification, or RISpec in short, is an open API developed by Pixar Animation Studios to describe three-dimensional scenes and turn them into digital photorealistic images...
- RenderWareRenderWareRenderWare is a computer and video game middleware from British games developer Criterion Software.-Overview:RenderWare is a 3D API and graphics rendering engine used in video games, Active Worlds, and some VRML browsers...
- Glide APIGlide APIGlide is a 3D graphics API developed by 3dfx Interactive for their Voodoo Graphics 3D accelerator cards. Although it originally started as a proprietary API, it was later open sourced by 3dfx. It was dedicated to gaming performance, supporting geometry and texture mapping primarily, in data...
- TruDimension LC Glasses and 3D monitor API
- QuickDraw 3DQuickDraw 3DQuickDraw 3D, or QD3D for short, is a 3D graphics API developed by Apple Inc. starting in 1995, originally for their Macintosh computers, but delivered as a cross-platform system....
developed by Apple Computer starting in 1995, abandoned in 1998
JavaScript-based API
WebGLWebGL
WebGL is a software library that extends the capability of the JavaScript programming language to allow it to generate interactive 3D graphics within any compatible web browser...
is a JavaScript interface for OpenGL-ES-2.x API, promoted by Khronos
Khronos Group
The Khronos Group is a not-for-profit member-funded industry consortium based in Beaverton, Oregon, focused on the creation of open standard, royalty-free APIs to enable the authoring and accelerated playback of dynamic media on a wide variety of platforms and devices...
. This is gaining more interest recently, as this enables applications to use native graphics.
High-level 3D API
There are also higher-level 3D scene-graphScene graph
A scene graph is a general data structure commonly used by vector-based graphics editing applications and modern computer games. Examples of such programs include Acrobat 3D, Adobe Illustrator, AutoCAD, CorelDRAW, OpenSceneGraph, OpenSG, VRML97, and X3D....
APIs which provide additional functionality on top of the lower-level rendering API. Such libraries under active development include:
- ClanLibClanLibClanLib is a cross-platform C++ game SDK, currently supporting Microsoft Windows, Linux and Mac OS X. It has full hardware accelerated graphics support through OpenGL, and also a software renderer...
- CrystalSpace
- HOOPS 3D Graphics SystemHOOPS 3D Graphics SystemThe HOOPS 3D Graphics System is a 3D Graphics API, part of The HOOPS 3D Application Framework. The HOOPS 3D Application Framework has three main elements the first of which is the core HOOPS 3D Graphics System itself, a 3D scene-graph API. The second is a rendering pipeline which can drive a...
- Irrlicht EngineIrrlicht EngineIrrlicht is an open source 3D engine written in C++. It is cross-platform, officially running on Windows, Mac OS X, Linux and Windows CE and due to its open nature ports to other systems are available, including Xbox, PlayStation Portable, SymbianOS and iPhone.Irrlicht is known for its small size...
- Java 3DJava 3DJava 3D is a scene graph-based 3D application programming interface for the Java platform. It runs atop either OpenGL or Direct3D. Since version 1.2, Java 3D has been developed under the Java Community Process....
- JMonkey EngineJMonkey EnginejMonkeyEngine is a game engine made especially for modern 3D development, as it uses shader technology extensively. jMonkeyEngine is written purely in Java and uses LWJGL as its default renderer. OpenGL 2 through OpenGL 4 is fully supported....
- Mobile 3D Graphics APIMobile 3D Graphics APIThe Mobile 3D Graphics API, commonly referred to as M3G, is a specification defining an API for writing Java programs that produce 3D computer graphics. It extends the capabilities of the Java ME, a version of the Java platform tailored for embedded devices such as mobile phones and PDAs...
(M3G; JSR-184) - JT OpenJT (visualization format)JT is a 3D data format developed by and is used for product visualization, collaboration, and CAD data exchange. It can contain any combination of approximate data, exact boundary representation surfaces , Product and Manufacturing Information , and Metadata either exported from the native CAD...
from Siemens PLM SoftwareSiemens PLM SoftwareSiemens PLM Software is a computer software company specializing in 3D & 2D Product Lifecycle Management software. The company is a business unit of Siemens Industry Automation division, and is headquartered in Plano, Texas.... - Nvidia Scene Graph (NVSG)
- OGREOGREOGRE is a scene-oriented, flexible 3D rendering engine written in C++ designed to make it easier and intuitive for developers to produce applications utilizing hardware-accelerated 3D graphics...
- Open InventorOpen InventorOpen Inventor, originally IRIS Inventor, is a C++ object oriented retained mode 3D graphics API designed by SGI to provide a higher layer of programming for OpenGL. Its main goals are better programmer convenience and efficiency.-Early history:...
- OpenGL PerformerOpenGL PerformerOpenGL Performer, formerly known as IRIS Performer and commonly referred to simply as Performer, is a commercial library of utility code built on top of OpenGL for the purpose of enabling hard real-time visual simulation applications. OpenGL Performer was developed by SGI which continues to...
- OpenSceneGraphOpenSceneGraphOpenSceneGraph is an open source 3D graphics application programming interface, used by application developers in fields such as visual simulation, computer games, virtual reality, scientific visualization and modeling....
- OpenSGOpenSGOpenSG is a scene graph system to create real-time graphics programs, e.g. for virtual reality applications. It is developed following Open Source principles, LGPL licensed, and can be used freely...
- QSDKQSDKThe QSDK is a streaming scene graph retained-mode Application Programming Interface combined with a cell-portal system to connect scene graphs. Audio and animation are fully supported....
- Quesa
- Vega Prime by PresagisPresagis' is a provider of commercial off-the-shelf modeling, simulation, and embedded display graphics software. The company provides software solution to customers in the Aerospace, Defense, and Automotive industries.- History :...
- VR-Vantage by VT MAK
JavaScript-based engines
There is more interest in web browserWeb browser
A web browser is a software application for retrieving, presenting, and traversing information resources on the World Wide Web. An information resource is identified by a Uniform Resource Identifier and may be a web page, image, video, or other piece of content...
based high-level API for 3D graphics engines. Below mentioned are some.
- CopperLicht
- O3DO3DO3D is an open source JavaScript API created by Google for creating interactive 3D graphics applications that run in a web browser window or in a XUL desktop application...
Flash-based engines
3D engines have been developed on the Adobe FlashAdobe Flash
Adobe Flash is a multimedia platform used to add animation, video, and interactivity to web pages. Flash is frequently used for advertisements, games and flash animations for broadcast...
platform to run in web browsers.
- Away3DAway3DAway3D is an open source 3D graphics engine, written for the Adobe Flash platform in ActionScript 3, and runs in modern web browsers that utilize Adobe Flash Player.Away3D can be used to render 3D models and perform various other 3D computations...
See also
- Graphics libraryGraphics libraryA graphics library is a program library designed to aid in rendering computer graphics to a monitor. This typically involves providing optimized versions of functions that handle common rendering tasks. This can be done purely in software and running on the CPU, common in embedded systems, or being...
- Game engineGame engineA game engine is a system designed for the creation and development of video games. There are many game engines that are designed to work on video game consoles and personal computers...
- 3D computer graphics software3D computer graphics software3D computer graphics software refers to programs used to create 3D computer-generated imagery. This article covers only some of the software used.-Uses:...