|
DirectX
11
Microsoft Windows Vista / Windows
7
Cartes graphiques ATI Radeon 5000 series
Janvier 2010
DirectX
10 a été un flop. Les avantages visuels
ont été jugés trop minces par les
éditeurs et le fait que Windows XP - qui aujourd'hui
encore est le système d'exploitation majoritaire
- ne soit pas compatible avec cette API sont les raisons
principales de cette défection. Cela n'a pas
refroidi Microsoft pour autant et DirectX 11 est disponible
depuis le lancement du septième opus de son système
d'exploitation. La compatibilité avec Vista est
un bon point, mais n'effacera pas le fait que Windows
XP soit toujours délaissé. Parier sur
le fait que DirectX11 ne soit disponible que sur les
systèmes récents encourage les utilisateurs
à migrer vers Seven est assez courageux compte
tenu de ce qui s'est passé pour Vista et DirectX
10. Mais la logique des entreprises qui ont un monopole
absolu est parfois difficile à saisir ! Bref,
pour profiter de DirectX 11, vous devez migrer vers
un Windows récent et une carte graphique compatible.
Là
encore la situation est atypique : nVidia qui depuis
de nombreuses années monopolises les meilleures
places au classement des performances 3D n'a pas de
carte 3D DirectX 11 a son catalogue. Septembre 2009,
Octobre 2009, Novembre 2009, Décembre 2009, Janvier
2010 : les mois doivent sembler longs pour les partisans
de nVidia ! Le constructeur a bien l'intention de supporter
DirectX 11, mais les aficionados attendent toujours
et doivent se tourner vers ATI s'ils veulent goûter
aux joies de DirectX 11. Heureusement pour eux, peu
de jeux vidéo tirent encore profit de la nouvelle
API 3D de Microsoft.
Dynamic
Tesselation (hull & domain shaders)
Pour
rendre à l'écran des objets très
détaillés il y a plusieurs solutions :
- utiliser des modèles dont la définition
géométrique est très détaillée
(des personnages avec rides réalisés dans
ZBrush pèsent plusieurs millions de polygones).
Les cartes actuelles sont incapables d'afficher de tels
objets dans un jeu.
- utiliser des modèles simplifiés à
qui l'on applique une normal map ou paralax map afin
de faire varier la lumière à la surface
de l'objet pour simuler la présence de détails
géométriques. Cette méthode est
la plus utilisée actuellement les jeux de génération
DirectX 9 en font un usage sans modération. En
revanche, cet effet montre de nombreuses limites : les
profils sont désespérément anguleux...
- utiliser des displacement maps : cette fois-ci la
texture ne vient pas modifier la réflexion de
la lumière mais vas déformer la géométrie.
A la manière d'une heightmap qui vient créer
un relief, le displacement va déformer la géométrie.
La limitation de cette méthode vient du fait
que la géométrie ne peut varier que dans
le sens de la normale des surfaces. De surcroît,
la qualité de l'effet dépend directement
de la densité de la géométrie.
C'est à ce niveau que DirectX 11 fait toute la
différence !
DirectX
10 avec les geometry shaders avait préparé
le terrain (Instanced
Tesselation). Citons encore Matrox Parhelia Displacement
Mapping, et ATI TrueForm, RT Patch... DirectX 11 va
encore plus loin, cette API va unifier les méthodes
précedentes. Aujourd'hui, les développeurs
de jeux vidéo pensent à remplacer les
normal map par des heightmap ; la qualité graphique
des jeux va ainsi passer un cap.
L'avenir
de la tesselation dynamique ne passe pas nécessairement
par les heightmaps. Cette fonction permet ainsi d'utiliser
en temps réel - dans un jeu ou une application
DCC/CAD - la subdivision des maillages. Elle peut également
agir sur la précision de la représentation
à l'écran des surfaces paramétriques.
Avec la tesselation dynamque, le CPU est soulagé
et l'on peut entrevoir des gains de performances significatifs.
La fin des LOD :
La tesselation permet d'adapter le niveau de subdivision
d'un objet à la distance de la caméra.
Une
meilleure précision des modèles géométriques
DCC et CAD :
Lorsque vous zoomer sur un objet l'odre de la surface
paramétrée ou le niveau de subdivision
du maillage peuvent augmenter sans surcharger le CPU.
Dans
les prochaines années :
La tesselation permettra à l'infographiste de
travailler sur des mesh très détaillés
(exemple : Zbrush) et le moteur de jeu calculera dynamiquement
la résolution géométrique de l'objet
en fonction de son importance sur l'écran. Contrairement
à la méthode précédante
qui vise à ajouter de la géométrie,
ici il s'agit de simplifier des modèles en temps
réel. Quand on sait que les outils qui réalisent
cette opération sur le CPU requièrent
quelques secondes sur des mesh d'un million de triangles,
nous ne sommes pas prêt de voir cela en temps
réel, même sur GPU. Cette étape
facilitera la création de modèles 3D,
mais le GPU devra faire des gains de performance considérables
pour rendre cela possible.
Order
Independent Transparency
 |
|
Order
Independent Transparency
off
Order Independent Transparency on
credit : AMD |
|
AMD
n'a publié que très peu d'information
sur cette fonctionnalité (brevetée
par nVidia) qui serait - d'après le constructeur
- imputable à DirectX11. Toujours est-il que
le "tri des alpha" est un problème
récurant. Le Z-buffer stocke les couleurs des
pixels les plus proches, mais pas la transparence du
coup la plupart des moteurs 3D sont incapables de rendre
correctement la superposition de matériaux transparents.
Certains moteurs utilisent des classements pour déterminer
l'ordre des objets, mais dans le cas d'objets en mouvement
cette méthode n'est pas satisfaisante. Le fait
que DirectX11 corrige ce problème est très
encourageant et réduit encore un peu plus le
fossé qui sépare le Z-buffer et le ray
tracing.
Les
autres nouveautés présentes dans DirectX
11 sont : Shader Model 5.0, HDR Texture Compression,
le multithread (DirectX11 est ainsi un peu plu rapide
que DirectX10, Unigine Heaven demo montre un gain d'environ
3-5 %) et DirectCompute (l'équivalent d'OpenCL).
En toute logique les jeux DirectX11 devraient se multiplier
dès lors que les cartes nVidia compatibles seront
disponibles sur le marché. Déjà
quelques jeux en tire parti (Dirt2). Les moteurs pour
Serious Games et OpenSource devraient progressivement
s'y conformer. Il ne faut cependant pas tabler sur une
disponibilité réele avant 2011. Qui a
dit que DirectX11 était pour 2011 ?
Liens
http://www.highperformancegraphics.org/presentations/patney-parallel.pdf
http://developer.download.nvidia.com/presentations/2008/GDC/Inst_Tess_Compatible.pdf
DIRT
2 [video] http://www.youtube.com/watch?v=D9p3PYOX1Vc
|