Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
opengl [Le 04/11/2020, 12:24] amiralgaby réécriture de la page OpenGL |
opengl [Le 28/12/2022, 18:37] (Version actuelle) Theon [Vérifier son installation] grammaire |
||
---|---|---|---|
Ligne 3: | Ligne 3: | ||
====== OpenGL et GLX ====== | ====== OpenGL et GLX ====== | ||
- | OpenGL est une librairie écrite en C qui permet de programmer, de faire fonctionner des programmes utilisant la 3D. | + | OpenGL est une [[WPFR>bibliothèque logicielle]]((En anglais : //library//, avec une traduction en français par « librairie », souvent rencontrée et impropre ici.)) écrite en C qui permet de programmer, de faire fonctionner des programmes utilisant la 3D. |
- | Elle est parfois lié avec la bibliothèque [[:sdl|SDL]] et la [[:sfml|SFML]]. | + | Elle est parfois liée aux bibliothèques [[:sdl|SDL]] et [[:sfml|SFML]]. |
===== Définitions ===== | ===== Définitions ===== | ||
Voici quelques explications sur le monde d'OpenGL et ce qui l'entoure. | Voici quelques explications sur le monde d'OpenGL et ce qui l'entoure. | ||
- | * **[[http://fr.wikipedia.org/wiki/OpenGL|OpenGL]]** : (Open Graphic Library) est une spécification de graphique en 3D (trois dimensions) de SGI (Silicon Graphics, Inc.), descendant du produit anciennement nommé IRIS GL, compétiteur de Direct3D et QuickDraw3D (dépassé). Fréquemment abrégé "GL", particulièrement sous Linux, depuis que "OpenGL" est une marque déposée, et que l'utilisation de cette marque requiert d'être dans une zone (non-libre). | + | * **[[wpfr>OpenGL]]** : (Open Graphic Library) est une spécification de graphique en 3D (trois dimensions) de SGI (Silicon Graphics, Inc.), descendant du produit anciennement nommé IRIS GL, compétiteur de Direct3D et QuickDraw3D (dépassé). Fréquemment abrégé "GL", particulièrement sous Linux, depuis que "OpenGL" est une marque déposée, et que l'utilisation de cette marque requiert d'être dans une zone (non-libre). |
- | * **[[http://fr.wikipedia.org/wiki/GLX|GLX]]** : GL est un langage pour le graphique, non un système de fenêtre. "GLX" réfère à une extension qui permet la communication de GL avec le système de gestion de fenêtre dans le but de permettre le rendu 3D dans X. GLX est une extension au protocole X. Il y a des extensions similaires pour d'autres systèmes de fenêtres comme - WGL sous Windows, AGL sous MacOS. Dans X, la librairie du côté client pour GLX se nomme libGL, et du côté serveur libglx. | + | * **[[wpfr>GLX]]** : GL est un langage pour le graphique, non un système de fenêtre. "GLX" réfère à une extension qui permet la communication de GL avec le système de gestion de fenêtre dans le but de permettre le rendu 3D dans X. GLX est une extension au protocole X. Il y a des extensions similaires pour d'autres systèmes de fenêtres comme - WGL sous Windows, AGL sous MacOS. Dans X, la librairie du côté client pour GLX se nomme libGL, et du côté serveur libglx. |
* **Direct rendering (rendu direct)** : Un logiciel utilisant le langage GL peut être rendu à l'écran de deux manières différentes. Soit le client exécute lui-même le-dit rendu, soit la requête est passée au serveur et celui-ci s'occupe du rendu. Le rendu côté serveur se nomme "indirect rendering" (rendu indirect), et côté client "direct rendering". Le rendu direct est habituellement plus rapide. Cela est particulièrement vrai avec Xorg, où le rendu côté serveur est entièrement fait logiciellement. | * **Direct rendering (rendu direct)** : Un logiciel utilisant le langage GL peut être rendu à l'écran de deux manières différentes. Soit le client exécute lui-même le-dit rendu, soit la requête est passée au serveur et celui-ci s'occupe du rendu. Le rendu côté serveur se nomme "indirect rendering" (rendu indirect), et côté client "direct rendering". Le rendu direct est habituellement plus rapide. Cela est particulièrement vrai avec Xorg, où le rendu côté serveur est entièrement fait logiciellement. | ||
- | * **[[http://fr.wikipedia.org/wiki/Direct_Rendering_Infrastructure|DRI]]** : Le Direct Rendering Infrastructure est un procédé de XFree86 4.x / X.Org permettant aux applications Mesa 3D (implémentation libre d'OpenGL) de gagner du temps en accédant directement au processeur graphique sans passer par le serveur X. La plupart des pilotes libres de cartes graphiques implémentent ce procédé aujourd'hui. | + | * **[[wpfr>Direct_Rendering_Infrastructure|DRI]]** : Le Direct Rendering Infrastructure est un procédé de XFree86 4.x / X.Org permettant aux applications Mesa 3D (implémentation libre d'OpenGL) de gagner du temps en accédant directement au processeur graphique sans passer par le serveur X. La plupart des pilotes libres de cartes graphiques implémentent ce procédé aujourd'hui. |
- | * **[[http://fr.wikipedia.org/wiki/Mesa_3D|Mesa]]** : Mesa 3D est une bibliothèque graphique libre, initialement développée par Brian Paul en août 1993, qui fournit une implémentation générique d'OpenGL pour réaliser des rendus graphiques tridimensionnels en temps réel, et ce sur de multiples plates-formes. Une mise à jour importante a vu le jour en juillet 2009 car elle incorpore le travail réalisé sur Gallium3D : voir l'[[http://www.x.org/wiki/GalliumStatus|état d'avancement de gallium3D]]. | + | * **[[wpfr>Mesa_3D|Mesa 3D]]** : Mesa 3D est une bibliothèque graphique libre, initialement développée par Brian Paul en août 1993, qui fournit une implémentation générique d'OpenGL pour réaliser des rendus graphiques tridimensionnels en temps réel, et ce sur de multiples plates-formes. Une mise à jour importante a vu le jour en juillet 2009 car elle incorpore le travail réalisé sur Gallium3D : voir l'[[http://www.x.org/wiki/GalliumStatus|état d'avancement de gallium3D]] (plus à jour). |
* **Pilote DRI** : Le pilote DRI est responsable de la programmation du matériel 3D. Habituellement les pilotes DRI utilisent la bibliothèque graphique de Mesa. Dans le DRI, la librairie GLX du côté client charge un pilote, nommé 'quelque_chose_dri.so'. | * **Pilote DRI** : Le pilote DRI est responsable de la programmation du matériel 3D. Habituellement les pilotes DRI utilisent la bibliothèque graphique de Mesa. Dans le DRI, la librairie GLX du côté client charge un pilote, nommé 'quelque_chose_dri.so'. | ||
* **Pilote DRM** : Le Direct Rendering Manager est un module du noyau permettant de charger l'accélération vidéo. Le DRM est responsable de la sécurité et la gestion des ressources. Il n'est pas particulièrement intéressant mais essentiel. Il y est nommé 'quelque_chose.ko' dans Linux 2.6. | * **Pilote DRM** : Le Direct Rendering Manager est un module du noyau permettant de charger l'accélération vidéo. Le DRM est responsable de la sécurité et la gestion des ressources. Il n'est pas particulièrement intéressant mais essentiel. Il y est nommé 'quelque_chose.ko' dans Linux 2.6. | ||
Ligne 27: | Ligne 27: | ||
* Du chipset AGP correspondant à votre carte-mère | * Du chipset AGP correspondant à votre carte-mère | ||
- | Pour la plupart des cartes les plus utilisées, les pilotes DRM sont disponibles et déjà installés à l'exception de 2.6.9-ish sur mach64 et savage. Pour ceux-ci vous devez les construire à partir du CVS : http://dri.freedesktop.org/wiki/Building . | + | Pour la plupart des cartes les plus utilisées, les pilotes DRM sont disponibles et déjà installés à l'exception de 2.6.9-ish sur mach64 et savage. |
+ | |||
+ | <note important>Pour ceux-ci vous devez les construire à partir du CVS ( FIXME Ce qui suit n'est pas vérifié, les liens ne pourront peut-être pas vous aider ! ) : [[https://docs.mesa3d.org/meson.html|Compilation and Installation Using Meson]] - [[https://mesonbuild.com/|The Meson Build system]].</note> | ||
Tous les noyaux possèdent le support AGP. | Tous les noyaux possèdent le support AGP. | ||
- | Assurez- vous que /dev/dri/card0 existe et qu'il est possible d'y écrire. | + | Assurez- vous que ''/dev/dri/card0'' existe et qu'il est possible d'y écrire. |
==== Pour l'utilisateur ==== | ==== Pour l'utilisateur ==== | ||
- | Le pilote DRI | + | * Les pilotes[[wpfr>Pile_graphique_Linux#Composition_d’un_pilote_graphique_libre_sous_GNU/Linux|DRI et DDX]] |
- | Un DDX | + | * La librairie libGL |
- | La librairie libGL | + | |
- | Mises à part les exceptions précédentes vous avez la partie utilisateur fonctionnelle. | + | Mises à part les exceptions précédentes vous avez la partie utilisateur fonctionnelle. |
- | Vous devez avoir les lignes suivantes dans Xorg.conf : | + | Vous devez avoir les lignes suivantes dans Xorg.conf : |
<code> | <code> | ||
Ligne 48: | Ligne 49: | ||
</code> | </code> | ||
- | Assurez-vous que vous utilisez le pilote DDX compatible avec DRI et non pas vesa ou fbdev. | + | Assurez-vous que vous utilisez le pilote DDX compatible avec DRI et non pas vesa ou fbdev. |
Pour savoir si ça fonctionne tapez la commande : | Pour savoir si ça fonctionne tapez la commande : | ||
Ligne 67: | Ligne 68: | ||
Si après vérification (cf. ci-dessus), OpenGL n'est pas installé, voici comment précéder: | Si après vérification (cf. ci-dessus), OpenGL n'est pas installé, voici comment précéder: | ||
- | Il y aurait besoin de quelqu'un pour traduire ce tutoriel : http://www.larsen-b.com/Article/231.html . | + | Il y aurait besoin de quelqu'un pour traduire ce tutoriel : [[http://www.larsen-b.com/Article/231.html|How to to get openGL working on Debian (for Google Earth)]] . |
FIXME | FIXME | ||
Ligne 85: | Ligne 86: | ||
Dans les principales [[:variantes]] d'ubuntu, OpenGL est déjà installé.\\ | Dans les principales [[:variantes]] d'ubuntu, OpenGL est déjà installé.\\ | ||
- | Il arrive qu'OpenGL ne soit pas déjà installé de base. | + | Il arrive qu'OpenGL ne soit pas déjà installé de base. |
Vous pouvez vérifier la version installée d'OpenGL dans le [[:terminal]] en tapant la commande | Vous pouvez vérifier la version installée d'OpenGL dans le [[:terminal]] en tapant la commande | ||
<code bash>glxinfo | grep 'version'</code> | <code bash>glxinfo | grep 'version'</code> | ||
- | Vous pouvez aussi [[dpkg#verifier_la_presence_d_un_paquet| vérifiant si un des paquets]] de OpenGL est en place ou non. Essayez d'installer **[[apt>mesa-utils]]** : si le moyen utilisé pour installer mesa-utils vous dit que vous l'avez déjà installé, alors OpenGL est bien installé sur votre PC. | + | Vous pouvez aussi [[dpkg#verifier_la_presence_d_un_paquet| vérifier si un des paquets]] de OpenGL est en place ou non. Essayez d'installer **[[apt>mesa-utils]]** : si le moyen utilisé pour installer mesa-utils vous dit que vous l'avez déjà installé, alors OpenGL est bien installé sur votre PC. |
===== Configuration ===== | ===== Configuration ===== | ||
Ligne 96: | Ligne 97: | ||
===== Tutoriel pour programmation ===== | ===== Tutoriel pour programmation ===== | ||
- | * [[https://opengl.developpez.com/tutoriels/apprendre-opengl/|apprendre-opengl avec Developpez.com]] (fr) | + | * **(fr)**[[https://opengl.developpez.com/tutoriels/apprendre-opengl/|apprendre-opengl avec Developpez.com]] |
- | * [[https://perso.univ-lyon1.fr/jean-claude.iehl/Public/educ/M1IMAGE/html/group__tuto__application.html|tutoriel pour créer ses applications]] (fr) | + | * **(fr)**[[https://perso.univ-lyon1.fr/jean-claude.iehl/Public/educ/M1IMAGE/html/group__tuto__application.html|tutoriel pour créer ses applications]] |
- | * [[https://pub.phyks.me/sdz/sdz/developpez-vos-applications-3d-avec-opengl-3-3.html#Lacamra|développement d'application]] (fr) | + | * **(fr)**[[https://pub.phyks.me/sdz/sdz/developpez-vos-applications-3d-avec-opengl-3-3.html#Lacamra|développement d'application]] |
- | * [[http://www.opengl-tutorial.org/fr/miscellaneous/building-your-own-c-application/|autre tutoriel ]] (fr) | + | * **(en)**[[https://www.khronos.org/opengl/wiki/Getting_Started#Tutorials_and_How_To_Guides|Tutorials_and_How_To_Guides]] liste de tutoriels et guides |
- | * [[https://www.khronos.org/opengl/wiki/Getting_Started#Tutorials_and_How_To_Guides|Tutorials_and_How_To_Guides]] liste de tutoriels et guides (en) | + | * **(en)**[[https://www.khronos.org/opengl/wiki/|wiki opengl]] le wiki d'OpenGL |
- | * [[https://www.khronos.org/opengl/wiki/|wiki opengl]] le wiki d'OpenGL (en) | + | |
===== Supprimer OpenGL ===== | ===== Supprimer OpenGL ===== | ||
- | Il suffit de [[:comment_supprimer_un_paquet|supprimer son paquet]]. | + | Il suffit de [[tutoriel/comment_supprimer_un_paquet|supprimer le paquet installé]]. |
- | Via terminal cela donne : | + | Via terminal cela donne : |
<code>sudo apt remove freeglut3</code> | <code>sudo apt remove freeglut3</code> | ||
<code>sudo apt remove freeglut3-dev</code> | <code>sudo apt remove freeglut3-dev</code> | ||
Ligne 115: | Ligne 115: | ||
//Contributeur secondaire : [[:utilisateurs/amiralgaby]].// | //Contributeur secondaire : [[:utilisateurs/amiralgaby]].// | ||
- | //Traduction de: http://people.freedesktop.org/~ajax/dri-explanation.txt // | + | //Traduction de: https://people.freedesktop.org/~ajax/dri-explanation.txt // |