Le réalisme, c'est justement au nom de ce dernier que la startup américaine AGEIA a conçu un accélérateur matériel d'un nouveau genre dédié exclusivement aux calculs des effets physiques dans les jeux : le PhysX. L'idée étant de faire fi des performances parfois limitées du processeur central, ou des contraintes trop importantes au niveau de la programmation du GPU, pour offrir une solution autonome capable de prendre en charge tous les calculs exigés par les moteurs physiques les plus gourmands : le PPU ou Physics Processing Unit était né. Il faut bien dire qu'en matière de jeu PC la gestion physique a souvent été le parent pauvre et même si des titres comme Half-Life 2 inauguraient un certain niveau de réalisme en la matière, on reste encore très loin du compte... AGEIA a donc non seulement conçu un accélérateur matériel pour la physique mais aussi, et c'est un point primordial dans la stratégie de la firme californienne, un moteur logiciel à destination des développeurs de jeux vidéos. Nous allons ici tenter de vous présenter dans les grandes lignes le PhysX, PhysX qui fera ses premiers pas dans le commerce dans les semaines à venir.
Dit papa, la physique c'est quoi ?
A en croire le dictionnaire, la physique est une science qui traite, pardonnez-nous de vous rappeler l'élémentaire, des propriétés générales de la matière, de l'espace, du temps et qui établit les lois rendant compte des phénomènes naturels. Voilà pour la définition du Petit Larousse cuvée 2004. En matière de jeux vidéos, on désigne plus largement par physique tout ce qui traite de l'interaction des éléments entre eux. Concrètement il s'agit par exemple de calculer en temps réel la trajectoire d'une balle lorsqu'elle rebondit sur un mur pour se rapprocher de son comportement réel, divers facteurs aléatoires influant sur son déplacement (dureté de la surface de rebond, angle de tir, perte de vitesse, vent contraire, obstacles, etc). Ou encore de simuler, avec le plus de réalisme possible, une explosion que ce soit au niveau de la fumée générée ou des débris. L'idée étant que lorsque cette vieille guimbarde explose des morceaux de tôles ricochent dans tous les sens...Prenons un autre exemple avec le cas d'un jeu de stratégie en temps réel : dans bien des cas la construction et la destructions des bâtiments se fait en une série de courtes étapes toujours similaires. Idéalement avec un moteur physique digne de ce nom les animations graphiques illustrant ces phases ne devraient jamais être identiques, le jeu prenant en considération divers facteurs comme le nombre d'assaillants, le type de projectiles utilisés ou bien encore les conditions météorologiques. Citons encore le cas des liquides qui sont très loin de se comporter dans les jeux comme dans la réalité ne serait-ce qu'au niveau de leur écoulement. Techniquement tout ce que nous décrivons ici est aujourd'hui parfaitement possible grâce aux moteurs physiques logiciels existants qui s'appuient pour la grande majorité sur le simple CPU. En revanche le niveau de complexité des dits moteurs physiques est limité, du fait justement de la puissance processeur qu'ils peuvent exiger.
Système de collisions
Conscients que la physique était à terme un passage obligé pour rendre leurs jeux plus réalistes, de nombreux développeurs ont déjà intégré un moteur logiciel physique sans attendre AGEIA. C'est notamment le cas du dernier opus d'Age Of Empires qui utilise le moteur Havok. Entièrement logiciel, et donc dépendant du CPU, ce moteur est également utilisé dans Half-Life 2. Son implémentation sous Age Of Empires III n'est pas forcément parfaite puisque la construction ou la destruction d'un bâtiment s'opère généralement en un nombre réduit d'étapes graphiques alors que les étapes de la dites destruction pourraient être plus nombreuses et surtout toujours différentes. Il y a certes un net progrès en la matière quand on compare Age Of Empires III à son prédécesseur Age Of Mythology, particulièrement au niveau des attaques au canon, les boulets ricochant sur les bâtiments, mais l'on reste assez loin d'une simulation totalement réaliste.
Age Of Empires III : Havok à l'oeuvre
Pour rendre les effets physiques plus riches et plus réalistes, la puissance du processeur central joue dans les faits un rôle fondamental. Partant du postulat que les calculs exigés seront de toute façon toujours plus intensifs et exigeants, et qu'aujourd'hui un moteur physique utilise typiquement 16% des ressources CPU, AGEIA s'est mis en tête de concevoir un processeur dédié qui sera utilisé en parallèle avec un moteur physique logiciel, le Novodex développé là encore par ses soins. L'idée d'AGEIA est de gagner sur les deux tableaux : vendre un moteur physique logiciel aux développeurs de jeu pour une intégration dans leurs titres et optimiser ce dernier en l'accélérant par le biais de la puce PhysX tout en s'assurant que le dit moteur physique puisse toujours fonctionner en mode logiciel.
Le positionnement du PhysX face au CPU et au GPU
Le PPU à la croisée des chemins...
Et selon AGEIA, une solution matérielle digne de ce nom accélérant les effets physiques doit être capable de se distinguer dans quatre domaines distincts que sont la fidélité, l'échelle, l'interaction et la sophistication. Par fidélité AGEIA entend précision et respect de la réalité physique alors que l'échelle représente le nombre d'objets physiques pouvant être simulés ou le niveau d'effets possibles. L'interaction décrit la capacité de chaque objet d'une scène à agir et répondre aux autres objets alors que la sophistication traite des types d'effets physiques et les objets pouvant être simulés. Et ces quatre critères doivent être simultanés !
Les quatre vecteurs de la physique - selon AGEIA
Bien sûr cette présentation des choses est un rien caricaturale voir candide mais on ne pourra pas blâmer AGEIA d'essayer de tirer la couverture à lui. Car ce qu'AGEIA omet de dire est qu'Intel et AMD poussent chacun les développeurs de jeux à utiliser le second cœur de leur CPU notamment pour la physique, ce que fait déjà en partie un titre comme Black & White 2 qui figure parmi les rares jeux multithreadés aujourd'hui disponibles, alors qu'ATI et NVIDIA explorent tous deux un moyen d'accélérer la physique avec leurs solutions multi-GPU de type CrossFire ou SLI. Sans oublier que le moteur Havok adopté par un nombre non négligeable de développeurs à travers la planète devrait nous arriver dans une version dites FX où les calculs seront effectués par le GPU pour peu que ce dernier prenne en charge le Shader Model 3.0. Attention toutefois Havok FX devrait se concentrer uniquement sur les effets liés à l'environnement comme l'eau, les branches d'arbre, l'herbe, etc. Tout ce qui est interaction directe avec le joueur restant à la charge du CPU. Autre limitation annoncée d'Havok FX : la désactivation du SLI en mode multiGPU chez NVIDIA. Ces précisions font quand même, avouons-le, le jeu d'AGEIA qui rappelle que seule sa solution est capable de traiter les quatre vecteurs de la physique dans les jeux comme évoqué plus haut, quand n'importe quelle autre solution se borne à traiter qu'un nombre réduit de vecteurs. Petit bémol, selon les notes du dernier SDK d'AGEIA on ne peut pas dépasser les trois scènes physiques simultanément.
Démo AGEIA : Hangar Of Doom 1.2
L'approche d'AGEIA est donc assez différente de celle des autres acteurs de l'industrie et si une puce dédiée est à n'en pas douter la solution capable d'offrir la plus grande puissance de traitement et le plus grand nombre d'effets, une solution comme Havok FX est nettement plus souple puisque ne nécessitant aucun achat supplémentaire en terme d'équipement informatique tout en fonctionnant avec un vaste parc déjà installé. Inutile d'ailleurs de préciser que si le moteur physique Novodex, depuis rebaptisé en PhysX, fonctionne parfaitement sans PPU, la palette des effets disponible sera moindre. Reste qu'AGEIA ne désarme pas d'autant qu'Ubi Soft, Epic Games ou Big Huge Games lui ont déjà apporté leurs soutiens. Le prochain Rise Of Legends de Microsoft tirera profit du PhysX via un patch alors qu'un titre comme Ghost Recon Advanced Warfighters prend lui aussi en charge le PhysX. AGEIA revendique déjà plus d'une centaine de jeux PhysX en cours de développement chez 60 développeurs différents. L'un des titres PhysX phares sera bien entendu le prochain Unreal Tournament 2007. Au-delà de l'éternel débat de la disponibilité de jeux capables d'exploiter les dernières fonctions offertes par le hardware, AGEIA indique se baser sur une architecture de driver modulable qui permettra à l'avenir d'accéder à de nouvelles fonctions via de simples mises à jour de pilotes.
La puce PhysX : les caractéristiques
Ce fameux PPU se présente sous la forme d'une puce gravée en 130nm par TSMC pour une surface de die de 182mm². Il y a un peu plus d'un an maintenant AGEIA communiquait sur un nombre de transistors atteignant les 125 millions mais cette référence a aujourd'hui disparue des dernières documentations techniques de la firme. Bien qu'AGEIA reste assez discret sur l'architecture exacte de son PhysX on sait que la puce dispose de différentes unités d'exécution optimisées pour gérer les données physiques dont certaines unités de calcul en virgule flottante. La nature exacte et le nombre d'unité demeure un mystère et l'on se bornera donc à indiquer que le PhysX est une sorte de processeur multi-cœur dont on ne connaît d'ailleurs même pas la fréquence de fonctionnement. La compagnie communique tout de même quelques éléments comme la capacité de la puce à traiter 20 milliards d'instructions à la seconde ou 530 millions de collisions à la seconde pour les objets cubiques ou encore 533 000 collisions pour les sphères et autres objets concentriques.Le processeur AGEIA PhysX
L'interface mémoire de la puce a été particulièrement travaillée pour permettre un accès ultra rapide aux données même dans le cas d'accès aléatoires intensifs. Pour cela le PhysX a recours soit à sa mémoire interne, une sorte de cache améliorée, soit à la mémoire externe. Celle dernière est interfacée sur 128 bits et s'appuie sur de la GDDR3 cadencée à 733 MHz pour une bande passante théorique annoncée de 12 Go/s.
Concernant l'interconnexion, AGEIA a retenu pour son PhysX une interface 32 bits, en l'occurrence le PCI 3.0 mais la puce est tout à fait à même de supporter le PCI-Express, des cartes PCI-Express 1x étant déjà prévues. Le choix de l'interface PCI, s'il offre une large compatibilité avec le parc installé, pose toutefois la question de la bande passante ! Les 133 Mo/seconde du bon vieux PCI sont-ils vraiment suffisants pour un processeur aussi spécialisé tel que le PPU ?
Le PPU plus adapté que le GPU ?
L'un des grands débats soulevé depuis les premiers pas d'AGEIA, est la question de savoir si un PPU est réellement plus adapté au traitement de la physique qu'un GPU. Sans prendre position, ni rentrer dans des détails trop complexes plusieurs éléments plaident aujourd'hui en faveur d'AGEIA. Tout d'abord l'architecture mémoire du PPU, comme évoqué plus haut, a été spécifiquement conçue pour la manipulation de données dans le cadre de calculs physiques. AGEIA s'est en effet débarrassé des mécanismes de cache trop complexes à gérer dans son PPU pour abaisser les temps de latence de la mémoire interne de la puce tout en assurant à cette dernière un débit colossal de 2 Tb/s (soit 250 Go à la seconde). Bien sûr on ne connaît pas la quantité de mémoire interne du PPU, mais face à l'orientation prise par les GPU en faveur de la puissance brute de shading, la bande passante du cache de texture des Processeurs graphiques n'a pas évoluée car quelque peu délaissée.Une autre démo AGEIA...
Autre point à prendre en considération : vu qu'un GPU est essentiellement adressable par les interfaces de programmation DirectX ou OpenGL, l'ensemble des calculs ayant trait à la physique doit être calqué sur nos amis les pixels shaders, un langage qui n'offre pas forcément la souplesse requise pour la physique. D'autant que les pixel shaders lors de leur traitement par la puce graphique n'ont qu'un seul état et ne peuvent être modifiés, ce qui est un problème pour les effets physiques et leurs nombreux états. AGEIA avance d'autres arguments comme le pipeline hyper parallélisé des GPU qui ne convient pas aux données physiques notamment. Reste que dans ce débat de la supériorité du PPU face au GPU, ou inversement, il semble difficile d'imposer aux développeurs de jeu l'une ou l'autre des solutions sans une véritable interface de programmation unifiée dédiée aux effets physiques.
La carte PhysX P1 d'Asus
Avec BFG, Asus est l'un des deux seuls fabricants à proposer une carte PhysX. Baptisée PhysX P1, la carte devait initialement être munie de 256 Mo de mémoire mais Asus a finalement revu sa copie et les cartes du commerce ne seront munies que de 128 Mo de mémoire. Il est pour l'instant trop tôt pour dire si une quantité de mémoire double aurait influée sur les performances du PPU. La PhysX P1 se présente sous les traits d'une carte PCI et on pourrait presque la confondre avec une carte graphique ! Il faut dire qu'outre le PCB bleu, Asus a recouvert la puce d'un ventirad en tout point semblable à celui utilisé sur ses cartes GeForce 6600. Nécessitant une alimentation électrique externe, via un connecteur Molex, la carte ne comporte logiquement aucun connecteur, ce qui explique le vide sur son bracket. Quant à la mémoire, Asus a retenu des puces Samsung de GDDR3, puces certifiées à 2ns.Carte Asus P1
Premiers pas avec le PhysX...
Ghost Recon Advanced Warfighter : sans et avec PPU
Reste donc Bet On Soldier, dont le prochain patch activera les accélérations physiques avec le PPU. Nous avons pu mettre la main sur un exemplaire encore en cours de développement de la version 1.3 du jeu, jeu qui semble un rien plus convaincant que Ghost Recon. Certes graphiquement Bet On Soldier est, disons le tout de go, particulièrement laid... Mais les effets physiques sont effectivement plus riches une fois le PPU installé, c'est une certitude. Concrètement on passe d'une vague flamme autour des barils lorsqu'ils explosent à un nuage de fluide se répandant lors de l'explosion avant de se consumer pendant que les débris ricochent sur le décor. Les développeurs de Kylotonn utilise ici le PPU pour gérer des particules mais plus riche graphiquement ne rime hélas pas avec plus réaliste... Pour reprendre notre exemple de baril explosif : le fluide qui se répand semble vous atteindre même si vous êtes très éloigné alors que graphiquement c'est là encore très moche, il n'y a pas d'autre mot. On a droit à une bouillie de pixels crantés... Et ce n'est pas le contraste qui existe entre l'explosion des barils et celle d'une grenade qui va rendre le tout plus convaincant : le baril provoque des ravages colossaux alors que la grenade ne fait quasiment rien, à peine un tout petit souffle. Autre élément d'importance, les scènes ne peuvent pas comporter plus de deux ou trois effets accélérés par le PhysX simultanément... Et pour cause ! La mise en place du PPU divise quasiment le framerate par deux d'après nos tests ! Il faut donc restreindre le nombre d'effets physiques pour maintenir un framerate acceptable : c'est le choix effectué par les développeurs.
Bet On Soldier 1.3 : A gauche sans PPU, à droite avec !
Nous vous proposons également de télégarger deux vidéos réalisées sous Bet On Soldier 1.3 illustrant les effets d'explosion sans PhysX et avec. Les vidéos nécessitent le codec XviD codec et se téléchargent ci-dessous :
Les performances
- Asus A8N32SLI-Deluxe,
- AMD Athlon 64 X2 3800+,
- 2x512Mo Corsair TwinX PC3200 XL,
- Asus EN7600 GT,
- Disque dur Western Digital Raptor 150 Go
Bet On Soldier 1.3 - 1920x1200
Avec Bet On Soldier 1.3, le résultat en terme de framerate est surprenant et sans appel. Alors qu'on espérait que le PPU allait accélérer notre jeu, la situation est tout autre, puisque sur une scène identique, mesurée avec FRAPS, les effets physiques gérés par le PPU divisent quasiment le framerate par deux ! L'explication de cet état de fait est certainement à chercher du côté de l'augmentation du nombre de polygones affichés à l'écran. Car si notre CPU est soulagé d'un certain nombre de calculs pour les effets physiques, le GPU lui doit afficher au final un plus grand nombre d'objets.
Ghost Recon Advanced Warfigther - 1280x1024 - AF 16x
Sous Ghost Recon, notre rapide test avec FRAPS ne met pas en avant de gain ou de perte significatif en terme de performances. Cela semble à contre courant des autres tests qui montrent systématiquement une chute des performances, et il semblerait que la raison de ce maintient du framerate soit à chercher soit du côté de notre Athlon 64 X2, un processeur double-coeur, soit du côté de notre GeForce 7600 GT.
Conclusion
Difficile de ne pas être déçu par le PPU après cette première preview. Certes l'idée d'AGEIA de proposer une puce dédiée spécialement à la gestion des effets physiques n'est pas dénuée de charme, d'autant qu'elle va dans le sens d'un réalisme toujours croissant dans les jeux. Malheureusement le PhysX se heurte encore à de nombreux obstacles. Tout d'abord son utilité intrinsèque est loin d'être démontrée face notamment aux solutions concurrentes comme le moteur physique Havok FX qui, s'il ne s'est pas encore totalement dévoilé, sera en partie accéléré par les GPU. Certes Havok FX se concentrera sur les effets d'environnement et non ceux ayant trait au gameplay, mais profiter d'une accélération matérielle de la physique, aussi parcellaire qu'elle soit, avec n'importe quelle carte graphique de classe DirectX 9.0c semble beaucoup plus prometteur que l'achat d'une carte vendue séparément. Et ce n'est pas le seul obstacle sur la route d'AGEIA ! Car les Processeurs double-cœur d'AMD et d'Intel sont encore loin d'être exploités par les jeux, et les deux fondeurs se dirigent déjà vers des processeurs Quad-cœurs ! Dès lors pourquoi utiliser une puce dédiée plutôt que l'un des cœurs des derniers CPU ? Sur le plan matériel beaucoup de questions restent d'ailleurs en suspens au sujet du PPU. AGEIA entretient le flou et si beaucoup s'accorde à dire que l'architecture de la puce est similaire au CELL d'IBM certains détails n'ont toujours pas filtrés... Autre sujet d'interrogation : l'interface PCI qui si elle confère au PhysX une large compatibilité risque aussi de limiter son efficacité.Bien que divers développeurs aient déjà indiqués leur intention de supporter le PhysX, il est aujourd'hui difficile de dire si cette puce à un véritable avenir sous forme de carte additionnelle, notamment face au SLI Physics de NVIDIA (ce dernier est il est vrai encore très virtuel). ATI n'est pas non plus en reste dans le domaine, le canadien développant diverses façons d'exploiter ses dernières puces graphiques pour d'autres tâches que la 3D. Il y a d'ailleurs fort à parier que les deux géants de la 3D fourbissent actuellement leurs armes pour contrer AGEIA à plus ou moins long terme. D'autant qu'un acteur de taille pourrait chambouler tout ce petit monde : Microsoft a en effet tout intérêt à tenter d'uniformiser la gestion des effets physiques via une nouvelle couche de DirectX dédiée exclusivement à la gestion physique. Ce faisant, le géant de Redmond risquerait de mettre tout le monde d'accord et d'éviter le syndrome 3dfx où tel jeu voit ses effets physiques accélérés par le seul PPU, tel autre par une carte NVIDIA et tel autre uniquement par les cartes ATI...
En attendant, dépenser 250 euros pour une carte dont l'efficacité n'est visible aujourd'hui que dans deux ou trois jeux au mieux serait une pure folie. Il est donc urgent d'attendre...Mais l'initiative d'AGEIA a au moins un mérite, reconnu par tous : celui de sensibiliser les développeurs mais aussi les joueurs de l'importance de la physique pour un meilleur réalisme dans les jeux. Evidemment les premiers jeux ne plaident pas dans ce sens mais ce n'est espérons-le qu'une question de temps.