Téléchargez l'application
Tom's Hardware sur l'App Store
Toute l'actu informatique de référence sur votre iPhone
Oui Non

Doom 3 - performance tweak pour les cartes ATi

par - source: Présence PC
Est-il vraiment possible d'augmenter les performances du dernier né des FPS de John Carmack, de la société Id Software; je veux bien évidemment parler du jeu
Doom 3
, lors de son utilisation avec une carte graphique ATi ?

De nombreux confrère ont relayé l'information selon laquelle, il serait possible, moyennant l'installation des pilotes ATi Radeon Catalyst 4.9b (une version beta donc), puis la décompression des fichiers ".pk4" présents dans le répertoire du jeu, et enfin la modification du fragment program "interaction.vfp", permettraient d'atteindre une augmentation des performances du jeu de l'ordre de 40 % !!!

40% ? !!! On est en droit de se demander si ce ratio peut véritablement être atteint. C'est d'ailleurs ce qu'a fort bien fait notre partenaire VTR-Hardware qui a publié un mini article intitulé Que gagne t’on avec les optimisations Doom 3 ? Les conclusions sont sans appel, bien qu'elles ne soient pas vaines, ces optimisations ne sont pas à la hauteur du chiffre annoncé...

Il était une fois un programmeur de talent, répondant au doux nickname de "Humus". Talentueux et persévérant, Humus a su convaincre la communauté OpenGL, puis le fabricant ATi qui devint alors son employeur, et enfin le grand public puisque nous vous avions ses démonstrations technologiques pour processeurs ATi X800 qui réussisent le tour de force d'émuler sur n'importe quel chipset graphique capable de compiler les pixels shaders 2.0, la fonctionnalité de
Dynamic Branching
introduite par NVIDIA lors de la présentation de la technologie Pixel Shader 3.0; bref tout un programme ...

Humus donc, une fois le jeu Doom 3 en mains, s'est intéressé aux éventuels problèmes que pouvaient rencontrer le jeu avec les cartes ATi, ceci d'une manière non officielle puisqu'il n'est pas la personne chez ATi chargée des relations avec Id Software. Selon lui, l'écart de performances constaté s'explique par la façon dont est écrit le pixel shader "interaction.vfp", utilisé lors du rendu du jeu. Il a donc modifié les instructions de ce pixel shader pour constater une amélioration des performances de l'ordre de 40%. C'est sur le forum de notre confrère Beyond3D que Humus a révélé ses trouvailles et c'est de là que la nouvelle s'est ensuite répandue comme une trainée de poudre.

Comment le simple fait de modifier un fichier de configuration du jeu peut-il donc avoir un tel impact sur sa vitesse ? Grosso modo, ce pixel shader modélise l'équation de lumière utilisé pour afficher les divers éléments du jeu : les décors, les armes, les ennemis. Un modèle de lumière (BRDF - Bidirectional Reflectance Distribution Function), comporte dans la plupart des modélisations, 3 composantes principales :
  • la composante ambiante : qui représente une source lumineuse présente partout et qui éclaire de manière uniforme dans toutes les directions (la lumière du soleil)
  • la composante de réflexion diffuse : qui représente la quantité de lumière réfléchie par une source ponctuelle uniforme
  • la composante de réflexion spéculaire : qui correspond à la "brillance" des objets, à leur propriété de "mirroir"; sans elle les objets seraient tous mates
Humus s'est en fait aperçu que dans Doom 3, les différentes valeurs des différentes composantes de l'équation de lumière étaient lues dans des textures. Ce sont ces accès à ces textures qui posent particulièrement de problèmes aux cartes ATi. La composante spéculaire pose tout particulièrement problème puisque ses valeurs varient énormément sur la surface d'un objet (regardez un objet métallique ou brillant, son l'aspect "réfléchissant" varie beaucoup), variations qui provoquent des accès à la texture non linéaires, ce qui met à mal le cache de texture.

Les valeurs de la composante diffuse d'une 'équation de lumière sont en général calculées par l'outil qui sert à générer les niveaux, en faisant appel à des notions complexes et coûteuses en temps de calcul telles que la radiosité. En revanche, on peut qualifier la composante spéculaire comme une valeur "relativement simple à calculer", et si les cartes ATi ont plus de mal avec les accès aux textures que les cartes NVIDIA, elles sont en revanche tout à fait capables de véritablement calculer la valeur de la composante spéculaire plutôt que de lire une valeur précalculée dans une texture. C'est dans cette optique qu' Humus suggère de modifier l'instruction "TEX R1, specular, texture[6], 2D;" du pixel shader "interaction.vfp" en "POW R1, specular.x, specExp.x;".

Les grandes lignes du performance tweak de Doom 3 sont ainsi tracées : il s'agit de remplacer pour la composante spéculaire de l'equation de lumière, un accès à une texture par une instruction mathématique. Principe qui s'avèrera également applicable à d'autres instructions du pixel shader.

Entre la première version du performance tweak, celle qui a circulé sur tous les sites d'actualités mais qui pourtant modifiait considérablement le rendu du jeu, et la version la plus aboutie, Humus a eu l'opportunité de discuter avec John Carmack de la façon dont la composante spéculaire était modélisée, ceci afin de remplacer l'accès à la texture par des calculs permettant de reproduire au mieux les mêmes valeurs que le pixel shader non modifié.

Au final, on obtient grâce à son travail, un patch permettant d'améilorer les performances du jeu sans pour autant en dégrader la qualité d'image. Concernant le ratio de 40%, Humus reconnait que ses premières mesures étaient érronées et que le gain se situerait plutôt aux alentours de 20%, ce qui reste non négligeable.

Pour avoir la chance de jouer à Doom 3, certains sont prets à sacrifier 2 Go de leur disque dur pour décompresser les fichiers ".pk4" du jeu, à titiller les limites d'overclocking de leur carte graphique, à passer des nuits blanches à optimiser les sources des pixels shaders pour les cartes ATi, ou encore à réinstaller un système Windows 98.

Alors en ce début de week-end, si vraiment le jeu en vaut la chandelle, mettez toutes les chances de votre côté, et si vous faisiez tout celà à la fois ?
Partager:
43
Commentaires
X
Valider

Commentaires
Ajouter un commentaire
vraiages 14/08/2004 08:42
Masquer
-0+

Il ne fonctionne plus le lien de performance tweak !!!

Ouinnnnnnnnnnn je veux 20 % de plussssssssssssss !!!

Raoulbob 14/08/2004 08:53
Masquer
-0+
vraiages 14/08/2004 09:15
Masquer
-0+

Marci raoulbob !!!!!!!!!!!!!!!

BCH1CL 14/08/2004 09:28
Masquer
-0+

En gros carmack aurait volontairement mal optiomiser son jeu pour ATI? :D

Ralph- 14/08/2004 09:50
Masquer
-0+

Y'a pas mal d'artefacs avec le tweak.. Ca fait une semaine qu'il en debattent sur Beyond3D :D

Ralph- 14/08/2004 10:27
Masquer
-0+

Au passage, la timedemo demo1 ne vaut *RIEN* en terme de benchmark.. Avec mon P4 2.53Ghz/1Go PC2100/GF4 Ti4400 j'ai 24fps (avec plein de saccades...), la machine juste à coté (P4 3Ghz HTT, 1Go PC3200 Dual channel, ATI 9800Pro) fait 25.5 fps alors qu'en jeu, sur ma machine c'est pas super rapide (25/30) fps, moche (textures vraiment pourraves..) et sur l'autre machine, c'est plus rapide, beau, jouable et les fps sont entre 30 et 60..

Super les benchs sur la timedemo.. Faut arreter tout de suite !!!!

albator83 14/08/2004 10:27
Masquer
-0+

tout ça pour un jeu... :lol:

Rahlala 14/08/2004 10:32
Masquer
-0+

albator83 a écrit :

tout ça pour un jeu... :lol:




Toi aussi tu penses ca :D

Sinon franchement il est fluide et beau... pas besoin d'une grosse config :whistle:

Gregory P 14/08/2004 10:37
Masquer
-0+

Ralph- > le performance tweak original possede des artefacts oui

mais au fur et à mesure des 47 pages de thread, sur beyond3d, tu verras que tout s'ameliore et que le fichier sur le site de humus a été mis à jour régulierement avec la derniere version du shader

squal le requin 14/08/2004 10:43
Masquer
-0+

Vous créer un fichier autoexec.cfg dans le repertoire base.


Et vous mettez ça dedans :

squal le requin a écrit :

seta image_cacheMegs "128"
seta image_usePrecompressedTextures "1"
seta image_useCompression "1"
seta image_downSizeLimit "256"
seta image_ignoreHighQuality "1"
seta image_downSizeBumpLimit "256"
seta image_downSizeSpecularLimit "64"
seta image_downSizeBump "1"
seta image_downSizeSpecular "1"
seta image_downSize "1"
seta image_forceDownSize "1"
seta image_roundDown "1"
seta image_lodbias "0"
seta r_preload "1"
seta r_useCachedDynamicModels "1"
seta r_skipBump "0"
seta r_multiSamples "0"
seta r_shadows "0"
seta r_useOptimizedShadows "1"
seta r_useTurboShadow "1"
seta g_projectilelights "1"
seta g_bloodEffects "1"
seta g_decals "0"
seta g_showBrass "0"
seta g_muzzleFlash "0"
seta g_showPlayerShadow "0"
seta image_anisotropy "1"
seta image_filter "GL_LINEAR_MIPMAP_NEAREST"




Je suis passez de 22 à 40 fps en 1024*768 Hight :jap:


C'est le meilleur compromis entre performances/qualité.
(ça met le jeu en Bilinéaire et ça désactive les ombres et ensuite ça optimise quelques trucs)


sources :
http://translate.google.com/transl [...] uage_tools
http://translate.google.com/transl [...] uage_tools
http://www.3dchips-fr.com/News/act [...] 08093.html

Gregory P 14/08/2004 10:58
Masquer
-0+

lien performance tweak corrigé

squal le requin 14/08/2004 11:04
Masquer
-0+

Gregory P a écrit :

lien performance tweak corrigé


je l'avais mal mis ? , il faudrait faire une news non ?

en fait cette astuce desactive les grosses ombres, met le jeu en bilineaire et optiise des trucs qui font gagner des fps :jap:

squal le requin 14/08/2004 11:05
Masquer
-0+

Gregory P a écrit :

lien performance tweak corrigé


lol je croyez que tu me parlé :sweat:

SaVioLa78 14/08/2004 11:26
Masquer
-0+

il est sorti doom 3 ? [:saviola78]

Gregory P 14/08/2004 11:27
Masquer
-0+

squal le requin > les changements dont tu parles se font au detriment de la qualité de l'image, et puis on ne peut pas dire que tu restes en 1024x798xhigh quality puisque tu desactives certaines fonctionnalités

wombat 14/08/2004 11:28
Masquer
-0+

squal le requin a écrit :

lol je croyez que tu me parlé :sweat:




"croivez" que tu me parlé :whistle:

squal le requin 14/08/2004 11:33
Masquer
-0+

Gregory P a écrit :

squal le requin > les changements dont tu parles se font au detriment de la qualité de l'image, et puis on ne peut pas dire que tu restes en 1024x798xhigh quality puisque tu desactives certaines fonctionnalités


regarde tu verras bien quasiment aucune différence en qualité :jap:

dju 14/08/2004 11:34
Masquer
-0+

SaVioLa78 a écrit :

il est sorti doom 3 ? [:saviola78]




ouais hier [:dawa]

gg53 14/08/2004 12:08
Masquer
-0+

J'ai pas lu (et pas compris) toute la news mais c'est impressionant...
Même au niveau arnack-quarmack-toutlesmotsenack et de sa programmation... [:raziel-92]

mopoulpo 14/08/2004 12:12
Masquer
-0+

Au sujet de timedemo demo1 - la 1ère fois qu'elle est lancée ça saccade pas mal (accès disque). En la relançant une 2ème fois dans la foulé, peu d'accès disque, donc meilleur résultat.
Désactiver les ombres ? Je trouve que c'est un peu gaché (autant jouer à une résolution plus faible, rendu High, FA à 0). Idem pour le gamma réglé à 2.2, ça éclaire tout, mais l'effet de surprise n'y est plus (même si jouer et swaper la lampe torche :\)

S3phi 14/08/2004 12:58
Masquer
-0+

Je trouve ca dommage que pour avoir les meilleures performance possible sur un jeux il faut autant le bidouiller .

Tout ca pour valoriser ATI et leurs cartes ...

squal le requin 14/08/2004 13:00
Masquer
-0+

mon truc marche pour toute les cartes :whistle:

dju 14/08/2004 13:04
Masquer
-0+

S3phi a écrit :

Je trouve ca dommage que pour avoir les meilleures performance possible sur un jeux il faut autant le bidouiller .

Tout ca pour valoriser ATI et leurs cartes ...




Bah à la base les cartes ATi sont bizarrement moins rapides que les nvidia ... donc on se débrouille comme on peut :o

GI2K 14/08/2004 13:08
Masquer
-0+

S3phi> Moi aussi je trouve dommage qu'il faut bidouiller pour avoir des performances sur les ATI comparables a celles qu'on a sur les Nvidia...

Sinon ca montre bien que Carmack n'a pas bien optimise son jeu pour les ATI, quand il le a bien optimiser pour les Nvidia...

PumaKA 14/08/2004 13:08
Masquer
-0+

squal le requin a écrit :

mon truc marche pour toute les cartes :whistle:




Oui oui ca marche mais ca deviens laid d'une force aussi :D
En plus pour gagner 10 fps :/

Le tweak j'ai testé aussi et c'est pas transcendant non plus :/

NiahBoumPof is back 14/08/2004 13:23
Masquer
-0+

albator83 a écrit :

tout ça pour un jeu... :lol:



tout ca pour un moteur tu veux dire [:maitre capello]
le moteur de doom3 a de fortes chances de se retrouver dans des tas d'autres jeux.
Par ailleurs ca permettera peut etre enfin a ati de ratrapper son retard en opengl

NiahBoumPof is back 14/08/2004 13:24
Masquer
-0+

Gregory P a écrit :

squal le requin > les changements dont tu parles se font au detriment de la qualité de l'image, et puis on ne peut pas dire que tu restes en 1024x798xhigh quality puisque tu desactives certaines fonctionnalités



[:plusun] c'est pas etonnant que ca rame moins si il repasse en qualité medium

NiahBoumPof is back 14/08/2004 13:25
Masquer
-0+

dju a écrit :

ouais hier [:dawa]



c'est marrant toutes ces personnes qui y joue depuis 1semaine et demi deja [:dawa]

yoyo3d 14/08/2004 13:26
Masquer
-0+

Ralph- a écrit :

Y'a pas mal d'artefacs avec le tweak.. Ca fait une semaine qu'il en debattent sur Beyond3D :D




moi j'ai pas d'artefacts.
par contre le jeu en lui même est une vraie déception.

Babar de Saint Cyr 14/08/2004 13:35
Masquer
-0+


Citation :c'est marrant toutes ces personnes qui y joue depuis 1semaine et demi deja [:dawa]

Et en plus sous Win98 :na:

Citation :Télécharger les drivers Spirit Driver 1.4.1b contenant les Catalyst 4.9b

Sont-ils compatibles Win98 ?

Citation :Overclocker son ATi avec ATI Tool

Ben lui il n'y est pas :cry:

Publicité

Les offres du moment

Newsletters


OK