OpenGL 3 VS DirectX 11 ?
La période actuelle est faste pour le petit monde des technologies 3D. Le Siggraph a en effet été l’occasion de la présentation très attendue et simultanée des futures versions des API phares : OpenGL 3 et DirectX 11. Un nouveau combat au sommet entre les deux favoris des programmeurs de jeux ? Non, et pour cause.
33
Commentaires
Lire plus
Le CPU-GPU d’Intel retardé
- Le supercalculateur Blue Waters finalisé
- Le Nehalem aime l’overclocking
- Une version light de la Radeon 4850
- Des partenaires NVIDIA en moins
- Les spécifications des nouveaux iMac ?
- 440 000 portables Vaio rappelés par Sony (MAJ)
- Asus renforce l’alimentation de sa Radeon 4870
- NVIDIA : les chipsets MCP7A et 79 arrivent
- L'Asus N10 et l'Inspiron 910 ont un prix
Test : Gigabyte 9600 GT fanless (HomeMedia)
- L'Akoya Mini de Medion chez Aldi, plus cher que chez Orange
- Une 9800GT pour Neo chez Asus
- Orange débride son réseau 3G+
- Toutes les plus belles babes de l'IFA (Tom's Guide)
- Gigaframe : les nouveaux cadres photo de Toshiba
- Acer : deux millions de netbooks en 3 mois
- Samsung pourrait racheter Sandisk
- Test : HP TouchSmart IQ500 (Les Numériques)
- LG va graver les Blu-ray en 8x
Liens commerciaux
Publicité





