IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenGL Discussion :

Domaine d'application


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 60
    Par défaut Domaine d'application
    Bonjour,

    J'aimerais savoir où, comment et dans quels domaines on utilise l'OPENGL (à part les jeux vidéos bien sûr) !?

  2. #2
    Membre expérimenté
    Avatar de GLDavid
    Homme Profil pro
    Head of Service Delivery
    Inscrit en
    Janvier 2003
    Messages
    2 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Head of Service Delivery
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 896
    Par défaut
    OpenGL sert a tous les domaines de l'infographie : architecture, recherche (modelisation anatomique ou moleculaire), conception de voitures, avions....A partir du moment ou tu as besoin de visualiser quelque chose, bien souvent on a recours a cette bibliotheque.
    Ou ? Dans toutes les entreprises ou labos publics et prives.
    Comment ? En programmant des applis basees sur OpenGL.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code :tagcode: ni le tag :resolu:

    Je ne répond à aucune question technique par MP.

  3. #3
    Membre chevronné Avatar de Jbx 2.0b
    Homme Profil pro
    Développeur C++/3D
    Inscrit en
    Septembre 2002
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur C++/3D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2002
    Messages : 477
    Par défaut
    Je rajouterai que OpenGL est une librairie de Silicon Graphics ( http://www.sgi.com/software/opengl/ ) totalement portable mais réalisée au départ pour ses supercalculateur 64 bits. Elle est ainsi utilisée pour pouvoir visualiser des modéles de trés hautes définitions trés utiles dans l'aérospatiale, le contrôle de qualité automobile, ou les domaines du biomédical par exemple. Elle posséde des fonctions uniquement utilisable par des cartes 3D professionnelles (Nvidia Quadro, Wildcat de 3dLabs,ect...) bien que maintenant la plupart sont supportées par des cartes grand public. En opposition avec DirectX, bien plus orienté jeu vidéo, OpenGL à été crée à l'origine pour une utilisation professionnelle.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 60
    Par défaut
    Ok, mais je ne vois pas très bien son application pour l'infographie....n'est-il pas plus facile de modéliser/modifier en 3D sous un logiciel comme Maya, Amapi, Rhino, etc...d'autant plus qu'il y en a pour toutes les bourses, il y en a certains d'exellentes qualités fournis gratuitement comme Amapi 3 il y a 1 ou 2 ans (dans le magasine computer arts) pour la sortie du 4...! Car il me parait beaucoup plus productif de faire une modélisation 3D sur soft que de de se casser les noisettes à pondre du code en ligne. J'imagine que l'intérêt d'OpenGL doit résider quand même dans la possibilité de dessiner et modéliser un comportement physique à partir de données physiques, donc une animation 3D ne dépendant pas du programmeur mais des données récoltées donnant une animation différente d'une compilation à une autre suivant ce qui est traité (dynamique), ce qui n'est pas possible sous un logiciel 3D où on fait ses dessins et animations, un film quoi (statique).

    Sinon, peut-on faire de l'openGL quand on n'a pas de carte graphique digne de ce nom. Interdiction de rire mais j'ai un pentium acheté en 1995, un 133 MHz, 40 Mo de RAM, 4 Go de disque dur, une carte graphique de 10 ans (Trident 8086, je crois ou un truc du genre). Qu'est ce que ça change graphiquement et que je ne pourrai pas faire !? J'ai déja fait quelques progs en OpenGL, juste quelques figures (cubes, triangles, etc...) que j'ai fait tourné...j'imagine que la différence doit se faire plutôt dans les fonction plus compliquées de relief comme le brouillard, la profondeur ou autres...

  5. #5
    Membre chevronné Avatar de Jbx 2.0b
    Homme Profil pro
    Développeur C++/3D
    Inscrit en
    Septembre 2002
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur C++/3D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2002
    Messages : 477
    Par défaut
    Soccersoft à écrit :
    n'est-il pas plus facile de modéliser/modifier en 3D sous un logiciel comme Maya, Amapi, Rhino, etc...
    OpenGL est une librairie qui permet de visualiser en temps réel (ce que tu appelle "dynamique") des modéles 3D. OpenGL ne permet pas de modéliser, ce n'est pas un modeleur 3D ! Par contre dans les fenetres de modélisation de 3D Studio, Blender, et beaucoup d'autres c'est OpenGL qui est utilisée. Les modéles que tu crée avec ces modeleurs 3D peuvent être alors réutilisés dans d'autres application OpenGL (ou DirectX, ou software = sans accélération 3D).
    Il faut bien comprendre qu'OpenGL permet juste d'afficher à l'écran des modéles en 3D, mais ces modéles seront plutôt dessinés avec une autre application, un modeleur

    Soccersoft à écrit :
    Car il me parait beaucoup plus productif de faire une modélisation 3D sur soft que de de se casser les noisettes à pondre du code en ligne.
    mais dans ton modeleur (amapi, maya, rhino...) tu ne pourra que réaliser des scénes 3D "précalculées" sans possibilité d'interaction avec l'utilisateur, alors que les applications OpenGL te permettent de gérer les actions (clavier, souris, joystick...) en temps réel de l'utilisateur.

    Soccersoft à écrit :
    J'imagine que l'intérêt d'OpenGL doit résider quand même dans la possibilité de dessiner et modéliser un comportement physique à partir de données physiques, donc une animation 3D ne dépendant pas du programmeur mais des données récoltées donnant une animation différente d'une compilation à une autre suivant ce qui est traité (dynamique),
    exactement . Des données aléatoires, plus le comportement de l'utilisateur, changeront le déroulement du programme

    j'ai un pentium acheté en 1995, un 133 MHz, 40 Mo de RAM, 4 Go de disque dur, une carte graphique de 10 ans (Trident 8086, je crois ou un truc du genre).
    J'ai déja fait quelques progs en OpenGL, juste quelques figures (cubes, triangles, etc...) que j'ai fait tourné...
    Je ne connais pas la carte Trident, mais si tu dis que tu a deja réalisé des appli 3D alors c'est une carte accélérée 3D.

    Qu'est ce que ça change graphiquement et que je ne pourrai pas faire !?
    OpenGL est une librairie dite "ouverte" (OpenGL = Open Graphics Librairy), ainsi chaque constructeur de carte graphique (nVidia, ATI, 3DLabs, Intel, SGI...) peut lui adjoindre les nouvelles fonctions que supportent sa carte. OpenGL posséde ainsi un nombre impréssionnant d'extensions ( qui permettent d'ajouter le relief, la reflection, des textures compressées, choisir son type de brouillard, ect...)rajoutées à tout va qui sont pour certaines supportées par une seule carte 3D ou par les cartes 3D d'un seul constructeur. Depuis la "Trident", de l'eau s'est écoulé sous les ponts et ta carte ne supportera que trés peu d'extensions.

    De même ta carte à une fréquence surement basse et sa capacité mémoire est surement trés faible par rapport à ce qui se fait maintenant. Tu sera donc limité par le nombre de polygones que tu pourra afficher par seconde et par la taille des textures que tu pourra leurs appliquer.

    Assez récement, les cartes 3D peuvent être maintenant programmée tel le CPU et peuvent acceuillir des programmes résidents qui sont appliqués à chaque vertex ou à chaque pixel. On appelle ces programmes des vertex shaders ou pixels shaders. Il te permettent par exemple de programmer des rendus simulant le relief ou la réflection, de changer la lumiére OpenGL de base qui n'est pas super...

    Interdiction de rire
    Mais ça peut - être un avantage d'avoir un vieu PC pourri, au moins tu teste un à un tes algos et tu peu ainsi vérifier si ils tournent bien. Les PC à 3 Ghz font tout tourner à fond, et beaucoup de gens programment comme "des porcs" (j'en fait (un peu) parti ) et ce retrouvent avec des applications qui nécessitent un processeur de 1 ou 2 Ghz alors que 300 Mhz aurai été suffisant avec quelques optimisations

    +

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 60
    Par défaut
    C'est un peu tordu de programmer un truc qui ne fonctionnent QUE sur sa carte graphique...pour ne pas dire que ça sert à rien ce genre d'extension alors à part pour son utilisation personnel sur son PC uniquement ...je comprends pas bien cette politique de non-compatibilité...! J'imagine qu'une carte graphique à 50 euros doit savoir faire moins de choses qu'une autre à 200 euros mais comment ils font les auteurs de jeux vidéos qui développent pour tout le monde !? Ils ne vont pas faire un jeu par carte graphique : ça donne quoi un jeu écrit pour une carte avec des fonctions spécifiques qui est essayé sur un autre PC...des plantages !?

  7. #7
    Membre chevronné Avatar de Jbx 2.0b
    Homme Profil pro
    Développeur C++/3D
    Inscrit en
    Septembre 2002
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur C++/3D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2002
    Messages : 477
    Par défaut
    bah les concepteur de jeux vidéo intégrent dans leur programme des fonctions pour scanner le matériel de l'utilisateur et active/désactive les extensions en conséquence. Ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    exten = (char *) glGetString(GL_EXTENSIONS);
    printf("%s\n",exten);
    La fonction glGetString(GL_EXTENSIONS); te permet de récuperer les extensions dans une chaîne et le printf te les affiche ensuite.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (strstr(exten, "GL_EXT_compiled_vertex_array") == 0)
    {
       printf("GL_EXT_compiled_vertex_array NOT found.\n");
       exit(66); 
    }
    Ici on recherche si l'extensions GL_EXT_compiled_vertex_array est dans cette chaîne; si oui on agit en conséquence .

    Actuellement les cartes 3D "standard" et "grand public" sont soit d'ATI, soit de nVidia (il y a aussi toutes les cartes dites intégrés de SiS et Intel par exemple, mais ces cartes supportent en général assez peu d'extensions OpenGL) , et les deux constructeur proposent souvent des extensions adaptés à leur cartes qui réalisent en fait les mêmes opérations. Les concepteur de jeux vidéo n'ont donc plus qu'à demander au systéme qu'elle carte il a, et ensuite soit activer l'extension nVidia si c'est une carte qui supporte l'extension, soit activer l'extensions ATI, soit ne pas activer l'extension (Intel, SiS, ect.). Il faut savoir que de toute façon le jeu à été pensé à la base sans les extensions, donc permet à tous de jouer normalement.


    OpenGL est en ce moment à la version 1.5 et la version 2.0 (tant attendue) est en préparation. Le probléme que tu souléve (politique de non compatibilité) et le fait que les extensions partent dans tout les sens est justement un gros probléme des concepteurs d'OpenGL face à DirectX, beaucoup plus "unifié". Le but est donc de rapprocher au maximum les extensions qui se ressemble le plus. Comme je te l'ai déja dit, le développement d'OpenGL est réalisé par plusieurs constructeurs (INTEL, IBM, 3DLABS, SGI, XGI, ATI et NVIDIA pour n'en citer que quelques-uns) et ils peuvent soit réaliser des fonctions qui leurs sont propre (le nom commencera alors par GL_ATI si c'est le constructeur ATI qui l'a développer), soit introduire une fonction que tout le monde à adopté, elle prendra alors comme préfixe GL_ARB (OpenGL Architecture Review Board).

    Un site sur les extensions OpenGL: http://www.halflifedesign.net/?page=tuto&tut=101

    si tu as d'autres question

    +

  8. #8
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    pour les jeux il existe plusieurs politique differentes : certaines boite ne jurent que par l'utilisation d'extention standard, supporté par tout les constructeurs (les fameuses extentions ARB) et d'autre comme ID software sont pretes a réalisé plusieurs version du coeur de leur moteur 3D, une par version de carte graphique quasiment (a l'heure actuelle, Doom 3 a plusieurs "render path", 1 pour les GeForce2, 1 pour les GeForce 3, 1 pour le GeForce 4 et un pour les autre cartes supportant les vertex et pixel shader.)

    sinon l'interet de faire tourner des programme directement sur la carte graphique et non pas sur le CPU est :
    - optimiser la vitesse d'execution (on profite d'un vrai paralellisme et certaine informations peuvent etre calculé directement par le GPU, limitant ainsi l'envoi d'information par le port AGP...)
    - permettre de nouveau effets en fonctions des besoins du programmeur. j'ai besoin d'un effet qui me calcule de l'eclairage par pixel avec reflet speculaire mais qui m'inverse la couleur de ma texture ? pas de probleme, je fait un bête shader que j'envoi a la carte et qui m'effectura une serie d'operation sur chaque pixel de mon image...

    sinon pour le coup de modelaur... tu sait que la quasi totalité des modeleurs utilisent openGL pour pouvoir visionner rapidement la scene...
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

Discussions similaires

  1. Exception FileIOPermission dans un domaine d'application
    Par mappy dans le forum Windows Forms
    Réponses: 0
    Dernier message: 31/05/2011, 11h06
  2. Qt et domaines d'application possibles ?
    Par betsprite dans le forum Qt
    Réponses: 65
    Dernier message: 14/08/2010, 15h03
  3. Domaine d'application de la recherche d'images par similarité de texture
    Par mobi_bil dans le forum Traitement d'images
    Réponses: 4
    Dernier message: 29/08/2009, 14h42
  4. Réponses: 5
    Dernier message: 05/05/2007, 17h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo