+ Répondre à la discussion Actualité déjà publiée
  1. #1
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : septembre 2005
    Messages : 1 386
    Points : 2 787
    Points
    2 787

    Par défaut A propos de la série de tutoriels sur OpenGL 3.x

    Bonjour à tous,

    Comme vous le savez, OpenGL est, depuis maintenant pas mal de temps, disponible en version 3.0 et 3.1, mais la documentation se fait encore assez rare, surtout en français. J'ai donc décidé de créer une petite série de tutoriels pour permettre aux personnes codant déjà en OpenGL 2.1 de pouvoir se mettre à jour, en espérant ne pas avoir fait trop d'erreurs .

    Ces tutoriaux n'ont pas pour objectif d'être des tutoriaux expliquant comment fonctionne OpenGL, mais plutôt de décrire des nouvelles fonctionnalités, et aussi comment faire pour utiliser des anciennes fonctionnalités en évitant toutes les méthodes dépréciées.

    A l'heure actuelle, seul le tuto d'introduction et le premier, dédié aux shaders, sont disponibles. Le troisième, consacrée à l'utilisation des VBO avec OpenGL 3.x, est presque terminé d'être écrit, mais il faut que je modifie certains détails dont je ne suis pas très content. Le quatrième sera consacré aux Vertex array object (ou VAO), et le cinquième consacré aux "uniform buffer objects" (UBO), et je compte en écrire d'autres au fur et à mesure dont je me sers de nouvelles fonctionnalités.

    Si vous utilisez une fonctionnalité nouvelle introduite avec OpenGL 3.x (je pense au transform feedback, map buffer range, texture buffer...), cela pourrait être intéressant de faire partager vos connaissances et d'écrire également un tutoriel dessus si vous avez du temps, car le nombre de tutoriaux sur OpenGL 3.x sont très très rares, même en anglais, et même si cela ne dispense pas la lecture de la documentation officielle, cela peut aider de nombreuses personnes ne comprenant pas l'anglais.

    Bref.

    Partie n°1 : OpenGL 3.x : un point sur les nouveautés

    Partie n°2 : Utilisation des shaders avec OpenGL 3.x

    Partie n°3 : Utilisation des VBO avec OpenGL 3.x

    Partie n°4 : Utilisation des Vertex Array Object avec OpenGL 3.x



    Il n'y a pas de code source sur cette partie car cela aurait été inutile, mais il y en aura pour la prochaine.

    Merci de me donner vos avis

  2. #2
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    avril 2006
    Messages
    450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : avril 2006
    Messages : 450
    Points : 1 620
    Points
    1 620

    Par défaut

    Niquel, j'ai appris beaucoup de chose ! Mais ca me fait peur un peu tout ca... Je bosse sur un framework lui-meme base sur Open Inventor et toute la conception est basee sur la pile d'etat d'OpenGL... je sais pas comment on va s'adapter xD
    Je ne réponds à aucune question par MP, posez vos questions sur le forum adéquat.
    Profils : G+ - LinkedIn

  3. #3
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : septembre 2005
    Messages : 1 386
    Points : 2 787
    Points
    2 787

    Par défaut

    C'est pour ça qu'il existe l'extension GL_ARB_compatibility dans OGL 3.1. D'ailleurs j'ai toujours eu du mal à comprendre ceux qui critiquent OpenGL 3.1 parce que Khronos a décidé de ne pas supprimer COMPLETEMENT les fonctions dépréciées. Il est sûr que pour les gens comme toi qui bossent sur des projets déjà avancés et qui utilisent ces fonctionnalités (en l'occurrence la pile d'état d'OpenGL), il est inconcevable de TOUT réécrire afin d'être OpenGL 3.1 friendly. Et si ces gens veulent quand même profiter de certaines fonctionnalités apportées par ces nouvelles verisons d'OGL, ils font comment, si l'extension GL_ARB_compatibility n'existait pas ?

    Ou alors j'ai loupé un épisode et les gens qui critiquent cet aspect ont d'autres raisons ?

    Au passage, il y a d'autres tutoriaux, j'ai mis à jour le premier message .

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    juin 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2009
    Messages : 35
    Points : 36
    Points
    36

    Par défaut Bravo Bakura pour vos tutoriels!

    Bravo et merci pour vos tutoriels sur OpenGL 3.x. Ils sont vraiment très bien faits et intéressants. Personnellement, je connaissais un peu tout ça : non que je sois un champion d'OpenGL (très très très très loin de là!) mais comme je débute, autant commencer directement par les bonnes pratiques...
    Sinon, j'imagine que votre prochain didacticiel sur les uniform buffer objects, bien que sûrement au top, sera dans un premier temps purement théorique et conceptuel. On ne pourra pas exécuter les exemples que vous nous fournirez. En effet, si je ne me trompe pas, aucun constructeur de puces graphiques de fournit, pour l'instant, l'extension GL_ARB_uniform_buffer_object, mêrme Nvidia, qui se targue de proposer des pilotes compatibles OpenGL 3.1 (ils auraient dû dire "partiellement compatibles"...). Pour l'instant, il faut se contenter de l'extension GL_EXT_bindable_uniform.

  5. #5
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : septembre 2005
    Messages : 1 386
    Points : 2 787
    Points
    2 787

    Par défaut

    Salut et merci pour tes remarques ! Je pensais que les uniform buffer objects étaient supportés par les derniers drivers nVidia, puisque certains les ont testé... A vérifier, je n'ai pas de carte nVidia.

    Sinon, concernant le tutoriel sur les UBO, j'attends justement qu'AMD sorte des drivers supportant cette extension, ce n'est clairement pas intéressant de faire un tutoriel "théorique et conceptuel" comme tu dis ; pour ça la documentation est très bien...

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    juin 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2009
    Messages : 35
    Points : 36
    Points
    36

    Par défaut

    Bakura, j'ai lu la page de votre lien et je suis un peu dubitatif... Sur le site Geeks3d, il y a la liste des extensions disponibles avec les derniers Forceware beta (et les premiers supportant OpenGL 3.1) et je vois pas de trace de l'extension GL_ARB_uniform_buffer_object (http://www.geeks3d.com/20090616/nvid...ew-extensions/). Mais comme je n'ai pas de carte Nvidia, je ne peux pas être catégorique sur leur existence ou pas. Avez-vous checké toutes vos extensions avec gpu caps ou OpenGL Extensions Viewer?

  7. #7
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : septembre 2005
    Messages : 1 386
    Points : 2 787
    Points
    2 787

    Par défaut

    Je sais, je connais ce site et effectivement je me suis aperçu qu'il n'y avait pas cette extension... Il est possible qu'elle ait été temporairement ajouté dans un driver (d'où le fait que ces gens l'ait testée), puis supprimée. Je n'en sais rien, et je n'ai jamais eu de carte nVidia donc je peux vraiment pas te dire... Désolé !

  8. #8
    Membre averti
    Homme Profil pro
    Game Graphics Programmer
    Inscrit en
    août 2006
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Game Graphics Programmer
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : août 2006
    Messages : 408
    Points : 385
    Points
    385

    Par défaut

    Idem, merci pour ces tutos intéressants. Et bon courage pour la suite

    tiens du coup, tu saurais où trouver une liste des extensions "purement" OpenGL3.1? Il me semble que glew peut en créer une entête spécifique, ca faciliterait pas mal le dev.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    juin 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2009
    Messages : 35
    Points : 36
    Points
    36

    Par défaut

    Kurisu, je crois qu'il y a 2 extensions "purement" OpenGL 3.1 (c'est-à-dire apparues avec OpenGL 3.1). L'une d'elle est GL_ARB_uniform_buffer_object qui, il me semble, n'est actuellement disponible sur aucune carte graphique. L'aute est GL_ARB_copy_buffer qui sert à faire des copies rapides entre buffer; ce sera surtout utile pour les changements de contexte avec OpenCL. Les autres "nouvelles" extensions d'OpenGL 3.1 existaient déjà (certaines depuis longtemps comme GL_ARB_texture_rectangle) et ont étés promues dans le core. Une petite liste : GL_arb_draw_instanced et GL_ARB_instanced_arrays (hardware instancing), GL_ARB_texture_buffer_object (buffer object de textures 1D, surtout utile pour outrepasser les limites du nombre d'uniforms et d'attributs), GL_ext_transform_feedack (stream outpout) et GL_NV_primitive_restart.

  10. #10
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : septembre 2005
    Messages : 1 386
    Points : 2 787
    Points
    2 787

    Par défaut

    Tu es sûr que EXT_Transform_feedback n'est pas nouvelle ?

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    juin 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2009
    Messages : 35
    Points : 36
    Points
    36

    Par défaut

    Bakura, je suis quasiment certain que l'extension GL_EXT_transform_feedback n'est pas nouvelle. Elle est apparue avec les Geforce 8800 de Nvidia en 2007 sous le nom de GL_NV_transform_feedback (http://www.opengl.org/registry/specs...m_feedback.txt). Comme elle a été approuvée par AMD/ATI, elle a été promue en "EXT", et c'était avant OpenGL 3.1 (et même OpenGL 3.0...) : http://www.opengl.org/registry/specs...m_feedback.txt

  12. #12
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : septembre 2005
    Messages : 1 386
    Points : 2 787
    Points
    2 787

    Par défaut

    Effectivement :o. Merci des infos =)

  13. #13
    Membre averti
    Homme Profil pro
    Game Graphics Programmer
    Inscrit en
    août 2006
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Game Graphics Programmer
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : août 2006
    Messages : 408
    Points : 385
    Points
    385

    Par défaut

    Quand je disais extensions GL3.1 pures, je parlais de toutes les extensions non-obsolètes présentes dans cette version, pas uniquement les nouvelles extensions introduites avec cette revision.

Discussions similaires

  1. Série de tutoriels sur la programmation d'un émulateur
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 1
    Dernier message: 13/06/2014, 13h09
  2. Série de tutoriels sur la théorie des collisions
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 3
    Dernier message: 07/04/2014, 13h12
  3. Nouvelle série de tutoriels sur Project Anarchy disponible en français sur Developpez.com
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 0
    Dernier message: 11/10/2013, 20h14
  4. A propos de la série de tutoriels Interactive Raytracing
    Par Matthieu Brucher dans le forum Contribuez
    Réponses: 14
    Dernier message: 18/06/2009, 07h37

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