3D graphics have become so popular, particularly in
video game
Video games, also known as computer games, are electronic games that involves interaction with a user interface or input device such as a joystick, game controller, controller, computer keyboard, keyboard, or motion sensing device to gener ...
s, that specialized
API
An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how ...
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
A computer programmer, sometimes referred to as a software developer, a software engineer, a programmer or a coder, is a person who creates computer programs — often for larger computer software.
A programmer is someone who writes/creates ...
s to access the hardware in an abstract way, while still taking advantage of the special hardware of any specific
graphics card
A graphics card (also called a video card, display card, graphics adapter, VGA card/VGA, video adapter, display adapter, or mistakenly GPU) is an expansion card which generates a feed of output images to a display device, such as a computer mo ...
.
The first 3D graphics framework was probably
Core
Core or cores may refer to:
Science and technology
* Core (anatomy), everything except the appendages
* Core (manufacturing), used in casting and molding
* Core (optical fiber), the signal-carrying portion of an optical fiber
* Core, the centra ...
, published by the ACM in 1977.
Low-level 3D API
These APIs for 3D computer graphics are particularly popular:
*
Direct3D
Direct3D is a graphics application programming interface (API) for Microsoft Windows. Part of DirectX, Direct3D is used to render three-dimensional graphics in applications where performance is important, such as games. Direct3D uses hardware ...
(a subset of
DirectX
Microsoft DirectX is a collection of application programming interfaces (APIs) for handling tasks related to multimedia, especially game programming and video, on Microsoft platforms. Originally, the names of these APIs all began with "Direc ...
Mantle
A mantle is a piece of clothing, a type of cloak. Several other meanings are derived from that.
Mantle may refer to:
*Mantle (clothing), a cloak-like garment worn mainly by women as fashionable outerwear
**Mantle (vesture), an Eastern Orthodox ve ...
developed by AMD.
*
Metal
A metal (from Greek μέταλλον ''métallon'', "mine, quarry, metal") is a material that, when freshly prepared, polished, or fractured, shows a lustrous appearance, and conducts electricity and heat relatively well. Metals are typi ...
OpenGL
OpenGL (Open Graphics Library) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve ha ...
and the
OpenGL Shading Language
OpenGL Shading Language (GLSL) is a high-level shading language with a syntax based on the C programming language. It was created by the OpenGL ARB (OpenGL Architecture Review Board) to give developers more direct control of the graphics pipe ...
*
OpenGL ES
OpenGL for Embedded Systems (OpenGL ES or GLES) is a subset of the OpenGL computer graphics rendering application programming interface (API) for rendering 2D and 3D computer graphics such as those used by video games, typically hardware-ac ...
3D API for embedded devices
*
QuickDraw 3D
QuickDraw 3D, or QD3D for short, is a 3D graphics API developed by Apple Inc. (then Apple Computer, Inc.) starting in 1995, originally for their Macintosh computers, but delivered as a cross-platform system.
QD3D was separated into two layers. ...
developed by Apple Computer starting in 1995, abandoned in 1998
*
RenderMan The name RenderMan can cause confusion because it has been used to refer to different things developed by Pixar Animation Studios:
* RenderMan Interface Specification (RISpec), an open API (technical specification) developed by Pixar for a standard ...
*
Vulkan
Vulkan is a low- overhead, cross-platform API, open standard for 3D graphics and computing. Vulkan targets high-performance real-time 3D graphics applications, such as video games and interactive media. Vulkan is intended to offer higher perform ...
*
LibGCM
The PlayStation 3 system software, is the updatable firmware and operating system of the PlayStation 3. The base operating system used by Sony for the PlayStation 3 is a fork of both FreeBSD and NetBSD known internally as ''CellOS'' or ''GameOS ...
*
ANGLE
In Euclidean geometry, an angle is the figure formed by two rays, called the '' sides'' of the angle, sharing a common endpoint, called the '' vertex'' of the angle.
Angles formed by two rays lie in the plane that contains the rays. Angles ...
, web browsers graphics engine, a cross-platform version of the OpenGL wrapper for the web
Web-based API
*
WebGL
WebGL (Short for Web Graphics Library) is a JavaScript API for rendering interactive 2D and 3D graphics within any compatible web browser without the use of plug-ins. WebGL is fully integrated with other web standards, allowing GPU-accelerate ...
is a JavaScript interface for OpenGL-ES-2.x API, promoted by
Khronos Khronos may refer to:
* ''Khronos'' (Maktub album)
* ''Khronos'' (Rotting Christ album)
*'' Khronos (game)'', a board game
*Khronos Group, an open standards consortium
*Chronos, the personification of time in Greek mythology.
See also
*Chronos (d ...
. This is gaining more interest recently, as this enables web applications to use native graphics.
High-level 3D API
There are also higher-level 3D scene-graph APIs which provide additional functionality on top of the lower-level rendering API. Such libraries under active development include:
BGFX *
ClanLib
ClanLib is a video game SDK, supporting Microsoft Windows, macOS, and Linux, with partial support for mobile platforms. It has full hardware accelerated graphics support through OpenGL, and also a software renderer. ClanLib also helps in playing ...
*
Crystal Space
Crystal Space is a framework for developing 3D computer graphics, 3D software, applications written in C++ by Jorrit Tyberghein and others. The first public release was on August 26, 1997. It is typically used as a game engine but the framework i ...
*
HOOPS 3D Graphics System
HOOPS Visualize is a 3D computer graphics designed to render graphics across both mobile and desktop platforms.
Features
The program features a unified API that allows users to add interactive 3D visualization to both desktop and mobile applicat ...
Irrlicht Engine
Irrlicht (pronounced in German) is an open-source game engine written in C++. It is cross-platform, officially running on Windows, macOS, Linux and Windows CE and due to its open nature ports to other systems are available, including FreeBSD, X ...
*
Java 3D
Java 3D is a scene graph-based 3D application programming interface (API) for the Java platform. It runs on top of either OpenGL or Direct3D until version 1.6.0, which runs on top of Java OpenGL (JOGL). Since version 1.2, Java 3D has bee ...
*
Java FX
JavaFX is a software platform for creating and delivering desktop applications, as well as rich web applications that can run across a wide variety of devices. JavaFX has support for desktop computers and web browsers on Microsoft Windows, L ...
*
JMonkey Engine
jMonkeyEngine (abbreviated JME) is a game engine for developing 3D games written in Java. It uses shader technology extensively and can be used to write games for Windows, Linux, macOS, Raspberry Pi, and Android. It uses Lightweight Java Gam ...
*
JT Open
JT may refer to:
Arts and media
* '' Jakobstads Tidning'', a Finland-Swedish newspaper
* Jimma Times, owner of the Ethiopian newspaper ''Yeroo''
* '' Jornal da Tarde'', a Brazilian newspaper from São Paulo
* ''JT'' (album), 1977 album by James ...
from
Siemens Digital Industries Software
Siemens Digital Industries Software (formerly UGS and then Siemens PLM Software) is an American computer software company specializing in 3D & 2D Product Lifecycle Management (PLM) software. The company is a business unit of Siemens, operates ...
Mobile 3D Graphics API
The 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 emb ...
(M3G; JSR-184)
*
OGRE
An ogre ( feminine: ogress) is a legendary monster depicted as a large, hideous, man-like being that eats ordinary human beings, especially infants and children. Ogres frequently feature in mythology, folklore, and fiction throughout the wor ...
*
OpenGL Performer {{unreferenced, date=September 2009
OpenGL 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 si ...
*
OpenSceneGraph
OpenSceneGraph is an open-source 3D graphics application programming interface (library or framework), used by application developers in fields such as visual simulation, computer games, virtual reality, scientific visualization and modeling. ...
(now obsolete OSG.JS for WebPlatforms)
*
OpenSG
OpenSG 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. It runs on Windows, Linux, Solaris and OS X an ...
*
QSDK
The QSDK is a streaming scene graph
Scene (from Greek σκηνή ''skēnḗ'') may refer to:
Arts, entertainment, and media Music
*Scene (subculture), a youth subculture from the early 2000s characterized by a distinct music and style. Groups ...
RenderWare
RenderWare is a video game engine developed by British game developer Criterion Software.
Overview
Released in 1993, RenderWare is a 3D API and graphics rendering engine used in video games, Active Worlds, and some VRML browsers. RenderWare ...
*
Panda3D
Panda3D is a game engine that includes graphics, audio, I/O, collision detection, and other abilities relevant to the creation of 3D games. Panda3D is free, open-source software under the revised BSD license.
Panda3D's intended game-development ...
Unigine
UNIGINE is a proprietary cross-platform game engine developed by UNIGINE Company used in simulators, virtual reality systems, serious games and visualization. It supports OpenGL 4, Vulkan and DirectX 12.
UNIGINE Engine is a core technology fo ...
*
VTK
The Visualization Toolkit (VTK) is an open-source software system for 3D computer graphics, image processing and scientific visualization.''Visualization Handbook'', Academic Press, 2005, Chapter 30: the Visualization Toolkit/ref>
VTK is distribu ...
JavaScript-based engines
There is more interest in
web browser
A web browser is application software for accessing websites. When a user requests a web page from a particular website, the browser retrieves its files from a web server and then displays the page on the user's screen. Browsers are used on ...
based high-level API for 3D graphics engines. Some are:
*
A-Frame
An A-frame is a basic structure designed to bear a load in a lightweight economical manner. The simplest form of an A-frame is two similarly sized beams, arranged in an angle of 45 degrees or less, attached at the top, like an uppercase lett ...
*
Blend4Web
Blend4Web is a free and open source framework for creating and displaying interactive 3D computer graphics in web browsers.
Overview
The Blend4Web framework leverages Blender to edit 3D scenes. Content rendering relies on WebGL, Web Audio, ...
*
CopperLicht
CopperLicht is an open-source JavaScript library for creating games and interactive 3D applications using WebGL, developed by Ambiera. The aim of the library is to provide an API for making it easier developing 3D content for the web. It is supp ...
*
O3D
O3D is an open-source (BSD license) JavaScript APIO3D Project Page from Google Code created by
StormEngineC
StormEngineC is a 3D graphics
3D computer graphics, or “3D graphics,” sometimes called CGI, 3D-CGI or three-dimensional computer graphics are graphics that use a three-dimensional representation of geometric data (often Cartesian) tha ...
*
Three.js
Three.js is a cross-browser JavaScript library and application programming interface (API) used to create and display animated 3D computer graphics in a web browser using WebGL. The source code is hosted in a repository on GitHub.
Overview
T ...
*
Babylon.js
Babylon.js is a real time 3D engine using a JavaScript library for displaying 3D graphics in a web browser via HTML5. The source code is available on GitHub and distributed under the Apache License 2.0.
History and progress
It was initially r ...
*
Verge3D
Verge3D is a real-time renderer and a toolkit used for creating interactive 3D experiences running on websites.
Overview
Verge3D enables users to convert content from 3D modelling tools (Autodesk 3ds Max and Blender are currently supported) to ...
*
X3DOM
X3D is a royalty-free ISO/IEC standard for declaratively representing 3D computer graphics. File format support includes XML, ClassicVRML, Compressed Binary Encoding (CBE) and a draft JSON encoding. X3D became the successor to the Virtual Re ...
Stage3D
Stage3D (codenamed ''Molehill'') is an Adobe Flash Player API for rendering interactive 3D graphics with GPU-acceleration, within Flash games and applications. Flash Player or AIR applications written in ActionScript 3 may use Stage3D to render ...
in the 3D library in Flash version 11 and later
*
Papervision3D
Papervision3D is an open-source, 3D graphics engine for rendering 3D content within Adobe Flash Player and Adobe AIR.
Unlike modern Flash 3D engines such as Away3D and Flare3D, Papervision3D is not built for Stage3D and renders 3D content ful ...
and its fork
Away3D
Away3D is an open-source platform for developing interactive 3D graphics for video games and applications, in Adobe Flash or HTML5. The platform consists of a 3D world editor (Away Builder),
for Flash
See also
*
Graphics library
A 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 run ...
*
Game engine
A game engine is a software framework primarily designed for the development of video games and generally includes relevant libraries and support programs. The "engine" terminology is similar to the term " software engine" used in the softwar ...
*
3D computer graphics software
3D computer graphics, or “3D graphics,” sometimes called CGI, 3D-CGI or three-dimensional computer graphics are graphics that use a three-dimensional representation of geometric data (often Cartesian) that is stored in the computer for t ...