List of rendering APIs

From HandWiki
Revision as of 12:44, 24 October 2022 by Scavis (talk | contribs) (over-write)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Rendering APIs typically provide just enough functionality to abstract a graphics accelerator, focussing on rendering primitives, state management, command lists/command buffers; and as such differ from fully fledged 3D graphics libraries, 3D engines (which handle scene graphs, lights, animation, materials etc.), and GUI frameworks; Some provide fallback software rasterisers, which were important for compatibility and adoption before graphics accelerators became widespread. Some have been extended to include support for compute shaders.

Low level rendering APIs typically leave more responsibility with the user for resource memory management, and require more verbose control, but have significantly lower CPU overhead,[1] and allow greater utilisation of multicore processors.

2D rendering APIs

Offline rendering

  • RenderMan aimed at offline rendering for CG films.

Software rasterising

As of 2016, these are generally considered obsolete, but were still important during the transition to hardware acceleration:

3D rendering APIs

These libraries are designed explicitly to abstract 3D graphics hardware for CAD and video games, with possible software fallbacks.

Cross platform, high level

  • OpenGL and the OpenGL Shading Language
  • OpenGL ES 3D API for embedded devices
  • OpenGL SC a version of openGL for safety critical systems.
  • RenderWare (combined game engine and cross platform rendering API. Became popular since the PlayStation 2 had no rendering API, initially relying on bare metal programming.)

Cross platform, low level

Vendor specific, high level

  • Direct3D (a subset of DirectX)
  • Glide API for the pioneering 3DFX accelerators
  • QuickDraw 3D developed by Apple Computer starting in 1995, abandoned in 1998
  • PSGL for the PlayStation 3, designed to work in a manner similar to openGL

Vendor specific, low level