Un nouveau pipeline, Geometry Shader
Intéressons nous maintenant plus précisément aux nouveautés introduites par la nouvelle API et pour cela regardons le nouveau pipeline 3D.

Il reste pour sa majeure partie inchangée par rapport au pipeline de Direct3D 9 mais toutefois un nouveau stage fait son apparition : le geometry shader, et les autres stages ont connu quelques modifications. Nous allons étudier ça dans le détail.
Geometry Shader
Le geometry shader constitue la grosse nouveauté de Direct3D 10, ce nouvel étage du pipeline permet de s’affranchir de la limite "1 sommet entrant/1 sommet sortant" qui existe depuis l’apparition des vertex shader. Comme son nom ne l’indique pas forcément, le geometry shader travaille sur des primitives complètes (point, segment, triangle). Il a non seulement accès à tous les sommets de la primitive, mais également à ceux des primitives adjacentes le cas échéant.

Les geometry shaders sont capables de générer plusieurs sommets en sortie formant ainsi de nouvelles primitives, ou tout simplement de supprimer la primitive courante. La limite des geometry shaders est qu’ils ne peuvent générer plus de 1024 valeurs 32-bit en sortie ce qui est plus que respectable même si évidemment il s’agit d’une limite purement théorique, on se souvient notamment des milliers d’instructions gérées par les pixel shader 2.0a des NV3x… Cette limite est d’ailleurs le résultat d’un compromis entre une implémentation matérielle efficace, et les souhaits des développeurs. En effet d’un point de vue du programmeur les primitives doivent être traitées dans l’ordre dans lequel elles sont envoyées au GPU. En pratique ce n’est pas le cas (tout comme les instructions d’un programme peuvent être traitées dans le désordre par le CPU pour maximiser les performances) mais ce doit être transparent pour le programmeur : le matériel doit se comporter exactement comme si l’ordre était préservé. De la même façon les primitives générées par le geometry shader doivent conserver cet ordre ce qui est problématique au niveau de l’implémentation qui repose sur des unités parallèles. Pour résoudre ce problème le résultat des geometry shaders est stocké dans des buffers, qui sont ensuite traités dans l’ordre d’arrivée.
Les possibilités offertes par ces nouveaux shaders sont multiples : comme il est capable de générer plus de primitives qu’il n’en a reçu, un geometry shader peut effectuer de l’amplification de géométrie. De la même façon il peut générer moins de primitives qu’il n’en reçoit ce qui peut permettre d’implémenter un système de niveaux de détails (LoD) sur le GPU.
Notons toutefois que l’amplification massive de géométrie si elle reste possible, ne faisait pas partie des objectifs du design du geometry shader. Pour cette tâche les ingénieurs de Microsoft avaient initialement prévu un autre étage dans le pipeline : le Tesselator qui était visible dans les premières versions du pipeline, à une époque où Direct3D 10 s’appelait encore WGF 2 :

