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

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Le groupe Khronos annonce la sortie des spécifications d'OpenGL 3.2 et de son langage de shaders GLSL 1.5

Le , par raptor70

23PARTAGES

1  0 
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 ?

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de vintz72
Membre averti https://www.developpez.com
Le 04/08/2009 à 9:56
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)
1  0 
Avatar de stardeath
Expert confirmé https://www.developpez.com
Le 04/08/2009 à 13:11
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.
1  0 
Avatar de Bakura
Rédacteur https://www.developpez.com
Le 04/08/2009 à 20:49
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 .
1  0 
Avatar de Syl_20
Membre actif https://www.developpez.com
Le 08/08/2009 à 18:13
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
1  0 
Avatar de oxyde356
Membre éprouvé https://www.developpez.com
Le 09/08/2009 à 4:44
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 ?
1  0 
Avatar de Bakura
Rédacteur https://www.developpez.com
Le 09/08/2009 à 21:17
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).
1  0