Ce passage m'interpelle... Le fait que les GPU soient DirectX 9 signifie-t-il que les développeurs utilisent cet API pour développer des jeux X360 et, plus étonnant, PS3 ?
Ca veut surtout dire que le support total de Dx10 par les developpeurs est d'autant ralenti car confiné au seulm jeu sur PC avec Vista.
Un GPU Dx9, est purement incompatible avec l'API Dx10. De fait un developpeurs voulant faire autre chose qu'un jeu pour Vista est obligé de faire une version tournant sur un GPU type DX9.. en plus de celle pour Dx10 qui ne sera utilisé que par un nombre plus limité de personne.
Resultat l'usage de Dx10 par les developpeurs est d'autant plus bridé en quelque sorte ...
Ce passage m'interpelle... Le fait que les GPU soient DirectX 9 signifie-t-il que les développeurs utilisent cet API pour développer des jeux X360 et, plus étonnant, PS3 ?
Dans ce cas là je me permets un petit abus de langage en utilisant le terme "DirectX 9" pour désigner un niveau de fonctionnalités. J'aurai du dire plus précisément de "les deux consoles HD du marché sont équipées de GPU Shader Model3"
Pour la programmation des deux machines, la Xbox 360 est en effet programmé en utilisant une version customisée de DirectX 9. la PS3 dispose d'OpenGL ES couplé au Cg de NVIDIA comme langage de shaders mais en pratique c'est très peu utilisé par les développeurs qui préfèrent utiliser l'API de plus bas niveau de Sony : libgcm qui offre de biens meilleures performances.
L'APi n'a au final que peu d'importance, la première chose que font les développeurs est souvent de masquer les appels derrière une couche d'abstraction. Par contre le niveau de fonctionnalités est important et là ils se focalisent sur le Shader Model 3 et ses limites et se contentent de petits ajouts cosmétiques pour la version DirectX 10 sur PC.
Je viens de finir le lire cet article très intéressant.
La conclusion que j'en tire c'est que le développement de l'OpenGL est ralenti par des querelles de poissonniers, tandis que DirectX (on devrait plutôt parler de Direct3D en l'occurrence) avance clairement sur son coté technique sous l'impulsion principale de MS.
Je ne sais pas si c'est une volonté du rédacteur ou la strict transposition des faits, mais on voit bien que quand vous parler de l'OpenGL vous parlez surtout des problèmes qu'il a pour évoluer techniquement (problèmes qu'i n'ont pas grand-chose de techniques), tandis que la partie concernant D3D ne mentionne que des évolutions et futures évolutions techniques de l'API.
On aura beau nous vanter les mérites de l'OpenSource Vs Proprietaire, dans le fait on constate quand même clairement que l'un avance plus vite que l'autre.
Dire que j'ai toujours eu une grosse préférence pour l'OpenGL (rha! les moteurs Quake!), mais force est de constater qu'aujourd'hui à part la CAO/DAO (pour combien de temps encore.. un 3DSmax faisant la part belle à DX par ex), l'OpenGL n'as plus la même aura qu'auparavant. Résultats les fabricants ne se foulent plus trop à fournir des Drivers correct.. et MS à même failli l'évincer de son dernier OS….
Je ne sais pas si c'est une volonté du rédacteur ou la strict transposition des faits, mais on voit bien que quand vous parler de l'OpenGL vous parlez surtout des problèmes qu'il a pour évoluer techniquement (problèmes qu'i n'ont pas grand-chose de techniques), tandis que la partie concernant D3D ne mentionne que des évolutions et futures évolutions techniques de l'API.
Disons que dernièrement c'est malheureusement plus ce genre de choses qui ressort d'OpenGL que des avancées techniques. Comme indiqué dans l'article toutes les fonctionnalités d'OpenGL 3 sont déjà disponibles dans Direct3D 10, nous aurions pu les décrire mais ça aurait fait un peu redite vu que nous avons déjà consacré un article à ces fonctionnalités.
Direct3D a eu son lot de problèmes, mais force est de constater que Microsoft continue d'avancer, l'avantage c'est que leur marché principal est celui des jeux vidéos et contrairement à celui de la CAO ce qui intéresse les joueurs et les développeurs c'est plus les possibilités offertes aux futurs jeux que la compatibilité de jeux datant de 15 ans, ils ont donc plus de marge de manoeuvre.
J'ai commencé à utiliser OpenGL il y a 8 ans et je l'utilise toujours. J'adore cette API mais je peux pas m'empêcher de m'inquiéter vis à vis de son évolution, j'avais beaucoup d'espoir en OpenGL 3 et comme beaucoup j'ai été déçu c'est sans doute ça qui transparaît peut être dans l'article, en tout cas ce n'est pas un parti pris pro-D3D
Attention : OpenGL n'est pas plus OpenSource que Direct3D, tout ce qui est open c'est qu'un fabricant de hardware peut prendre une licence auprès de SGI pour avoir le droit d'en faire une implémentation pour son matériel et se réclamer OpenGL compliant.
en tout cas ce n'est pas un parti pris pro-D3D
Ce n'est pas ce que j'insinuais
Moi aussi je suis déçu par l'évolution d'OpenGL.. ou plutot sa "non-evolution"
Je suis passé du statut de joueur à celui d'utilisateur d'outils de CAO. Et lorsque j'etais joueur j'avais bonheur à choisir les rendus OpenGL dans les jeux le permettant, et bien sur à jouer à un Quake.
A cette epoque on avait droit à de bons drivers OpenGL, depuis ATI et nvidia on clairement mis cette API de coté et pour avoir droit à des drivers OpneGL dignes de ce nom il faut taper dans les drivers pour FireGL ou Quadro. La situation s'étant d'autant plus dégradée avec Vista...
C'est bien que D3D ai évolué dans le bon sens, c'est malheureux qu'OpenGL n'ai pas reussi à suivre le rythme et qu'il soit artificiellement ralenti par des querelles internes.
Attention : OpenGL n'est pas plus OpenSource que Direct3D, tout ce qui est open c'est qu'un fabricant de hardware peut prendre une licence auprès de SGI pour avoir le droit d'en faire une implémentation pour son matériel et se réclamer OpenGL compliant.
Au temps pour moi
J'en étais persuadé.. à tord
(faut dire qu'avec un nom pareil ...)
Mouaif ... Les guéguerres d'API
Par contre qu'en est il du raytracing ? S'il y a rendez-vous à prendre dans le monde de la 3D, c'est bien sur ce sujet qu'il faut focaliser.
La logique de rendu actuellement utilisée arrive à ses limites. Il devient de plus en plus compliqué et couteux en CPU de rajouter des effets X ou Y.
il faut éviter aussi de confondre dévelloppement collaboratif avec libre et opensource.
Tu peut très bien créer un projet libre et prendre toute les décisions toi même.
OpenGL c'est khronos depuis que SGI a cédé ses droits, pour faire une carte gérant l'opengl il n'y a pas besoin de licence.
Pas besoin de licence pour développer des softs, mais besoin de licence pour développer du hard : http://www.sgi.com/products/softwa [...] cense.html
SGI had various licenses in the past
==> ils parlent au passé là
Surtout quand ils disent ça ensuite:
The open sourcing of the S.I. simplified the licensing issue.
SGI had various licenses in the past
==> ils parlent au passé là
Surtout quand ils disent ça ensuite:
[quote]
The open sourcing of the S.I. simplified the licensing issue.
[quote]
Que le passage en OpenSource ai simplifié les choses ne fait pas disparaître pour autant les licences, si ? En tout cas, point de vu développement logiciel y'a rien à demander. Mais point de vu développement matériel, ça me paraît flou maintenant
Toutes les fonctionalités d'OpenGL sont dans DirectX ?
Moi j'ai pas trouvé en directx comment demander à un autre PC d'effectuer le rendu, alors que je n'ai aucun problème pour le faire en opengl.
Que le passage en OpenSource ai simplifié les choses ne fait pas disparaître pour autant les licences, si ?
L'open source repond à une licence propre, il me semble. Je ne suis pas spécialiste mais tu ne peux pas faire un truc sous Open Source et en même temps avec x licences différentes.
L'open source repond à une licence propre, il me semble. Je ne suis pas spécialiste mais tu ne peux pas faire un truc sous Open Source et en même temps avec x licences différentes.
Oui, pour les développements logiciels. Il faut voir la comptabilité des différentes licences.
Mais pour un développement hard, pour inclure les technologies de SGI, apparement il y a toujours une sorte de licence (ou droit d'utilisation)
OpenGL3.0 à clairement loupé le coche... il fallait profiter de l'attachement des joueurs et des dev à DX9 et à WindowsXP pour couler DX10.
Peut importe ce que Microsoft à prévu avec DX11: les joueurs et les acheteurs d'OS de manière générales ne passerons pas massivement à Vista et à DX10 et encore moins DX11... peut être avec Windows 7 si il ne sort pas avec 5ans de retard sur la concurrence comme l'a fait Vista.
Si demain je peux avoir les même jeux que sur XP sous Linux j'arrête de télécharger illégalement les jeux et je cours les acheter (enfin si il ne sont pas à 60€ les 6h de jeux).
Mouaif ... Les guéguerres d'API Par contre qu'en est il du raytracing ? S'il y a rendez-vous à prendre dans le monde de la 3D, c'est bien sur ce sujet qu'il faut focaliser.La logique de rendu actuellement utilisée arrive à ses limites. Il devient de plus en plus compliqué et couteux en CPU de rajouter des effets X ou Y.
Le Raytracing ? Faut pas écouter ce que raconte intel, d'une part c'est loin d'être la panacée et d'autre part on ne sait toujours pas comment rendre ça performant en particulier les problèmes de cohérence des accès mémoire sur les rayons autres que primaires sont un sacré casse tête. Bref c'est loin d'être sûr que le RT s'impose comme LA technique de rendu de l'avenir et si c'est le cas ça ne sera pas avant un moment car contrairement à ce que tu le laisses entendre il n'y a pas de limite au pipeline de rendu actuel : Pixar repose encore largement sur la rastérisation, donc si limite il y a on a de la marge.
De plus je comprends pas bien ta dernière phrase ? En quoi c'est plus compliqué et coûteux en CPU de rajouter des effets, tout se fait sur le GPU de nos jours.
Toutes les fonctionalités d'OpenGL sont dans DirectX ?Moi j'ai pas trouvé en directx comment demander à un autre PC d'effectuer le rendu, alors que je n'ai aucun problème pour le faire en opengl.
Quote moi en entier s'il te plaît
-les tableaux de texture
-le blending sRGB
-les tampon de profondeur 32 bit
-le conditional rendering
-le stream output
-le support natif des entiers dans les shaders
voilà grosso modo tout ce qui est apparu et tout ça c'est une copie quasi conforme de ce qu'on a déjà en Direct3D 10.
Après certaines anciennes fonctionnalités d'OpenGL qui résultent de ses racines workstation sont uniques mais elles ne sont pas très utiles pour les jeux et du coup ne sont en général pas supportées de façon très solide par ATI ou NVIDIA.
peut être avec Windows 7 si il ne sort pas avec 5ans de retard sur la concurrence comme l'a fait Vista.
Gné?
ultrabill> effectivement il y a besoin d'une licence j'ai fait une erreur, mais les bons termes sont ceux affiché sur le site du khronos group -> http://www.khronos.org/opengles/adopters/
En bref tu veux implémenter opengl dans ton logiciel ou sur ta carte c'est gratuit, tu veux pouvoir afficher sa compatibilité opengl sur la fiche produit ou le logo alors tu payes dans les 15k$ pour un test de conformance automatisé et un peer-review. Tout ça sans parler à SGI.
Le Raytracing ? Faut pas écouter ce que raconte intel, d'une part c'est loin d'être la panacée et d'autre part on ne sait toujours pas comment rendre ça performant en particulier les problèmes de cohérence des accès mémoire sur les rayons autres que primaires sont un sacré casse tête. Bref c'est loin d'être sûr que le RT s'impose comme LA technique de rendu de l'avenir et si c'est le cas ça ne sera pas avant un moment car contrairement à ce que tu le laisses entendre il n'y a pas de limite au pipeline de rendu actuel : Pixar repose encore largement sur la rastérisation, donc si limite il y a on a de la marge.
De plus je comprends pas bien ta dernière phrase ? En quoi c'est plus compliqué et coûteux en CPU de rajouter des effets, tout se fait sur le GPU de nos jours.
Sans vouloir tomber dans le troll facile, Pixar communique sur ses techniques de rendu ?
Je suis l'actualité (plus ou moins fidèlement) des travaux pixar depuis le court métrage du bonhomme de neige (années 80), et j'ai cru comprendre que leurs outils de rendu sont basés sur des versions évoluées de Povray.
Du coup, la rasterisation me paraît fort peu probable pour les rendus finaux. Toutefois, pour leur éditeurs de scènes et d'objets 3D, il est fort probable qu'ils fonctionnent avec des Blender-like.
Et pour répondre à ta question, les effets dont je parle sont par exemple le rendu des ombres des personnages et autres décors mobiles ... les moteurs ou les jeux eux-mêmes sont obligés de les calculer spécifiquement alors qu'en raytracing cela fait partie du calcul de base. Souviens toi du temps nécessaire au père de Doom pour mettre au point la gestion des ombres/zones sombres dans Doom3.
Concernant OpenGL3, malgré que je n'y connaisse rien du tout en API, je ne comprend pas pourquoi il ne sorte pas une version OpenGL spécicfique pour les pro et une deuxième version pour les Gamers. Je pense que ça supprimerait les problèmes des anciennes fonctionnalités que certains dev voulaient garder.
Ça ferait juste deux fois plus de boulot.
Sans vouloir tomber dans le troll facile, Pixar communique sur ses techniques de rendu ?
Bien sûr : si ça t'intéresse (mais c'est pas forcément accessible comme lectures) va faire un tour sur ce site tu y trouveras toutes leurs publications.
Du coup, la rasterisation me paraît fort peu probable pour les rendus finaux. Toutefois, pour leur éditeurs de scènes et d'objets 3D, il est fort probable qu'ils fonctionnent avec des Blender-like.
Euh non pas du tout. Leur moteur de rendu s'appelle Renderman il repose principalement sur REYES qui consiste à subdiviser les primitives en micropolygones. Le raytracing n'a été ajouté que récemment, pour répondre aux besoins spécifiques du film Cars et il est utilisé avec parcimonie car il reste très coûteux en temps de calcul et en occupation mémoire : ainsi Pixar utilise un algorithme hybride REYES pour les objets directement visibles et un Raytracer pour les ombres, réflexions et l'occlusion ambiante.
Si même Pixar qui ne travaille pas dans le domaine du temps réel ne peut pas se permettre d'abandonner les avantages de la rastérisation en terme de performance je pense qu'on est pas près de passer au raytracing pour les jeux. Surtout que j'ai toujours du mal avec les soi disant avantages d'un raytracer : des réflexions parfaites ne me semblent pas vraiment un élément indispensable dans les jeux actuels, les approximations qu'on utilise restent suffisantes et dans le feu de l'action je doute qu'on remarque ce genre de choses. Reste les ombres, là encore les shadow maps sont aujourd'hui une bonne approximation. Certes on utilise beaucoup de puissance pour les filtrer correctement mais d'un autre côté si tu n'utilises qu'un rayon pour les ombres tu auras des ombres dures, si tu veux de vraies ombres douces il faut lancer énormément de rayons et là encore je suis pas sûr que le gain de qualité potentiel en vaille le coup par rapport à l'impact énorme que ça aura sur les performances.
Doom 3 a été conçu il y a maintenant 8 ans, à l'époque la carte la plus puissante du marché était une GeForce 2 par conséquent faire un jeu sur l'éclairage dynamique comme l'avait choisi Carmack ne laissait pas beaucoup de choix : les volumes d'ombres ou les shadow maps. Ces dernières n'étaient pas encore supportées (c'est apparu avec la GeForce 3) par conséquent les textures utilisées pour approcher ce résultat n'étaient pas adaptées. De plus les cartes n'avaient pas la puissance pour filtrer correctement ces textures. Du coup Carmack a choisi le premier algo mais il a toujours regretté l'impact sur le CPU de son choix. Aujourd'hui on arrive à une certaine maturité des shadow maps avec des filtres suffisant pour ne plus avoir l'impression d'assister à une bouillie de pixels.
"j'ai cru comprendre que leurs outils de rendu sont basés sur des versions évoluées de Povray"

Tu te trompes lourdement
Renderman = REYES "scanline" rendering algorithm
http://en.wikipedia.org/wiki/Reyes_rendering
New Features in Pixar's RenderMan® Release 11 (novembre 2002) :
***On-Demand*** Ray Tracing
o Reflections and Refractions
o Translucency and Colored Shadows
o Soft Shadow Effects
o Subsets for Grouping and Acceleration
o Arbitrary Ray Probes
+
Indirect Illumination
o Caustics
o Global Illumination\
o Ambient Occlusion
o Image-Based Illumination
RenderMan (depuis la v11) hybrid rendering :
– REYES for everything directly visible
– On-demand ray tracing
"Transformers took anywhere up to 38 hours a frame to render : mostly related to the rotation-camera-scene where the kids met all autobots in the side street for the first time."
Le premier film de Pixar a nécessité un usage intensif du raytracing, c'est Cars (juin 2006) :
- Why ray tracing for Cars?
• All previous Pixar movies were rendered with REYES scanline rendering (shadow maps, reflection maps, …)
• But cars are very shiny + reflective!
...
La suite ici :
http://www.sci.utah.edu/~wald/RT06 [...] g06per.pdf
le code en double c'est jamais beau
Il devient de plus en plus compliqué et couteux en CPU de rajouter des effets X ou Y.
Je me demande si ce n'est aussi parceque les cpu, déjà, n'utilise souvent qu'un seul core, d'où le décalage ?
Je veux dire par là, mis a part crysis, S.C, far cry, il n'y a pas beaucoup de jeux qui utilisent le multi thread cpu, et c'est bien dommage
"Toutes les fonctionalités d'OpenGL sont dans DirectX ?"
Je rigole, en tant que chercheur dans un labo où se trouve du HPC et des stations de travail (pas de vulgaires PC surcouf ou fnac). Il y a tout de même une chose que DX ne sait pas faire...fonctionner sur autre chose que Windows. Or ici, si 80% des CPU sont des x86, moins de 3% d'entre eux sont sous Windows. Or justement, même si le phénomène reste encore lent, je vous l'accorde volontiers, cet OS perd des parts de marché et est quasi inexistant en HPC. Conclusion en visualisation scientifique, c'est openGL qui est présent et certainement pas DX qui finalement s'adresse uniquement aux jeux. Attention, je ne dénigre pas DX ici, je nuance l'article qui a clairement un parti pris "Gamer".
"Doom 3 a été conçu il y a maintenant 8 ans, à l'époque la carte la plus puissante du marché était une GeForce 2"
Une Geforce 4 tu veux dire, car la Geforce 2 c'est plus vieux que ça..
"Toutes les fonctionalités d'OpenGL sont dans DirectX ?"Je rigole, en tant que chercheur dans un labo où se trouve du HPC et des stations de travail (pas de vulgaires PC surcouf ou fnac). Il y a tout de même une chose que DX ne sait pas faire...fonctionner sur autre chose que Windows. Or ici, si 80% des CPU sont des x86, moins de 3% d'entre eux sont sous Windows. Or justement, même si le phénomène reste encore lent, je vous l'accorde volontiers, cet OS perd des parts de marché et est quasi inexistant en HPC. Conclusion en visualisation scientifique, c'est openGL qui est présent et certainement pas DX qui finalement s'adresse uniquement aux jeux. Attention, je ne dénigre pas DX ici, je nuance l'article qui a clairement un parti pris "Gamer".
Encore une fois je répète "toutes les nouvelles fonctionnalités d'OpenGL 3 sont déjà dans DirectX 10" c'est tout ce que je voulais dire.
Pour résumer qu'il y a quelques années OpenGL :
-était portable
-était plus performant que Direct3D
-avait une API plus claire que Direct3D
-supportait plus de fonctions du hardware que Direct3D
et aujourd'hui il ne lui reste plus que l'atout de la portabilité. Alors oui c'est important nous en parlons dans l'article, mais d'un point de vue technique Direct3D avance plus vite que son concurrent et c'est un peu se voiler la face que de se masquer derrière des excuses. Tout ça me rappelle lorsque les cartes 3D sont arrivées dans le grand public, à côté de ça nous avions les puristes qui utilisaient des stations de travail Intergraph ou SGI et souriaient avec condescendance sur ces joujoux aux noms amusants, au final aujourd'hui où sont Intergraph et SGI ? Donc si OpenGL ne veut pas se retrouver relégué à une niche du marché il faut réagir et faire évoluer l'API.
"Doom 3 a été conçu il y a maintenant 8 ans, à l'époque la carte la plus puissante du marché était une GeForce 2"Une Geforce 4 tu veux dire, car la Geforce 2 c'est plus vieux que ça..
La GeForce 2 est sortie en 2000, la GeForce 4 en 2002 donc non il y a 8 ans la meilleure carte c'était la GF2 GTS (puis Ultra).
L'article est très axé Gamer qui bave devant le marketing de Microsoft.
C'est facile de publier un ensemble de fonction bien sympathique et faire de façon que les constructeurs se battent entre eux pour les implémenter en hard le plus vite possible. C'est facile pour Microsoft d'annoncer qu'OpenGL ne sera pas bien supporté par le prochain windows, forçant les constructeurs à mettre en priorité de l'argent dans la partie DirectX de leurs drivers.
Il y a effectivement du retard dans les specifications officiels d'OpenGL, mais ça ne veut pas dire qu'il n'y a pas eu communication de khronos concernant des fonctionnalités telles que le rendu multithreadé, la tesselation, le geometry shader, qui seront utilisable sous la forme d'extension d'OpenGL lorsque les drivers seront pret, c'est à dire lorsque les constructeurs seront prets.