Finalement la complexité introduite par ce nouvel étage a été jugée trop importante au regard des possibilités apportées et il a été décidé de le supprimer.
Merci c'est un excellent article ! Le premier en français en plus je pense !
Merci c'est un excellent article ! Le premier en français en plus je pense !
Presque:
http://www.hardware.fr/articles/63 [...] -gpus.html (7 juillet 2006)
Sinon, très bon article en effet !
Je ne savait pas que directx se limitait qu'a Direct 3D
Je ne savait pas que directx se limitait qu'a Direct 3D
C'est la partie de DirectX qui interesse le plus de monde ! La partie gestion des Joystick et autres volants (entre autre) est beaucoup moins passionnante !
Article de très grande qualité !
A mettre en avant au lieu de l'article sur le fusion d'amd
et puis bravo microsoft. Meme si on doit changer d'os, Dx avait besoin d'une grosse mise à jour.
Je ne savait pas que directx se limitait qu'a Direct 3D
En fait le nom officiel de la nouvelle API est Direct3D 10, même si l'appelation DirectX 10 est acceptée par MS. Les autres parties de l'API n'évoluent plus et son vouées à être remplacées par leurs équivalents XNA.
C'est la partie de DirectX qui interesse le plus de monde ! La partie gestion des Joystick et autres volants (entre autre) est beaucoup moins passionnante !
(même si pas inintéressante finalement).
Et les parties Audio et Réseau ça sert à rien
ce qui est bien avec ce genre d'article c'est que l'on comprend tout desuite, surtout le lundin matin, ca met en forme pour la semaine LOL
Et les parties Audio et Réseau ça sert à rien
??
Si, c'est pour ça que j'ai dit "entre autre"...
Faut-il garder sa vieille carte graphique de côté, pour continuer à jouer à Quake II ou au 1er Tomb Raider ? Comment faire si je veux jouer à POD : garder un second pc avec une bonne vieille radeon 7000 sous Xp, ou bien une Voodoo 4500 de chez 3dfx...
Jusqu'à quel API les cartes DirectX10 seront-elles rétrocompatibles, seulement DirectX 9 ? - Je parlais de Quake II qu'en est -il d'Open GL, et de ses différentes versions ? (pardon d'avance si j'ai manqué un passage)
C'est un article très interessant, dommage que le francais utilisé soit un peu limite
etc...
Oui, je sais c'est pointilleux ( surtout que personnellement, je ne suis pas très fort ). Mais vous êtes des pros, non ?
Jusqu'à quel API les cartes DirectX10 seront-elles rétrocompatibles, seulement DirectX 9 ? - Je parlais de Quake II qu'en est -il d'Open GL, et de ses différentes versions ? (pardon d'avance si j'ai manqué un passage)
Direct3D 10 par défaut n'est pas rétrocompatible. Pour faire tourner les anciens jeux Vista intègrera une version de DirectX 9 adapté au nouveau modèle de driver. Si les anciens jeux fonctionnaient avec DirectX 9 en principe ce sera toujours le cas sous Vista. En ce qui concerne OpenGL après quelques tergiversations, au final Vista offrira un support complet, les versions supportées ne dépendant que du fabriquant de carte graphique et pas de MS.
C'est un article très interessant, dommage que le francais utilisé soit un peu limite
etc...
Oui, je sais c'est pointilleux ( surtout que personnellement, je ne suis pas très fort ). Mais vous êtes des pros, non ?
Non ce n'est pas pointilleux c'est justifié, "moins pire" est en effet très laid j'ai honte
Par contre j'avoue que je ne vois pas le problème avec la première phrase
Tres bon article
Maintenant, on devrait assiter à un grand bon en avant dans la prochaine génération de jeux:
(enfin, on a déjà un aperçu dans certain trailers...
)
* Processeurs plus puissant et support du multi-core de plus en plus courant.
Alors que dans le même temps nous trouvons:
* Une API plus légère, donc CPU moins sollicité
* Un CPU qui se décharge en plus de certain calculs pour les refiler au GPU
* GPU permettant encore plus d'effet graphiques et toujours plus puissant
= Gain final surement très impressionnant !!!
Si, c'est pour ça que j'ai dit "entre autre"...
c'est un peu trop facile ça
Alors pour la première phrase ... Le verbe "impacter" n'existe pas dans la langue française ( même si il est très employé )
article intéressant, meme si je n'ai pas pris le temps de lire tout en détails.
On comprend mieux pourquoi DX10 ne tournera pas sous XP. Sans aller jusqu'au "complot", il est clair que ce n'est pas intéressant pour MS de redevelopper son GDI pour XP.
Cela reste toutefois un bon argument pour passer tot ou tard à Vista: la communauté de joueur représente un beau panel de clients pour MS qui va encore pouvoir gonfler son compte en banque...
Sans vouloir ouvrir de troll, je pense que c'est d'ailleurs bien ce que bcp critiquent à MS: profiter pleinement de notre société capitaliste.
Ah merci bien pour la réponse ! Heureusement que l'Open GL est supporté, car Quake Wars En. Ter. par exemple n'est pas encore sorti ! et ça l'aurait fichu mal que des titres comme Doom 3 ou Quake 4 ne passent plus sous Vista... sacré Carmack !
Presque:

