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 :

OpenGL 3.x : tutoriaux, liens


Sujet :

OpenGL

  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 : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Points : 2 640
    Points
    2 640
    Par défaut OpenGL 3.x : tutoriaux, liens
    Bonsoir à tous =)

    Depuis que OpenGL 3.0 et 3.1 sont sorties, pas mal de choses ont changées, notamment tout ce qui est pipeline fixe, puisque tout à été déprécié.

    J'ai commencé à m'y plonger, et j'avoue que c'est assez déroutant au début. Ne plus pouvoir utiliser gl_Vertex, ni gl_ModelViewMatrix, mais devoir tout passer comme variables uniform ou attributes, c'est assez déstabilisant.

    Je propose donc que l'on récapitule ici différents tutoriaux ou petits bouts de codes sur les nouveautés apportés par OpenGL 3.0.

    • Déjà, les spécifications :


    OpenGL 3.1 Spécifications
    GLSL 1.40 Spécifications


    • Vertex Array Objects

    Un lien sur la nouvelle extension "Vertex Array Object" : Vertex Array Objects. Sur ce que j'ai compris, cette extension ressemble un peu aux display lists, mais bien plus moderne. En gros, au lieu de faire un glBindBuffer (...), glEnableClientState (...), glVertexAttrib (...) à chaque frame, on le fait qu'une fois avec le VAO.
    Les spécifications pour plus de détails : ici.

    Voir la page 2 pour plus d'infos.

    • Bindless


    Une extension de nVidia pour limiter les échanges CPU<->GPU lors de la mise à jour des variables des shaders ici

    Si vous avez d'autres liens de ce genre, n'hésitez pas =).

  2. #2
    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 : 392
    Points
    392
    Par défaut
    très bonne initiative!

    Ma pierre à l'édifice: création d'un contexte forward compatible pur avec SDL

    au final, le plus important c'est de créer un contexte de rendu (render context) avec wglCreateContextAttribs

    grosso modo:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    GLint attribs[] =
    {
    WGL_CONTEXT_MAJOR_VERSION_ARB, 3,
    WGL_CONTEXT_MINOR_VERSION_ARB, 0, //peut être 1 aussi, ca ne change rien
    WGL_CONTEXT_FLAGS_ARB, WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB, //ce bit est important pour enlever la foncitonalité obsolète
    0 //fin de liste
    HGLRC myRC = wglCreateContextAttribsARB(displayContext, 0, attribs);
    };

    de mon côté, je cherche une liste des extensions et/ou fonctions restantes au GL3.x pur histoire que je puisse me créer une entête spécialisée moi-même (genre avec glew: make custom) qui me donnera des erreurs dès la compilation (et non pas à l'execution).


    EDIT: je rajoute quelques idées de design d'un système basé sur GL3.x:
    - utiliser toujours les mêmes noms pour les mêmes types de variables:
    même s'il n'y a plus de gl_Vertex, rien ne vous empêche de donner toujours le même nom aux attributs d'un même type, genre avVertex, avNormal, umPosition, umPositionInv, etc...
    ainsi vous éviterez d'avoir un overhead gérant la sémantique pour vos variables du shader.
    - si vous voulez plus de liberté à ce j'ai écrit juste au-dessus, ils vous faudra un système pouvant d'une facon ou autre établir un "lien sémantique" entre les VBOs/VAOs passés au shader et la variable attribut du shader. idem pour les uniformes aussi. cf. ShaderX4, 5 ou 6 pour un article plus coimplet là-dessus.

  3. #3
    Membre éclairé Avatar de Julien Bodin
    Homme Profil pro
    Devops
    Inscrit en
    Février 2009
    Messages
    474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Devops
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 474
    Points : 843
    Points
    843
    Par défaut
    Concrètement, est-ce que ça vaut encore le coup de lire tous les tutoriels relatifs aux versions précédentes d'openGL ?
    Je pense à tous les tutoriels de NeHe par exemple. Tout ceci est-il devenu obsolète ?

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 382
    Points : 4 936
    Points
    4 936
    Par défaut
    non c'est pas obsolète, les versions d'OpenGL < 3 ont l'avantage d'afficher extrêmement rapidement des petites scènes sans devoir forcément se prendre la tête avec les vbo ou autres concepts avancés du au fonctionnement particuliers d'un gpu.

  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 : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Points : 2 640
    Points
    2 640
    Par défaut
    Kurisu > C'est Shader X5, l'article s'appelle "Transparent Data Shader Binding" ou quelque chose comme ça ^^. J'aime beaucoup l'idée et, avec les template et std::tr1::function, il y a moyen de faire bien plus propre que ce qui est dans le bouquin .

    J'ai pensé également à ce ocup d'avoir une notation unique pour les variables, ça doit permettre de pas mal simplifier ...

    julien.1486 > Les tutoriaux de NeHe sont, je trouve, assez mal écrits (surtout le code, c'est pas spécialement propres) et, effectivement, tout ce qui y est décrit est déprécié (enfin, une grande partie) mais, comme l'a souligné stardeath, c'est assze utile pour des petites scènes ou pour du test puisque, dans OGL 3.0, tout ce qui est glBegin()/glEnd() est déprécié.

  6. #6
    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 : 392
    Points
    392
    Par défaut
    D'un point de vue "historique", ca peut servir de connaître le 'vieux' OpenGL. Je pense notamment au cas concret de devoir supporter une appli pre-GL3 ou de devoir en porter vers GL3. Aussi pour développer sur iPhone/Android, ca peut être utile.

    Sinon, si vous voulez (re-)commencer avec GL3, alors autant se concentrer sur ce qui n'est pas obsolet. Vous serez du coup aussi plus proche d'un GLES 2.x (ou 3.x l'année prochaine), idéal pour un iPhone HD...

    Puis, les vieilles fonctionalités, ca peut facilement se reimplementer sur GL3 -> cherchez le project GLIM.

  7. #7
    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 : 392
    Points
    392
    Par défaut
    2 liens intéressants:

    http://www.amazon.de/exec/obidos/ASI...A3JWKAKR8XB7XF
    Beginning OpenGL Game Programming SECOND EDITION qui couvre GL3.x. Si quelqu'un pourrait m'en donner un avis, ca serait intéressant.

    http://www.opengl.org/discussion_boa...244439&fpart=2
    http://www.opengl.org/registry/api/gl3.h
    La discussion et l'entête GL3.h (alpha) qui ne contient plus les fonctions obsolètes.

  8. #8
    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 : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Points : 2 640
    Points
    2 640
    Par défaut
    Citation Envoyé par Kurisu Voir le message
    2 liens intéressants:

    http://www.amazon.de/exec/obidos/ASI...A3JWKAKR8XB7XF
    Beginning OpenGL Game Programming SECOND EDITION qui
    J'ai la première édition, il est excellent pour débuter. Celui-ci seraz surement le premier bouquin à couvrir OGL3, donc je le conseille d'avance =)/.

  9. #9
    Membre expérimenté

    Profil pro
    Programmeur
    Inscrit en
    Août 2002
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Août 2002
    Messages : 1 091
    Points : 1 679
    Points
    1 679
    Par défaut
    Citation Envoyé par stardeath Voir le message
    non c'est pas obsolète, les versions d'OpenGL < 3 ont l'avantage d'afficher extrêmement rapidement des petites scènes sans devoir forcément se prendre la tête avec les vbo ou autres concepts avancés du au fonctionnement particuliers d'un gpu.
    Oui mais si tu ne fais que "des petits trucs" ton avis ne devrait pas compter dans le design de l'API et tu pourrais même te contenter d'une surcouche légère au dessus pour ne pas avoir à maitriser les shaders, vbos, fbos etc. Les gens font des petits trucs avec DirectX aussi et il n'y a pas tout ce bagage historique donc c'est probablement un faux problème.

    La seule vraie raison pour laquelle les parties obsolètes d'OGL n'ont pas disparu des nouvelles specs n'ont pas à voir avec les amateurs qui veulent faire des petits trucs mais plutot les grosses applications qui ont du code datant de cette époque et qui ne veulent pas dépenser d'argent pour le changer (forcer les gens à dépenser de l'argent pour passer à une nouvelle API c'est l'opposé du "client est roi" même si c'est souvent l'approche en informatique).

    Mon site web | Mon blog | Mes photos | Groupe USA
    > BONJOUR, JE SUIS NOUVEAU SUR CE FORUM
    > presse la touche caps lock, stp
    > OH.. MERCI C EST BEAUCOUP PLUS FACILE COMME CA

  10. #10
    Expert confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 382
    Points : 4 936
    Points
    4 936
    Par défaut
    Citation Envoyé par LeGreg Voir le message
    Oui mais si tu ne fais que "des petits trucs" ton avis ne devrait pas compter dans le design de l'API et tu pourrais même te contenter d'une surcouche légère au dessus pour ne pas avoir à maitriser les shaders, vbos, fbos etc. Les gens font des petits trucs avec DirectX aussi et il n'y a pas tout ce bagage historique donc c'est probablement un faux problème.

    La seule vraie raison pour laquelle les parties obsolètes d'OGL n'ont pas disparu des nouvelles specs n'ont pas à voir avec les amateurs qui veulent faire des petits trucs mais plutot les grosses applications qui ont du code datant de cette époque et qui ne veulent pas dépenser d'argent pour le changer (forcer les gens à dépenser de l'argent pour passer à une nouvelle API c'est l'opposé du "client est roi" même si c'est souvent l'approche en informatique).
    le but de ma réponse n'était pas pour réagir sur la disparition ou pas des parties obsolètes de l'api opengl, mais plutôt répondre à julien.1486 qui s'inquiétait de peut être lire des tutos inutiles (en particulier ceux de NeHe).

    de mon expérience en programmation graphique, je suis très content d'avoir commencé par opengl 1.2; comprendre l'utilisation des matrices de transformation, des lumières ne nécessite pas forcément de devoir comprendre comment remplir un vbo ni même de savoir ce qu'est un shader.

    maintenant il est clair que les vbo et shaders offrent une souplesse inégalée mais quid du débutant qui se contentera surement d'afficher 3 sphères et 2 lumières.

    en bref, je ne conteste en aucun cas les ajouts/suppressions/améliorations d'opengl ^^

  11. #11
    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 : 392
    Points
    392
    Par défaut
    perso, même si j'ai moi aussi commencé par les tutos de NeHe, je ne peux pas vraiment dire que ceux-ci soient un exemple de propreté de code à suivre. Puis, OpenGL n'est vraiment qu'une couche minime d'un moteur graphique.
    Il y a des tutos qui sont bien meilleurs, genre gametutorials.com ou l'OpenGL Superbible, et côté graphismes, lex exemples et tutos du SDK de DirectX.

    Bon, ceci dit, je suis sûr qu'un débutant en OpenGL peut comprendre des tutos orientés GL3 avec shaders, VAO et tout. Ca pourra même leur éviter de prendre de mauvaises habitudes. D'autant plus que configurer le pipeline fixe me semble bien plus dur que de simplement utiliser un petit shader.

  12. #12
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 318
    Points : 291
    Points
    291

  13. #13
    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 : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Points : 2 640
    Points
    2 640
    Par défaut
    Merci =). En parlant de bindable uniform, ça a été généralisé dans OpenGL avec l'extension GL_ARB_uniform_buffer (specs). Ca peut-être pas mal comme extension, notamment quand on doit envoyer les matrices :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    uniform Matrices
    {
        mat4x4 ModelView;
        mat4x4 ModelViewProjection;
        mat3x3 Normal;
    }
    Et hop avec un seul appel visiblement on peut tout setter .

  14. #14
    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 : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Points : 2 640
    Points
    2 640
    Par défaut
    J'ai trouvé deux pages très très intéressantes :

    Erreurs récurrentes en GLSL
    Erreurs récurrentes avec OpenGL

    Notamment, il est écrit qu'il faut dorénavent utiliser uniquemet glGenerateMipmaps pour gérer des mipmaps avec OGL 3.0. Un autre truc aussi, qui évitera beaucoup de maux de têtes inutiles :

    If you want to render to texture via the GL_EXT_framebuffer_object extension, quite a few people make the same mistake as explained above for the case of "Creating a Texture". They leave glTexParameteri in the default states yet they don't define mipmaps. If you want mipmaps, in this case, once the texture is created (glTexImage2D(....., NULL)), then call glGenerateMipmapsEXT(GL_TEXTURE_2D) or glGenerateMipmapsEXT(GL_TEXTURE_3D) or glGenerateMipmapsEXT(GL_TEXTURE_CUBE_MAP).
    If you don't, then you get GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT or GL_FRAMEBUFFER_UNSUPPORTED_EXT.
    EDIT ; un truc qui m'a interpellé aussi :

    Unsupported formats #4
    glTexImage2D(GL_TEXTURE2D, 0, GL_RGBA8, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, pixels);

    The above is almost OK. The problem is the GL_RGBA. On certain platforms, the GPU prefers that red and blue be swapped (GL_BGRA).
    If you supply GL_RGBA, then the driver will do the swapping for you which is slow.
    On which platforms? Making a list would be too long but one example is x86+Windows and x64+Windows.

  15. #15
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 318
    Points : 291
    Points
    291
    Par défaut
    J'ai une question à la con à poser, comment utiliser les shader glsl 1.4
    J'ai remarqué que je n'avais que les shader 1.2 et je n'ai pas trouvé d'info sur le sujet.
    Pour OpenGL 3.1 j'ai mis la dernière version de glew pour avoir les dernières extension mais ça n'a rien changé.

  16. #16
    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 : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Points : 2 640
    Points
    2 640
    Par défaut
    Il faut :

    - Que ta carte soit compatible GL3.xx (en fait, je ne sais pas trop, certaines extensions et GLSL 1.30 étant visiblemetn compatibles sur les cartes plus anciennes, seules certaines nouvelles extensions ne le seraient pas, à vérifier).

    - Mettre à jour tes drivers.

    - Créer un contexte OpenGL 3.0

    - Ajouter un #version 130 dans tes shaders

    OpenGL3.1 n'est pas encore supporté chez ATi (uniquement chez nVidia).

  17. #17
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 318
    Points : 291
    Points
    291
    Par défaut
    Citation Envoyé par Bakura Voir le message
    Il faut :

    - Mettre à jour tes drivers.

    - Créer un contexte OpenGL 3.0

    - Ajouter un #version 130 dans tes shaders

    OpenGL3.1 n'est pas encore supporté chez ATi (uniquement chez nVidia).
    comme carte j'ai une NVidia 8700M GT
    Pour le fenêtrage j'utilise SFML. Je vais regarder de ce coté.

  18. #18
    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 : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Points : 2 640
    Points
    2 640
    Par défaut
    Je ne sais pas si elle est compatible, je pense que oui.

    Pour SFML, il faut que tu télécharges la bêta 2.0 sur le SVN, c'est la seule qui créé un contexte OGL3.0. Sinon, faut que tu mettes les mains dans le cambouis ^^.

  19. #19
    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 : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Points : 2 640
    Points
    2 640
    Par défaut
    J'ai pas trop trouvé de doc concernant tout ce qui est glVertexAttribPointer, et les VAO. J'ai essayé un truc, j'ai pas pu testé, mais c'est ma compréhension des VAO (j'aime beaucoup cette nouvelle extension, ça rend le code vraiment plus clean, je trouve), pensez-vous que je me trompe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    // Exemple, notre vertex shader a deux attributs :
    in vec3 Position;
    in vec2 TextureUV;
     
    // Nous avons un VBO contenant à la fois les positions et les coordonnées de texture séquentiellement, comme ceci :
    // pos.x pos.y pos.z uv.s uv.t pos.x pos.y pos.z uv.s uv.t ...
     
    // A l'initialisation, on récupère l'identifiant des attributs
    int indexPosition = glGetAttribLocation (program, "Position");
    int indexTextureUV = glGetAttribLocation (program, "TextureUV");
     
    // Toujours à l'initialisation (c'est là l'avantage des VAO), on créé le VAO, on le bind, et on fait tous les appels
    // d'envoie d'attributs
    vertexArrayObject.Bind ();
     
    // On bind le VBO contenant les données
    vertexBuffer.Bind ();
     
    // On active le tableau d'attribut correspondant, et on envoie les données
    glEnableVertexAttribArray (indexPosition);
    glVertexAttribPointer (indexPosition, 3, GL_FLOAT, GL_FALSE, 0, 0);
    glEnableVertexAttribArray (indexTextureUV);
    glVertexAttribPointer (indexTextureUV, 2, GL_FLOAT, GL_FALSE, 3, 0);
     
    // Unbind le VBO
    vertexBuffer.Unbind ();
     
    // On désactive les tableaux d'attributs
    glDisableVertexAttribArray (indexPosition);
    glDisableVertexAttribArray (indexTextureUV);
     
    // Enfin on unbind le VAO
    vertexArrayObject.Unbind ();
     
     
    // Maintenant, chaque fois qu'on voudra dessiner, on aura juste à écrire :
     
    vertexArrayObject.Bind (); // A enregistrer tout ce qu'on lui a dit à l'initialisation
    glDrawElements (...);
    vertexArrayObject.Unbind ();

  20. #20
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 318
    Points : 291
    Points
    291
    Par défaut
    Citation Envoyé par Bakura Voir le message
    J'ai pas trop trouvé de doc concernant tout ce qui est glVertexAttribPointer, et les VAO. J'ai essayé un truc, j'ai pas pu testé, mais c'est ma compréhension des VAO (j'aime beaucoup cette nouvelle extension, ça rend le code vraiment plus clean, je trouve), pensez-vous que je me trompe :
    Je ne sais pas si tu te troupe mais du code plus clean avec moins de manipulation pour chaque affichage c'est mieux. Ca me plait aussi

    Il y a aussi un truc pas mal pour économiser des appels de textures, ce sont les texture array. Ca permet de regrouper dans un tableau les textures d'un même model: color bump, gloss height map... Un seul bind de texture au lieu de 4!
    Je l'ai mis en place, c'est facile à utiliser malgré quelques restrictions d'utilisation.

    texture array + VAO ça doit être bien puissant

Discussions similaires

  1. Problème lien librairie libjpeg.lib OpengL
    Par kev42100 dans le forum Développement 2D, 3D et Jeux
    Réponses: 5
    Dernier message: 14/02/2008, 10h44
  2. Probleme edition des liens OpenGL
    Par Mr_Glopinous dans le forum wxWidgets
    Réponses: 1
    Dernier message: 04/10/2007, 20h13
  3. lien tutoriaux php
    Par heero dans le forum Langage
    Réponses: 4
    Dernier message: 29/10/2005, 21h59
  4. Question: Liens entre OpenGL et Internet Explorer
    Par maitre hibou dans le forum OpenGL
    Réponses: 6
    Dernier message: 03/06/2004, 13h07

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