Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

Liens connexes

Dépêche modérée par

Dépêche éditée par

: La spécification de OpenGL 2.0 enfin en version finale

Posté par Patrice Mandin (page perso, ). Modéré le 15 août 2004.
OpenGL est une API créée par Silicon Graphics à partir de l'API IrisGL qui lui était propre. Cela dans le but d'avoir une API unique pour la programmation d'applications graphiques.

A l'occasion du salon Siggraph 2004 (salon de l'image de synthèse, aux USA), a été présenté aux développeurs la version finale de ce qui sera présent dans OpenGL 2.0.

Après plusieurs mois de travail, l'ARB (architecture review board, qui dirige l'évolution du standard OpenGL) a entériné les différentes propositions qui lui ont été faites pour inclusion dans cette nouvelle version de l'API.

> Lire la dépêche (35 commentaires, moyenne: 3,4).  

L'évolution majeure de cette API concerne les derniers effets à la mode dans les cartes vidéos, à savoir les "shaders". C'est à dire des programmes exécutés par le GPU (processeur de la carte graphique), et modifiant le rendu des polygones affichés. Deux avantages: d'une part on décharge le CPU de ces calculs, et d'autre part, le rendu est plus réaliste (un polygone n'est plus plat comme avec du bump mapping, mais est réellement gondolé visuellement).

Auparavant, l'utilisation de ces capacités devait se faire au travers des fameuses extensions OpenGL différentes selon les constructeurs qui l'implémentaient spécifiquement pour leurs cartes, de manière incompatibles entre elles. Maintenant, tout le monde utilisera une interface unique pour gérer ces "shaders".

- Multiple render targets:
Pour ces "shaders", ceux-ci pourront effectuer leur rendu dans différents buffers, en une seule passe.

- Non power of two textures:
Les dimensions des textures n'ont plus à être des puissances de 2 (là aussi présentes sous formes d'extensions pour certaines cartes vidéos).

- 2-sided stencil:
Deux opérations différentes pourront être effectués sur le tampon de stencil, l'une sur les faces avant, l'autre sur les faces arrières. C'est utilisé pour les ombres volumétriques, comme dans Doom 3 par exemple.

- Point sprites:
C'est utilisé pour dessiner les effets de particules, ou l'on a beaucoup d'objets identiques à dessiner.

L'un des autres intérêts de OpenGL 2.0 est de définir de cette manière un ensemble de fonctions qui seront à coup sûr supportés par les cartes vidéos et leurs drivers, et donc simplifiera le travail des programmeurs, qui n'auront plus à gérer autant d'extensions pour utiliser les cartes actuelles. C'est particulièrement important sous Windows, où l'on n'a accès directement qu'aux fonctions OpenGL 1.1, tout le reste devant s'effectuer par l'usage des extensions.

Et c'est plus simple d'écrire 'OpenGL 2.0 minimum' sur la boîte de DukeQuake 12, car on sait qu'il tournera bien sur une carte qui le supporte (ça c'est pour le côté marketing de la chose).

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

[+] un peu en retard pour doom3...

Posté par paul brauner () le 15/08/2004 à 12:27. (lien). Évalué à -2.

mais c'est la fête o// \\o \o/

details

Posté par tuan kuranes (page perso, ) le 15/08/2004 à 12:48. (lien). Évalué à 14.

" d'autre part, le rendu est plus réaliste (un polygone n'est plus plat comme avec du bump mapping, mais est réellement gondolé visuellement)"

Ca, c'est juste unes des utilisations des shaders, plus precisement ici, des vertex shaders. C'est la technique dite du "displacement mapping".

Les shaders sont divises en deux parties : une pour traiter les vertex (les points des polygones) et une pour les pixels, donc les effets de textures.

L'avantage d'OpenGL 2.0, c'est aussi de presenter un langage haut niveau (genre C) pour programmer les shaders.

Avant fallait passer par de l'assembleur, qui restait tres simple touttefois. Ou par des langages appartenant a ATI ou Nvidia. Ici le nouveau langage GLSL est de haut niveau et le meme pour toutes les cartes supportant OpenGL 2.0.

OpenGL 2.0 est un peu decevant car juste c'est juste une compilation des differentes extensions... Pas de nouveautes revolutionnaires, donc.

Un OpenGL plus modulaire, et facile a decliner aurait ete bien.
(plutot que plusieurs openGL separes : OpenGL OpenGL ES, OpenML, OpenVG, OpenMAx, etc... cf http://www.khronos.org/(...))

ET les autres SE ?

Posté par Bruce Le Nain (Jabber id, page perso, ) le 16/08/2004 à 08:17. (lien). Évalué à 4.

Linux, BSD et les autres ? Ça va aider au développement des applis 3D ? Est-ce que ça permettra de développer plus facilement des pilotes de cartes video ?

Et les brevets Microsoft?

Posté par Patrix (page perso, ) le 16/08/2004 à 09:13. (lien). Évalué à 2.

Quelqu'un sait-il où on en est avec les droits revendiqués par Crimosoft sur OpenGL?
Rappels:
http://www.zdnet.fr/actualites/technologie/0,39020809,2119029,00.ht(...)
http://linuxfr.org/2002/07/14/8969.html(...)

Revenir en haut de page