http://www.hardware.fr/articles/63 [...] -gpus.html (7 juillet 2006)
Sinon, très bon article en effet !
Ah merci il m'avait échapper celui-là, il est vieux en plus je suis impardon(n)able !
Si j'ai bien compris tu ne pourras plus jouer a tes jeux DX8-9 sous DX10 ( pas de retro compatibilité ). A mon humble avis tout le monde n'est pas pret a jeter tous ses jeux à la benne. Donc l'avenement de vista pour le jeu, c'est pas pour demain.
nan c'est pas vraiment ca.
C'est surtout que plus aucune carte vidéo antérieur à DX10 pourra faire fonctionner un jeu sous DX10.
La rétrocompatibilité sera surtout à ce niveau.
Apres j'espere pour microsoft qu'on pourra tjs jouer aux jeux plus vieux. Parce qu'ils ont aussi une branche jeux
Donc l'avenement de vista pour le jeu, c'est pas pour demain.
On parie ?
Apres j'espere pour microsoft qu'on pourra tjs jouer aux jeux plus vieux. Parce qu'ils ont aussi une branche jeux
D'après ce que j'ai compris, non, DX10 ne permettra pas cela.
C'est WGF 1.0 (DirectX 9L, quoi) qui prendra en charge le côté compatibilité, puisqu'il s'agit juste d'une version de DX9 modifiée pour fonctionner sous Vista.
WGF 2.0 (DX10) s'occupera de la nouvelle génération.
Edit : en fait, je viens un peu de répéter ce que disais Zeross un peu plus haut...
Edit bis : j'ai oublié de dire que cet article est franchement génial et très intéressant (en plus d'être assez... enfin, les infos sont tout de même assez bien décortiquées !).
Deux gros points noirs quand même :
- un petit F7 sous Word, ça ne tue personne. Enfin, à part les rédacteurs, j'ai jamais vu personne en mourir.
- un lexique est du genre... heu... INDISPENSABLE. Sur certains points, j'ai réellement du mal à suivre, et pourtant je suis (du verbe 'suivre') un minimum ce genre d'actualités. J'ai du mal à imaginer un néophyte de la 3D temps réel devant cette article (alors ma grand-mère...
Super article, et j'avoue mieux comprendre les raisons de MS pour la compatibilité avec XP.
Deux gros points noirs quand même :
- un petit F7 sous Word, ça ne tue personne. Enfin, à part les rédacteurs, j'ai jamais vu personne en mourir.
- un lexique est du genre... heu... INDISPENSABLE. Sur certains points, j'ai réellement du mal à suivre, et pourtant je suis (du verbe 'suivre') un minimum ce genre d'actualités. J'ai du mal à imaginer un néophyte de la 3D temps réel devant cette article (alors ma grand-mère...
Pour une fois je suis d'accord avec toi
Article très interessant et d'un bon niveau technique. Reste a voir ce que ca donnera vraiment avec les premiers benchs et Windows Vista et les premières CG Dx 10
pour moi les bench c'est comme les stats. Ca n'arrange que ceux qui les font.
Pour une fois je suis d'accord avec toi
.
Champaaaaaaaaaaaaagne !
...
LA CHENILLE ! LA CHENILLE ! LA CHENILLE ! LA CHENILLE !
Moi aussi je suis pointilleux
Plus sérieusement, c'est l'implémentation qui suscitait quelque chose (de l'espoir en l'occurence), pas nous.
- Le lien pour réagir en bas de l'article renvoie sur l'article même, pas sur ce forum, c'est normal ?
- "8192x9192" c'est pas très rond.
- "aussi suscitions nous des espoirs", c'est la fête du saucisson
- "la rétro-compatibilité abandonnée, un choix rare et courageux, basé sur la technologie et pas sur le marketing"... Faut pas abuser non plus. Effectivement en lisant ce test on se rend compte qu'ils ont fait les choses dans le bon sens, proprement et dans un soucis d'efficacité, mais de là à dire que ce n'est pas marketing, mais rare et courageux, il y a un pas énorme que je ne franchis pas.
Si j'ai bien compris tu ne pourras plus jouer a tes jeux DX8-9 sous DX10 ( pas de retro compatibilité ). A mon humble avis tout le monde n'est pas pret a jeter tous ses jeux à la benne. Donc l'avenement de vista pour le jeu, c'est pas pour demain.
Donc "non"
J'ai pu jouer à Dungeon Keeper sous Vista
Comme l'a dit fourbe, on ne pourra pas lancer de jeux DX10 sur une carte DX5-6-7-8-9.
Actuellement, à part la folie, rien ne t'empèche de jouer à Battlefield sur une TNT2. Avec les jeux DX10, ce sera impossible
Actuellement, à part la folie, rien ne t'empèche de jouer à Battlefield sur une TNT2. Avec les jeux DX10, ce sera impossible
Tu oublies les options "pari stupide" et "sado-masochisme".