Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
opengl [Le 19/09/2009, 02:38]
Zarmakuizz
opengl [Le 28/12/2022, 18:37] (Version actuelle)
Theon [Vérifier son installation] grammaire
Ligne 1: Ligne 1:
-Par : [[:​utilisateurs/​phetu]] +{{tag>​système BROUILLON programmation Focal}} 
-Traduction de: http://​people.freedesktop.org/​~ajax/​dri-explanation.txt+----
  
 +====== OpenGL et GLX ======
 +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ée aux bibliothèques [[:​sdl|SDL]] et [[:​sfml|SFML]].
 +===== Définitions =====
 +Voici quelques explications sur le monde d'​OpenGL et ce qui l'​entoure.
  
-====== Explication ​de OpenGL et autres ​acronymes ​sous linux ======+  * **[[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). 
 +  * **[[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. 
 +  * **[[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. 
 +  * **[[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 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 DDX** :  Ceci est la partie serveur X responsable des autres types de rendu  comme Render et Xv.  Le DDX doit être capable de fonctionner avec DRI, sinon il y a peu de relation avec GL. 
 +  * **AGP** :  AGP est une version rapide du bus PCI , avec des fonctionnalités supplémentaires pour le matériel graphique. La base de AGP est dans le module du noyau nommé '​agpgart.ko'​. 
 +  * **Chipset AGP** :  Différentes cartes mères ont différents chipsets et ceux-ci nécessitent des implémentations de fonctionnalités AGP différentes. Vous devez avoir celui correspondant à votre matériel et ce n'est pas toujours la même chose que pour votre chipset de carte graphique. Exemple : Le chipset Via a besoin de '​via-agp.ko',​ etc.
  
 +===== Pré-requis =====
 +==== pour le noyau ====
 +<​note>​Il est rare que vous n'ayez pas les "​pré-requis"​ sur votre noyau, dans le doute cette section est disponible. Considérez que vous avez tout les pré-requis et passez à l'​installation.</​note>​
  
 +  * Un pilote DRM correspondant à votre carte vidéo
 +  * Du support AGP
 +  * 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.
  
-Cette page est complètement incompréhensible ​à moins d'​être ingénieur software/​développeur Linux :Et encore c'​est ​traduit de l'​anglais dans un style traducteur automatique...+<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>​
  
-Je suis tombé sur cette page en cherchant des informations sur l'​utilisation openGL sous Hardy...notamment pourquoi Google Earth ne fonctionne pas bien sur ma machine. Tout ce que je voulais savoir était si openGL est installé et configuré correctement dans mon kernel.+Tous les noyaux possèdent le support AGP.
  
-Cette page ne répond pas du tout à cette simple question : elle ne fait que poser 15 autres questions toutes plus obscures les unes que les autres et n'apporte aucune réponse simple ​et concrète!!+Assurez- vous que ''/​dev/​dri/​card0''​ existe ​et qu'il est possible d'y écrire.
  
 +==== Pour l'​utilisateur ====
  
-=== Pour les pas ingénieurs software/développeur ===+  * Les pilotes[[wpfr>​Pile_graphique_Linux#​Composition_d’un_pilote_graphique_libre_sous_GNU/Linux|DRI et DDX]] 
 +  * La librairie libGL
  
-Bon alors vous voulez juste savoir si opengl est installé, le mieux à faire c'est de vérifié que les paquet opengl sont bien installé (liste à completer ou à corriger...);+Mises à part les exceptions précédentes vous avez la partie utilisateur fonctionnelle.
  
-* freeglut3+Vous devez avoir les lignes suivantes dans Xorg.conf :
  
-* libglut3+<​code>​ 
 +Load "​dri"​  
 +Load "​glx"​ 
 +</​code>​
  
-* libglu1-mesa ??+Assurez-vous que vous utilisez le pilote DDX compatible avec DRI et non pas vesa ou fbdev.
  
-===== Définitions =====+Pour savoir si ça fonctionne tapez la commande :
  
 +<​code>​
 +grep -i Direct /​var/​log/​Xorg.0.log ​
 +</​code>​
  
-Les gens sont fréquemment confus par l'​importante quantité d'​acronyme qui entoure le monde de OpenGL sous Linux. Ce document est un effort pour réduire ​la confusion. Diverses définitions sont données selon un ordre logique plutôt qu'​alphabétique pour une meilleur compréhension.+"​Direct rendering enabled"​ devrait être affiché ainsi que "​direct rendering: Yes" dans la commande :
  
-Le noyau Linux visé est le 2.6.+<​code>​ 
 +glxinfo | grep -i direct 
 +</​code>​
  
-**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).+===== Installation =====
  
-**GLX** :  GL est un language 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 WindowsAGL sous MacOS. ​ Dans Xla librairie du côté client pour GLX se nomme libGL, et du côté serveur libglx.+==== Installer OpenGL ​ ==== 
 +Si après vérification (cfci-dessus)OpenGL n'est pas installévoici comment précéder:
  
-**Direct rendering (rendu direct)** :  ​Il y a deux façons pour qu'​un ​logiciel qui utilise GL d'​être rendu à l'​écranSoit le client fait le rendu lui même soit la requête est passée au serveur et celui-ci s'​occupe du renduLe rendu côté serveur se nomme "​indirect rendering" ​(rendu indirect), et côté client "​direct +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)]] . 
-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.+FIXME
  
-**DRI** :  Pour "​Direct Rendering Infrastructure"​ est une technologie qui permet l'​utilisation de "​direct rendering"​ pour les logiciels utilisant GL sous les systèmes d'​exploitation Linux et BSD. 
  
-**Mesa** :  Mesa est une implémentation de GL écrit par Brian Paul et +Pour Installer OpenGL via votre gestionnaire de paquet : 
-une douzaines de contributeurs. Il contient un logiciel de traducteur par ligne (rasterizer),​ une machine d'​état et de communication GL pour les gestionnaires de fenêtre incluant X et Win32. ​ Tous les pilotes libres pour DRI sont basés sur Mesa ainsi que plusieurs autres à code source fermé.+**[[apt>​freeglut3]]** ou **[[apt>​freeglut3-dev]]**
  
-**Pilote DRI** :  C'est ici qu'est toute l'​excitation. En effet, le pilote DRI est responsable de la programmation du matériel 3D.  Habituellement les pilotes DRI utilisent la machine d'​état de Mesa.  Dans le DRI, la librairie GLX du côté client charge un pilote, nommé quelque_chose_dri.so. 
  
-**Pilote DRM** Ceci est la composante ​de DRI du côté du noyau. 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.+Pour installer OpenGL, via un terminal ​: 
 +<code bash>​sudo apt-get install freeglut3</​code>​ 
 +Et pour installer ​la version ​de développement : 
 +<code bash>​sudo apt-get install freeglut3-dev</​code>​
  
-**Pilote DDX** :  Ceci est la partie serveur X responsable des autres types de rendu  comme Render ​et Xv.  Le DDX doit être capable de fonctionner avec DRI, sinon il y a peu de relation avec GL.+<note important>​Les versions ​de développement d'​OpenGL sont instables, vous les installez à vos risques ​et périls!</​note>​
  
-**AGP** ​ AGP est une version rapide du bus PCI avec des fonctionnalités supplémentaires pour le matériel graphique. La base de AGP est dans le module du noyau nommé agpgart.ko.+==== Vérifier son installation ==== 
 +Dans les principales [[:variantes]] d'​ubuntuOpenGL ​est déjà installé.\\
  
-**chipset AGP** :  Différentes cartes mères ont différents chipsets et ceux-ci nécessitent des implémentations des fonctionnalités AGP différentes. Vous devez avoir celui correspondant à votre matériel et ce n'est pas toujours la même chose que pour votre chipset ​de carte graphique. Exemple : Le chipset Via a besoin de via-agp.ko, etc.+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 ​
 +<code bash>​glxinfo | grep '​version'</​code>​
 +
 +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 =====
 +Je n'​arrive pas à installer openGL, comment dois-je faire ? À compléter.
  
-Je n'​arrive pas à installer openGL, comment dois-je faire ?+===== Tutoriel pour programmation ===== 
 +  * **(fr)**[[https://​opengl.developpez.com/​tutoriels/​apprendre-opengl/​|apprendre-opengl avec Developpez.com]] 
 +  * **(fr)**[[https://​perso.univ-lyon1.fr/​jean-claude.iehl/​Public/​educ/​M1IMAGE/​html/​group__tuto__application.html|tutoriel pour créer ses applications]] 
 +  * **(fr)**[[https://​pub.phyks.me/​sdz/​sdz/​developpez-vos-applications-3d-avec-opengl-3-3.html#​Lacamra|développement d'​application]] 
 +  * **(en)**[[https://​www.khronos.org/​opengl/​wiki/​Getting_Started#​Tutorials_and_How_To_Guides|Tutorials_and_How_To_Guides]] liste de tutoriels et guides 
 +  * **(en)**[[https://​www.khronos.org/​opengl/​wiki/​|wiki opengl]] le wiki d'​OpenGL
  
 +===== Supprimer OpenGL =====
  
-==== Pour le noyau ====+Il suffit de [[tutoriel/​comment_supprimer_un_paquet|supprimer ​le paquet installé]]. 
 +Via terminal cela donne : 
 +<​code>​sudo apt remove freeglut3</​code>​ 
 +<​code>​sudo apt remove freeglut3-dev</​code>​
  
-  * Un pilote DRM correspondant à votre carte vidéo +---- 
-  * Du support AGP +//​Contributeur principal : [[:​utilisateurs/​phetu]].//​
-  * 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 ceci vous devez les construire à partir du CVS http://dri.freedesktop.org/wiki/Building .+//​Contributeur secondaire ​[[:utilisateurs/amiralgaby]].//
  
-Tous les noyaux possèdent le support AGP. +//Traduction dehttps://people.freedesktop.org/​~ajax/​dri-explanation.txt ​//
- +
-Être certain que /dev/dri/card0 existe et qu'il est possible d'y écrire. +
- +
- +
-==== Pour l'​utilisateur ==== +
- +
-Le pilote DRI +
-Un DDX +
-La librairie libGL +
- +
-Mises à part les exceptions précédentes vous avez la partie utilisateur fonctionnelle. ​  +
- +
-Vous devez avoir les lignes suivantes dans Xorg.conf ​ +
- +
-<​code>​ +
-Load "​dri"​  +
-Load "​glx"​ +
-</​code>​ +
- +
-Être certain que vous utilisez pilote DDX compatible avec DRI donc pas vesa ou fbdev.  +
- +
-Pour savoir si ça fonctionne faites la commande ​: +
- +
-<​code>​ +
-grep Direct ​/var/log/Xorg.0.log  +
-</code> +
- +
-"​Direct rendering enabled"​ devrait être affiché ainsi que "​direct rendering: Yes" dans la commande : +
- +
-<​code>​ +
-glxinfo | grep direct +
-</code>+
  • opengl.1253320726.txt.gz
  • Dernière modification: Le 19/09/2009, 02:38
  • par Zarmakuizz