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

  1. #1
    Expert éminent
    Avatar de raptor70
    Inscrit en
    septembre 2005
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : septembre 2005
    Messages : 3 173
    Points : 6 796
    Points
    6 796

    Par défaut Le groupe Khronos annonce la sortie des spécification d'OpenGL 3.2

    Le groupe Khronos annonce la sortie des spécification d'OpenGL 3.2

    Aujourd'hui, lors du premier jour de la convention SIGGRAPH09, le groupe Khronos a annoncé la sortie des nouvelles spécifications de son API graphique 2D et 3D, OpenGL, dans sa version 3.2. Ils en ont également profité pour présenter les nouvelles spécifications de leur langage de shader GLSL 1.5.

    On notera principalement qu'ils veulent simplifier et améliorer le portage d'application DirectX sous OpenGL. Mais également augmenter les performances des vertex array notamment pour les partages de ressources entre CPU et GPU ou avec le multithreading CPU. Ils ont également amélioré le pipeline programmable en incluant plus précisément les geometry shader. On trouvera également des améliorations sur la qualité visuelle des cube map.

    Vous pourrez trouver l'intégralité des changements dans les nouvelles spécifications :


    Que pensez vous de ces nouveautés ?
    Mes Tutos DirectX, OpenGL, 3D : http://raptor.developpez.com/

  2. #2
    Membre actif Avatar de vintz72
    Profil pro
    Inscrit en
    octobre 2005
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : octobre 2005
    Messages : 154
    Points : 282
    Points
    282

    Par défaut

    Il faudrait surtout que rapidement les OS et les drivers suivent les specs pour espérer faire de l'ombre à Direct 3D (pour les jeux j'entends)

  3. #3
    Membre expert

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

    Informations forums :
    Inscription : février 2006
    Messages : 2 054
    Points : 3 274
    Points
    3 274

    Par défaut

    Citation Envoyé par vintz72 Voir le message
    Il faudrait surtout que rapidement les OS et les drivers suivent les specs pour espérer faire de l'ombre à Direct 3D (pour les jeux j'entends)
    sans direct3d, opengl ne serait pas à ce niveau aujourd'hui, rien qu'à lire le papier sur les specs pour se rendre compte de pas mal de ressemblance.

    et qu'on aime ou pas microsoft il faut reconnaitre que l'équipe sur dx fait un travail assez monstrueux, les api dx 9 et 10 sont de très bonnes et dx 11 devrait continuer sur cette lancée.

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

    Informations professionnelles :
    Activité : Étudiant

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

    Par défaut

    Je suis content de la direction dans laquelle va OpenGL, 3 releases en quoi... 1 an ? C'est assez énorme .

    D'après ce que j'ai pu lire ci-et là, l'extension GL_ARB_sync semble sympa. Personnellement, j'aime bien : GL_ARB_Draw_elements_base_vertex.

    Avant, lorsqu'on voulait par exemple dessiner un mesh composé de plusieurs sous-meshs, on pouvait par exemple avoir un vertex buffer global qui contenanit les vertices de tous les sous-meshs puis, pour chaque sous-mesh, un index buffer. Grâce à cette extension, on pourra étendre le concept et avoir un unique index buffer pour tous les sous-meshs, puis utiliser cette fonction pour faire un offset sur les indices. Ainsi si, pour dessiner le deuxième sous-mesh, on doit commencer à l'indice 100, on pourra le spécifier dans la fonction. Ca va diminuer encore le nombre de binding et simplifier pas mal .

  5. #5
    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 : 276
    Points
    276

    Par défaut

    Ce que j'aimerai, c'est qu'il y ai des variables uniforme globales à tous les shaders.
    Parce qu'avec la disparition des variables type gl_LightSource[x].position par exemple avant quand la lumière bougeait, j'avais juste a faire un glLightfv(GL_LIGHT0,GL_POSITION,Position); et tous mes shaders avaient la nouvelle position de la lumière. Maintenant c'est galère il faut que je déclare manuellement la variable dans chaque shader, et si la lumiere bouge il faut que je renseigne manuellement chaque shader. Bref super galère
    Sans parler de la gestion des matrices qui était totalement transparente avant

    C'était mon coup de gueule contre LE gros point noir selon mois des nouveautés d'openGL 3.x
    A moins qu'il y ait super technique qui m'est échappée

  6. #6
    Membre éprouvé Avatar de oxyde356
    Homme Profil pro
    Ingénieur Recherche Imagerie
    Inscrit en
    février 2006
    Messages
    798
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Recherche Imagerie

    Informations forums :
    Inscription : février 2006
    Messages : 798
    Points : 1 058
    Points
    1 058

    Par défaut

    Citation Envoyé par Bakura Voir le message
    Avant, lorsqu'on voulait par exemple dessiner un mesh composé de plusieurs sous-meshs, on pouvait par exemple avoir un vertex buffer global qui contenanit les vertices de tous les sous-meshs puis, pour chaque sous-mesh, un index buffer. Grâce à cette extension, on pourra étendre le concept et avoir un unique index buffer pour tous les sous-meshs, puis utiliser cette fonction pour faire un offset sur les indices. Ainsi si, pour dessiner le deuxième sous-mesh, on doit commencer à l'indice 100, on pourra le spécifier dans la fonction. Ca va diminuer encore le nombre de binding et simplifier pas mal .
    Euh si j'ai bien compris ce que tu voulais dire et bien je dirais que on pouvait déjà avant
    glDrawElements (et glDrawRangeElements) permettent de faire ça.
    Pour mon dernier projet j'avais des objets (pouvant être des triangles, lignes et points, mais ça aurait aussi pu être des mesh et sous-mesh) contenant une liste de vertex et une liste d'index. Je stockais tout dans un VB et un IB et je gardais en mémoire l'offset des lignes et l'offset des points (les triangles avaient toujours l'offset 0) et je modifiais le derniers paramètre de glDrawElements en fonction de cette offset. C'est bien ça qui t'interresse non ?

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

    Informations professionnelles :
    Activité : Étudiant

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

    Par défaut

    Alors alors...

    oxyde > Effectivement glDrawRangeElements permet de faire la même chose, quoique avec un paramètre en plus. Je ne savais pas, il faudrait se renseigner sur ce qu'apporte la nouvelle extension alors...

    Syl 20 > C'est effectivement un peu plus complexe, mais tu peux facilement retranscrire ce phénomène. Il y a un article sur Shader X5, que je te décris rapidement (avec les uniform buffer object, on peut faire des trucs encore plus sympas).

    Sans entrer dans les détails de l'article, tu peux simuler ce ocmportement avec des "variables dynamiques" (par exemple la position d'une lampe). Tu aurais par exemple un "manager" qui associerait un nom de variable (par exemple "LightPosition" avec un pointeur de fonction (ça se fait assez facilement avec std::bind). Quand tu souhaites mettre à jour la variable, tu récupères dans le manager le pointeur de fonction associée au nom ("LightPosition", "WorldViewMatrix"...) et tu récupères la matrice, la position (avec les template tu peux faire un truc très modulaire). Bien sur ceci implqiue que tu ais a chaque fois une fonction GetLightPosition, GetWorldViewMatrix...

    L'article décrit une technique un peu plus modulaire, si ça t'intéresse vraiment je peux te faire un petit résumé, j'avais fait ça une fois (le soucis,c 'est que j'ai pas réussi à bien interfacer ça avec les uniform buffer object).

Discussions similaires

  1. Réponses: 7
    Dernier message: 07/08/2012, 16h35
  2. Sortie des spécifications d'OpenCL 1.2
    Par gbdivers dans le forum OpenCL
    Réponses: 0
    Dernier message: 16/11/2011, 00h47
  3. AMD annonce la sortie des premières puces hybrides
    Par Gordon Fowler dans le forum Actualités
    Réponses: 5
    Dernier message: 19/11/2009, 10h55
  4. Réponses: 0
    Dernier message: 03/08/2009, 19h39

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