Explications techniques

 
 
Comme je l'ai dit dans l'analyse du jeu, la réalisation technique de Deus Ex 2 est nettement insatisfaisante. Mais il est nécessaire de savoir pourquoi.
La première réponse, c'est que le jeu a été simplifié pour convenir à une utilisation sur console Xbox. Ca on l'a déjà dit plusieurs fois, c'est surtout valable pour les menus et autre configurations du joueur.
 
Je vais donner ici des explication plus détaillées sur le pourquoi de la mauvaise qualité des niveaux et graphisme surtout.
 
Les textures :
 
Ce qui vous aura frappé en premier lieu, c'est la faible définition des textures. On se trouve en présence de textures de petite taille alors que les jeux actuels utilisent de grandes textures qui offrent un réalisme extraordinaire. On n'est pas loin de la qualité photographique très souvent. Une haute résolution, par exemple 1024x1024 permet d'avoir un piqué et un contraste étonnant des surfaces. Une faible résolution oblige le dessinateur du niveau d'étendre la texture sur la surface, ou de faire un damier.
Si on étend, on aura un aspect flou à cause du filtrage bilinéaire ou tri linéaire qui va lisser les pixels. De loin l'apparence sera correcte, mais à courte distance on aura un aspect de carton pâte très peu réaliste.
Si on fait un damier en répétant la texture, de près ce sera convenable, mais à distance on remarquera le damier.
 
C'est la raison pour laquelle les jeux utilisent des textures toujours plus grandes. Mais bien sûr il y a des limites fixées par le matériel. En effet pour pouvoir afficher une surface en 3 D temps réel, la carte vidéo doit stocker toutes les textures visibles en mémoire, sinon le temps d'accès serait exagérément long et le framerate descendrait très bas.
Autrefois avec les cartes vidéo 3DFX par exemple on était limité en texture par la taille de la mémoire vidéo et par la taille maximale de texture que la carte pouvait traiter.
En ce temps là une texture ne pouvait pas dépasser la taille de 256 x 256 pixels et en plus on ne pouvait pas utiliser beaucoup de textures de cette taille.
La raison pour ceci c'est que les cartes vidéo 3DFX Voodoo1 avaient de 4 à 6 meg de mémoire vidéo. Ce qui signifie que la carte devait réserver 2 meg pour enregistrer l'affichage de l'image finie à envoyer au moniteur et pour les buffers intermédiaires.
Ceci laissait seulement 2 à 4 meg de mémoire pour les textures. C'est pour cette raison qu'on utilisait au début des jeux vidéo des textures 8 bits de petite taille. Par exemple une texture de 256 x 256 en 8 bits (256 couleurs) utilise 65 ko de mémoire. Ce qui signifie au maximum 30 textures de 256 x 256 pour un niveau. C'est très peu, c'est pourquoi la plupart du temps les textures étaient de taille 64 x 64 en moyenne.
Même avec ces limites, on ne pouvait pas avoir une résolution d'affichage en 3D accélérée avec une Voodoo 1 de plus de 640 x 480 en 16 bits.
Avec l'arrivée des Voodoo 2 qui avaient 8 meg de mémoire ou pouvait avoir 4 meg de textures et une résolution de 800 x 600 en 16 bits. En reliant deux cartes ensemble on avait 8 meg pour les textures et un affichage maximum de 1024 x 1024 en 16 bits.
Mais de tels installations étaient très rares et très chères à l'époque, c'est pourquoi les jeux étaient volontairement bridés à un maximum de 2 à 4 meg de textures.
 
Les jeux des débuts de l'accélération 3D comme quake et quake 2 ou Jedi-knight utilisaient des palettes de couleurs. Par exemple Quake 2 utilisait une palette de 256 couleurs pout tout le jeu et Jedi-Knight une palette de 256 par niveau dont la moitié des couleurs étaient fixes.
C'est pourquoi Quake 2 avait cette couleur générale brunâtre, car il s'agissait de représenter des décors métalliques rouillés pour la plus part.
Il ne faut pas oublier qu'à l'époque les possesseurs de vraies cartes 3D comme la Voodoo 1 étaient assez rares. Il fallait que les ordinateurs plus anciens puissent aussi faire tourner le jeu.
 
Même des jeux plus récent comme Unreal et Half-Life avaient de petites textures de 256 x 256 8 bits au maximum. Par contre chaque texture pouvait avoir sa propre palette ce qui permettait beaucoup plus de couleurs dans un niveau. C'est pour cette raison que les graphismes de ces deux jeux étaient vraiment extraordinaires au moment de leur sortie.
On avait gardé la limite de 256 x 256 8 bits à cause des ancienne carte 3DFX et autre carte bas de gamme.
 
C'est surtout Nvidia avec la carte TNT qui utilisait l'AGP et qui avait 16 meg de mémoire qui a permit le développement de plus grandes textures.
En effet les cartes vidéo 3D on rapidement évolué et on eu 16, 32, 64, 128 et même 256 meg de mémoire maintenant.
En fait l'AGP avait aussi pour but d'utiliser la mémoire centrale de l'ordinateur pour compléter la mémoire de la carte, mais c'est bien plus lent!
 
Tout cela a permis aux jeu d'utiliser de plus grandes textures en plus grand nombre. Les jeux récents utilisent majoritairement des textures de 512 x 512 32 bits et jusqu'à 1024 x 1024. Normalement on peut aller encore plus haut, mais sans obtenir un résultat réellement meilleur.
 
