Open Graphics Library.
Besoin
Fournir une API graphiques 2D et 3D déléguant des calculs au GPU.
Analyse
Gestion de :
- la caméra
- la rotation 3D d'objets
- le remplissage de facettes
- les textures
- la lumière
Conception
pBuffers
Un programme OpenGL effectue un rendu au travers d'une pipeline de shaders pouvant inclure des shaders de :
- sommets ou vertices (vertex shader) qui va fournir les coordonnées dans
l'espace de projection ( clipspace)
- pixels (fragment shader) qui va fournir les couleurs.
- géométries (geometry shader)
- tessellation (tessellation shader)
- calcul (compute shader)
qui se communiquent des données au travers de variables :
- uniformes (uniform), c'est-à-dire fournie de l'extérieur (l'applicatif côté CPU) et ne
changeant pas durant l'exécution de toute la pipeline.
- attributs (attributes) utilisés comme paramètres (positions, normales, couleurs, UVs) de
vertex.
- variants (varying) dont la valeur varie d'un pixel à un autre par interpolation
(bilinéaire, corrigé pour la perspective en utilisant la profondeur du pixel, etc.).
Mécanisme d'extension
Implémentation
Le traitement effectué par chaque shader doit être implémenté en GLSL.
|
1.0 |
1.4 |
1.5 |
2.0 |
2.1 |
3.0 |
3.1 |
3.2 |
3.3 |
4.0 |
Vulkan |
Date |
1992 |
2003 |
2003 |
2004 |
2004 |
2008 |
2009 |
2009 |
2010 |
2010 |
2016 |
Langage |
ARB assembly language |
ARB assembly language |
GLSL 0.1 |
GLSL 1.10.59 |
GLSL 1.20.8 |
GLSL 1.30.10 |
GLSL 1.40.08 |
GLSL 1.50.11 |
GLSL 3.30.6 |
GLSL 4.00.9 |
|
Extensions |
|
GLSL 0.1 |
ARB_shader_objects, ARB_vertex_shader, ARB_fragment_shader |
|
|
|
|
|
|
|
|
Déploiement
- Plates-formes
- Stations de travail Unix®, Linux, OPENStep, BeOS
- Windows 95/98/2000/NT/Vista
- MacOS
- Web via WebGL
- Langages
- C,
- C++
- Fortran
- Ada
- Java via JOGL
- JavaScript via WebGL
Notes
- Inventé par Sillicon Graphics (SGI)