Avec l'évolution de DirectX, on a également introduit la notion de shader. Ce sont des fichiers de configuration de texture qui leur donnent des propriétés afin de pouvoir appliquer plusieurs couches de textures avec des transparences, des déformations, des luminosités.
 
La combinaison de grandes textures et de shaders permet des effets très réalistes. On peut appliquer des reflets, des ondulations, des brillances, du relief à des surfaces planes et immobiles.
 
 
Mais alors pourquoi on n'a pas tout cela dans Deux Ex 2 qui sort fin 2003 à l'époque de DirectX 9 et de cartes vidéo comme les Radeon 9800 ou Geforce FX ??
 
Tout simplement parce que le jeu a été développé spécialement pour la Xbox qui a peu de mémoire vidéo et qui ne supporte pas DirectX 9. Cette console peut utiliser le multitexturing avec les shaders pour avoir du bumpmapping limité et encore d'autres effets, mais seulement avec des textures de faible taille.
Il aurait été bien plus sage de créer le jeu pour PC avec comme d'habitude plusieurs échelles de textures qui sont utilisées selon les performances de la machine.
Par exemple Soldier of Fortune 2 a quatre jeux de textures, de très grandes pour les machines haut de gamme, deux tailles moyennes et une petite pour les machines anciennes.
 
De cette façon il suffisait de mettre par exemple un jeu haute résolution pour les PC haut de gamme et un autre pour l'usage Xbox et PC bas de gamme.
 
Lorsqu'on voit ce que peut donner de grandes et belles textures comme résultat avec le même moteur de base, on est très déçu par Deus Ex 2. Il suffit d'avoir joué à Unreal Tournament 2003 ou Unreal 2 pour le comprendre.
 
Heureusement Deus Ex 2 utilise certains effets de shader comme le bumpmapping qui ajoute du relief aux surfaces. Ils ont utilisé cet effet sur les modèles de personnages. C'est une façon d'augmenter les détails du modèle en gardant un nombre de polygones relativement bas.
Mais bizarrement ces effet de bumpmapping / normal mapping introduisent un effet de lissage important. Ca fait disparaître les angles des polygones et donne un éclairage naturel avec des ombres régulières, mais la conséquence c'est que la texture semble floue et sans piqué. On obtient des surface sans granulosité, bien trop lisses et régulière, par exemple les visages sont comme des masques et ont l'ait peu naturels.
Vues de près les petites textures très lissées sont très floues et le résultat est très mauvais sur les corps avec des détails très grossiers.
Les visages ont une allure de poupée de cire figée sans expression, on voit seulement les lèvres qui s'animent lors de discussions.
 
 
Les éclairages :
 
Ce qui est très bien fait dans Deus Ex 2 ce sont les éclairages. Ils ont choisi de ne mettre que des éclairages dynamiques. Ca veut dire qu'il n'y a pas de précalculation des éclairages des niveaux.
 
C'est une excellente idée, mais les conséquences sont très lourdes. En effet si on obtient de très jolis effets d'ombres mobiles, de projections de lumière et d'ombres sur les sols et les murs, c'est au prix d'un temps de calcul très important.
 
C'est la raison pour laquelle les niveaux sont ridiculement petits, ils ont essayé de limiter au maximum la visibilité ce qui rend les niveaux très claustrophobiques.
Ils sont composés la plupart du temps de petits espaces encaissés avec des chicanes pour les liaisons. Ca limite la visibilité à un ou deux volumes qui sont également de conception très cubique pour avoir de grandes surface planes plus faciles à traiter qu'une multitudes de facettes.
 
Le résultat est très décevant, on a un sentiment d'oppression, on manque d'espace. On a l'impression de jouer une pièce de théâtre sur une petite scène avec des décors étriqués.
Une autre conséquence ce sont d'incessants changement de niveaux. Une mission se passant dans un espace très petit impose plusieurs changements de niveaux. Par exemple, explorer un quartier d'une ville signifie qu'on a une ruelle étroite une petite place entourée de hauts murs, on change de map pour la rue suivante et ainsi de suite!!
Si au moins les temps de chargement étaient très courts comme dans Half-Life, pas de problème, mais là c'est assez long parfois et souvent le jeu se plante au chargement et on retourne à windows.
 
Je ne sais pas si ce sont ces lumières dynamiques en elles même qui causent ce ralentissement très important dans le framerate ou si c'est une très mauvaise optimisation du calcul des lumière pour le PC.
Il faut dire que même avec de très petits niveaux et peu de modèles animés, on a un framerate ridiculement bas. Avec un PC composé d'un CPU de 3 gigas, de 1024 meg de RAM DDR 400 et d'une carte Radeon 9700 pro, on ne peut pas dépasser 1024 x 768 sinon dans certains niveaux c'est injouable ( moins de 10 FPS).
Ce n'est pas une question de drivers ou de problème de hardware, tous les autres jeux récents tournent sans aucun ralentissement en 1280 x 1024 avec de très grands niveaux, de nombreux modèle plus complexes et d'excellents éclairages dynamiques !!
 
Je n'ose pas imaginer ce que ça doit donner sur un PC standard, on est probablement forcé de jouer en 640 x 480 en limitant les détails et effets au maximum.