Tuto n°01 : Réglages graphiques des jeux vidéos

v18 -

Introduction

Salut, c’est 3 potes !

Dans ce tuto, nous allons aborder les réglages graphiques dans les jeux-vidéos, et toutes les appellations obscures qui y sont liées. Le 1080p@60fps sera un jeu d’enfant. Genre Adibou. Ou Doom. Ouais, on n’a pas tous eu la même enfance.

Préambule

Ici seront détaillées les options graphiques les plus courantes rencontrées dans les jeux-vidéos. Une idée de l’impact de chaque option graphique sur le CPU, le GPU et la VRAM sera donnée à titre indicatif et approximatif. Tu pourras ainsi savoir, en fonction des performances de ton bouzin, quelles options tu peux/dois modifier.

En effet, chaque option ne sollicite pas de la même manière le processeur ou la carte graphique. Le premier est principalement dédié à la physique et doit donc gérer, entre autres, les trajectoires, les collisions et la position de tous les objets à l’écran. La seconde a plutôt pour rôle de s’occuper du rendu esthétique de la scène et jouera donc avec les textures, brouillards, ombres, lumières et autres. On comprend ainsi pourquoi les cartes graphiques sont plus sollicitées quand on demande des qualités élevées et des hautes définitions, alors que c’est plutôt le CPU qui prend cher quand le nombre de FPS est élevé.

Il existe énormément d’options plus spécifiques à chaque jeu (brouillards, nuage, qualité de l’eau, qualité des cheveux, plaque dentaire, …) et ça serait extrêmement fastidieux de toutes les lister, je te laisse les tester individuellement. Je suis pas payé assez cher pour ça.

À la fin, quelques benchmarks te donneront des indications sur l’effet des niveaux de qualité et des différentes options sur les FPS globales.

Évidemment, quelques images agrémenteront notre voyage.

Glossaire et abréviations

Mode d'affichage

Les jeux proposent parfois trois modes d’affichage : Plein écran, Fenêtré, ou Fenêtré sans bordure. Comment choisir ? Plouf plouf, ce sera toi...

En résumé, pour du jeu pur, privilégie le plein écran.

API graphique

Nope, rien à voir avec les pommes. C’est plutôt une Interface de Programmation Applicative, ou Application Programming Interface en anglais. Ouaip, je sais, c’est pas plus clair.
En gros c’est une couche logicielle qui fait l’interface entre le moteur graphique du jeu et le pilote de la carte graphique. Les API proposent des fonctions prêtes à l’emploi pour faciliter la vie des développeurs. On peut schématiser la chaine de commande ainsi :

Jeu → Moteur graphique → API → Pilote → GPU

Du côté des API classiques on peut citer :

Aujourd’hui les développeurs se tournent de plus en plus vers des API dites de « bas niveau ». Elles permettent de faire passer des instructions directement du CPU au GPU sans passer par les pilotes, en plus de mieux répartir le boulot entre les différents cœurs du CPU. Tout ça permet d'optimiser la gestion des CPU et GPU qui sont alors un peu plus dispos pour faire péter les FPS.

Les deux API bas niveau du moment sont :

Bref, tout bénef. Du moins, en théorie. Cowcotland a en effet mis en évidence quelques problèmes de « sur-sollicitation mémoire » des cartes entrée de gamme (RX 5600 XT en l’occurrence), ce qui entrainait une baisse des FPS en passant de Direct 3D 11 à Vulkan : https://www.cowcotland.com/articles/2993/comparatif-de-performances-api-vulkan-et-directx-11-dans-le-jeu-ghost-recon-breakpoint.html

Si les options du jeu te laissent le choix, je te conseille donc de tester ce que ça donne avec une API de bas niveau. Le gain peut être non-négligeable.

Synchronisation verticale

Voilà un vaste sujet, qui englobe le V-sync, le FastSync, et le Variable Refresh Rate. À la limite ça mériterait un tuto à part entière. Et Bim ! C’est le tuto n°02. Z’avez vu comment on se fout pas de vot’ gueule ?
Pour les plus feignants impatients, voilà les grandes lignes :

Aucune synchronisation verticale

La carte graphique et l’écran travaillent chacun de leur côté. L’input lag est minimal, mais cela implique la présence de tearing et de stuttering pas forcément très agréable visuellement.

V-Sync

La carte graphique se synchronise avec l’écran. Le tearing est éliminé mais au prix d’un input lag important, et d’un risque plus élevé de stuttering.

Triple buffering

Utilisé conjointement au V-Sync, le triple buffering (ou tampon triple en français) réduit le stuttering mais augmente d’avantage l’input lag.

FastSync

Le FastSync est une amélioration du V-Sync qui en réduit l’input lag. Il n’est supporté que par les cartes graphiques NVIDIA à partir de la GTX 960.

Variable Refresh Rate (G-sync/Freesync)

Le Variable Refresh Rate (VRR) est la meilleure solution de synchronisation à ce jour. C’est l’écran qui se synchronise avec la carte graphique, ce qui élimine tearing et stuttering, en plus d’assurer un input lag minimal. Contrairement aux technologies précédentes, le VRR est une solution matérielle qui requiert un écran et une carte graphique compatibles.

Limite de FPS

Certains jeux permettent de limiter le nombre de FPS. Mais pourtant, plus il y a de FPS et mieux c'est, non ? Eh ben pas forcément.

Ce ne sont que quelques exemples, à toi de voir si tu peux y trouver un avantage, ou si tu préfères faire péter le compteur de FPS.

Anti-aliasing (AA) (Anti-crénelage)

L’aliasing, ou « crénelage » en bon François, est une conséquence de la nature même des pixels : ils sont carrés. Donc pour dessiner des courbes ou des lignes inclinées, spas pratique. Un peu comme des briques : demande à un maçon de te faire faire un mur parfaitement arrondi uniquement avec des briques, et tu risques de te retrouver avec une truelle entre les incisives.

Pour éviter l’aliasing les logiciels passent par des dégradés artificiels. Exemple sur cette magnifique représentation :

Anti-aliasing zoom
Crédit image : Wikipédia

À gauche, un « A » dessiné avec des pixels carrés. C’est moche, mais le PC fait ce qu’il peut avec ce qu’il a. À droite, le même « A » ayant subi un traitement d’anti-aliasing. Le but est de créer des dégradés pour que notre œil perçoive des contours doux. Alors forcément là non, j’ai zoomé pour l’exemple. Mais avec une taille « normale » ça passe crème mamène.

Anti-aliasing normal

Et c’est ainsi que toutes les formes géométriques des jeux-vidéos apparaissent lisses. C’est beau les maths.

Il existe 2 grandes catégories d'anti-aliasing :

SSAA (Super Sampling Anti-Aliasing) ou FSAA (Full Screen Anti-Aliasing)

Il s’agit d’un anti-aliasing en calcul. C’est le plus simple, le plus vieux, le plus bourrin, mais le plus efficace.
Il consiste à construire une image dont la définition est supérieure à celle voulue, puis à la réduire. Par exemple construire une image UHD (3840*2160) pour ensuite l’adapter à un affichage en FHD (1920*1080). On parle de downscaling. Même si la grande image est aliasée, ces défauts sont estompés en en réduisant la taille. La petite image apparait donc lisse.
Le rendu est très propre, mais c’est un processus très gourmand. Mais propre. Mais gourmand.

Dans les options des jeux, cet AA a tendance à être remplacé par une option "Échelle de rendu". Dans ce cas, une échelle à 200% revient à un SSAA x2.

MSAA (Multi-Sampling Anti-Aliasing)

Il s’agit d’un anti-aliasing en calcul. On garde le même principe que le SSAA mais en ne se concentrant que sur les arêtes des objets.
Cet AA est donc moins gourmand, mais le rendu est moins propre car les textures des faces des objets ne sont pas traitées.

CSAA/EQAA (Coverage Sampling Anti-Aliasing / Enhanced Quality Anti-Aliasing)

Il s’agit d’anti-aliasings en calcul, développés respectivement par NVIDIA et AMD. Leur fonctionnement m’est encore un peu mystérieux, mais en gros on obtient la même qualité que le MSAA pour un coût en calcul plus faible. Un CSAA 4x donnera une image de qualité équivalente à un MSAA 8x.

FXAA/MLAA (Fast Approximate Anti-Aliasing / MorphoLogical Anti-Aliasing)

Il s’agit d’anti-aliasings en post-process, développés respectivement par NVIDIA et AMD. Ce sont des AA assez grossiers qui se contentent de flouter les bords des objets.
Ils sont très peu gourmands, mais le résultat peut paraitre cheap : bords trop floutés, textures fades, … Ces filtres doivent rester ta roue de secours, rien de plus.

T(X)AA (Temporal Anti-Aliasing)

Il s’agit d’un anti-aliasing en post-process. Il se base sur le MSAA mais en y ajoutant d’autres filtres, et permet principalement de réduire l’aliasing de mouvement. C’est l’AA qui est utilisé dans les calculs du DLSS.
Il peut néanmoins être perçu comme légèrement vomitif s’il est mal intégré.

MFAA (Multi-Frame sampled AA)

Il s’agit d’un anti-aliasing en post-process. Il se base sur le MSAA mais en ajoutant une comparaison entre l’image actuelle et la précédente. Avec 2 images, un MFAA 2x aura donc la même qualité qu’un MSAA 4x pour un coût en calcul équivalent au MSAA 2x. C’est un bon compromis pour les jeux.

SMAA (enhanced Subpixel Morphological Anti-Aliasing)

Il s’agit d’un anti-aliasing en post-process. Il combine le MLAA avec le SSAA ou le MSAA. Le résultat obtenu est plutôt propre, proche du MSAA, pour un coût de calcul assez modeste. C’est un très bon compromis si la CG, les pilotes et le jeu le supportent.

DLSS (Deep Learning Super Sampling)

Il s’agit à la fois d’un anti-aliasing en calcul et en post-process. Le coquin. C’est une méthode développée par NVIDIA et apparue avec les RTX 2xxx.
En gros, le DLSS c’est le contraire du SSAA. La carte graphique construit une image dont la définition est inférieure à celle voulue, puis elle l’augmente. Par exemple elle peut construire une image FHD (1920*1080) pour ensuite l’adapter à un affichage en WQHD (2560*1440). On parle d’upscaling. Juste avant l’upscaling, la petite image est traitée par un TAA.

Normalement le résultat de ce type d’opération est assez dégueu. Cependant la carte graphique se base sur un modèle d’intelligence artificielle pour que l’image finale ait une qualité semblable à une image construite de manière classique. Les calculs d’apprentissage de l’IA (Deep Learning) sont faits par des supercalculateurs de NVIDIA. Les modèles intégrés dans nos CG sont simplement mis à jour via les pilotes graphiques habituels. Ces modèles nécessitent des unités de calculs particulières, des Tensor Cores, qui ne sont présents que sur les cartes RTX.

Cet AA n’est pas supporté par tous les jeux. Mais lorsqu’il l’est, le résultat est de bonne qualité et la CG parvient à afficher des FPS supérieures à un jeu sans aucun AA. Eh ouais. Sympa, hein ?

Résumé

Comparaisons graphiques

Quelques images tirées de Ghost Recon Wildlands pour illustrer tout ça (Crédits images : Ubisoft).

AA désactivé
AA désactivé
FXAA
FXAA
SMAA
SMAA
TAA
TAA

Ombres

Le calcul des ombres détermine l’intensité lumineuse des pixels à l’écran en fonction de la position des objets et des éventuels obstacles par rapport aux sources de lumière. Ce réglage est donc plus ou moins gourmand en fonction de la qualité des ombres recherchée et du niveau de détail des obstacles.

Comparaisons graphiques

Quelques images tirées de Ghost Recon Wildlands pour illustrer tout ça (Crédits images : Ubisoft).

Ombres standard
Ombres standard
Ombres élevées
Ombres élevées
Ombres ultra
Ombres ultra

Occlusion ambiante (Ambient Occlusion - AO)

Le principe de l’occlusion ambiante est de simuler des ombres autour des petits objets du décor, pour que l’image gagne en profondeur. C’est beaucoup moins gourmand que de calculer des « vraies » ombres pour chaque brique, caillou, fleur, …

SSAO (Screen Space Ambient Occlusion)

Ancienne technologie d’occlusion ambiante, pas forcément très fidèle.

HBAO+ (Horizon Based Ambient Occlusion) / HDAO (High Definition Ambient Occlusion)

Améliorations du SSAO développées par NVIDIA et AMD respectivement.

Comparaisons graphiques

Quelques images tirées de Ghost Recon Wildlands pour illustrer tout ça (Crédits images : Ubisoft).

AO désactivé
AO désactivé
SSBC
SSBC (SSAO sauce Ubi)
HBAO+
HBAO+

Ray-Tracing en temps réel

Le Ray-Tracing en temps réel est une approche beaucoup plus fidèle de la gestion de la lumière, car plus naturelle. Chaque source lumineuse émet des « rayons » qui interagissent avec chaque objet, créant ombres, reflets, et autres effets de transparence. L’objectif est de rentre inutile les autres modes de calcul des ombres, reflets, occlusion ambiante… ce n’est pas tout à fait le cas mais on s’en rapproche.
C’est une technologie qui existe depuis un moment, mais qui était beaucoup trop gourmande en performance pour qu’elle soit utilisé dans les jeux-vidéo. Or, les nouvelles générations de cartes graphiques haut-de-gamme embarquent maintenant des cœurs dédiés aux calculs de ces rayons. Et hop, c’est la fête.

Mais ça reste quand même très gourmand. Du genre à diviser tes FPS par 2. L’idéal est donc de le coupler au DLSS pour garder une bonne fluidité.

Comparaisons graphiques

Je n’ai pas de CG gérant le Ray-tracing donc j’ai piqué une image chez adrenaline.uol.com.br. C’est Battlefield V. Je crois.

R-T désactivé
R-T activé
R-T activé
R-T désactivé

Qualité des textures

La modification de la qualité des textures ne nécessite pas de calculs particuliers, à part l’affichage de textures sur des surfaces. L’impact sur le GPU est donc assez faible et les FPS sont peu impactées.
Cependant, qui dit textures de plus haute qualité dit plus de stockage dans la VRAM. Fais donc bien attention à ne pas la surcharger pour ne pas te retrouver avec une CG asthmatique.

Filtrage des textures

De belles textures c’est bien, mais si elles sont loin ça sert à rien. Surtout qu’elles seront tout aliasées. L’idée du filtrage des textures est donc d’utiliser des textures haute qualité pour les objets proches, et des textures basse qualité pour les objets lointain.
Tu l’auras deviné, le point critique c’est la transition haute qualité – basse qualité. Plusieurs filtres existent pour la gérer.

Bilinéaire

Le filtre bilinéaire n’est pas très subtil et a un fonctionnement binaire : soit c’est haute qualité, soit c’est basse qualité. Et du coup on peut voir une démarcation moche sur les murs, les routes, …

Trilinéaire

Le filtre trilinéaire se base sur le bilinéaire en interpolant des niveaux de qualité intermédiaires. C’est toujours moche, mais un peu moins.

Anisotrope

Le filtre anisotrope fonctionne de la même manière que le trilinéaire, mais en prenant en compte l’angle de vue du joueur dans la méthode de calcul de l’interpolation. La transition entre les textures haute qualité et basse qualité est beaucoup plus douce, le rendu est plus naturel.
Ce filtre est très peu gourmand et apporte de vraies améliorations visuelles, tu peux l’activer à fond sans trop te poser de questions.

Comparaisons graphiques

Quelques images tirées de Ghost Recon Wildlands pour illustrer tout ça (Crédits images : Ubisoft).

Anisotrope désactivé
Anisotrope désactivé
Anisotrope x4
Anisotrope x4
Anisotrope x16
Anisotrope x16

Image sharpening

Si tu le veux vraiment, on peut le traduire par « affinage de l’image » mais ça me fait penser à un fromage alors je vais rester en anglais.

L’image sharpening accentue les contours pour les rendre plus nets, et diminue ainsi le flou généré par les anti-aliasings. Le résultat est plutôt sympa et le coût en FPS très modeste (entre 1 et 5% en général), donc je ne peux que te conseiller de le tester.

C’est une technologie qui est supportée par les cartes NVIDIA et AMD les plus récentes, et qui doit être activée dans leurs panneaux de contrôles respectifs.
Pour NVIDIA, un réglage 0.50 et 0.17 semble être un bon compromis. Mais comme toujours, à toi de régler en fonction de tes jeux et de tes goûts.

Variable rate shading (VRS)

Contrairement aux précédentes options graphiques, le VRS n’a pas vocation à rendre l’image plus belle, mais plutôt à en simplifier le calcul pour soulager la carte graphique.
Son principe de fonctionnement est simple : diminuer la résolution du rendu de certaines zones de l’image :

Visuellement, le joueur n’y voit que du feu mais ce petit trick peut faire gagner quelques FPS (de 5 à 15%) en plus de resserrer l’écart entre les FPS min, max et moyennes.

Si le jeu le supporte je pense que ça vaut le coup d’activer cette option.

Bonus : panneaux de contrôle

Les pilotes de AMD et NVIDIA intègrent un panneau de contrôle, proposant de nombreuses options pouvant outre-passer les réglages graphiques des jeux. Ça peut être utile pour améliorer les options intégrées au jeu (ex : meilleur AA) ou pour ajouter une option qui n’y est pas (ex : occlusion ambiante). Cependant fais attention avec ces panneaux de contrôles, les réglages intégrées au jeu sont souvent plus optimisés et tu risques de pas mal plomber tes FPS si tu règles tout ça à la zob. Compare donc bien les impacts sur la qualité graphique et sur les FPS de chaque réglage que tu fais.

Benchmarks

Ok la théorie c’est bien mais nous on veut des FPS. J’ai un peu joué avec l’outil de benchmark intégré à Ghost Recon Wildlands en faisant varier chaque paramètre graphique, mais ce n’était pas très concluant. En attendant un deuxième essai, je te laisse avec les valeurs pour les pré-réglages par défaut.
(Moyenne sur 3 runs ; AMD Ryzen 5 1600 ; 16 Go DDR4 3200 MHz ; GTX 1080)

Benchmark VRAM
Benchmark VRAM

On voit que le mode Ultra pompe un max de FPS, avec parfois très peu d’améliorations esthétiques par rapport au mode Très Élevé.
Si on souhaite un jeu avec de beaux graphismes, il est parfois plus sensé se rester en Très Élevé et de mettre en Ultra simplement quelques options stratégiques, que tu connais maintenant parfaitement (ex : Filtrage et qualité des textures, AO).

Si vraiment tu es impatient de voir l’impact de chaque option individuellement, Game Debate a fait le taf sur Read Dead Redemption 2 :
https://www.game-debate.com/news/27927/red-dead-redemption-2-most-important-graphics-options-every-setting-benchmarked

Benchmark VRAM

On retrouve ce qui a été dit précédemment : Peu d’effet des textures, du filtrage et de l’occlusion ambiante, MSAA gourmand, TAA moins gourmand, FXAA peu gourmand.

Conclusion

Allez, je te laisse régler tout ça et benchmarker tes jeux préférés pour trouver les meilleurs compromis. Dans tous les cas, n’oublie pas de follow, et on te fera de gros bisous virtuels <3

Exosky pour C3POtes

N’oublie pas que c’est grâce à vos dons que nous pouvons continuer à proposer ces tutos de qualité inférieure ainsi qu’un fabuleux site web fait à la main, made in France et garanti sans pub. Soutiens-nous ! → https://streamlabs.com/c3potes/tip

Les avis/remarques/corrections/ajouts sont les bienvenus. Tu peux nous envoyer un p’tit message sur nos pages de réseaux sociaux et on essaiera de te répondre si on n’est pas trop occupés à se faire spawnkill par la team adverse.

Sources

Général : https://www.cowcotland.com/topic29759.html (merci à FouloudGlioziol)
Général : https://www.pcgamer.com/pc-graphics-options-explained/
Impact sur les performances : https://www.quora.com/When-PC-gaming-what-graphic-settings-affect-the-CPU-or-GPU-more (GG à Jacob Lux)
Synchronisation verticale : https://www.canardpc.com/380/v-sync-g-sync-freesync
Input-Lag : https://www.blurbusters.com/gsync/gsync101-input-lag-tests-and-settings/11/
Input-Lag : https://www.hardware.fr/articles/914-3/rappel-v-sync-on-off-triple-buffering.html
Anti-Aliasing : https://www.youtube.com/watch?v=G8oLwbLrxgk
Anti-Aliasing : https://en.wikipedia.org/wiki/Aliasing
SMAA : http://www.iryoku.com/smaa/downloads/SMAA-Enhanced-Subpixel-Morphological-Antialiasing.pdf
DLSS : https://www.tomshardware.fr/articles/test-dlss-upscaling-nvidia-rtx,2-2856.html
Occlusion ambiante : https://www.canardpc.com/383/ssao-hbao
Ray-Tracing : https://www.techpowerup.com/reviews/Performance_Analysis/Battlefield_V_RTX_DXR_Raytracing/4.html
Image sharpening : https://www.techspot.com/review/1903-dlss-vs-freestyle-vs-ris/
VRS : https://www.tomshardware.fr/test-variable-rate-shading-astuce-pour-gagner-en-performances-dans-les-jeux/

Encore plus d’illustrations vidéoludiques

Les illustrations sont (presque toutes) tirées de Ghost Recon Wildlands.

Anti-aliasing

Pas d'AA
Pas d’AA (Crédit image : Ubisoft)
FXAA
FXAA (Crédit image : Ubisoft)
SMAA
SMAA (Crédit image : Ubisoft)
TAA
TAA (Crédit image : Ubisoft)
FXAA + SMAA
FXAA + SMAA (Crédit image : Ubisoft)

Occlusion ambiante

Pas d'AO
Pas d’AO (Crédit image : Ubisoft)
SSBC
SSBC (SSAO pimpé par Ubi) (Crédit image : Ubisoft)
HBAO+
HBAO+ (Crédit image : Ubisoft)

Ombres

Pas d'ombres
Pas d'ombres (Crédit image : Ubisoft)
Ombres standard
Ombres standard (Crédit image : Ubisoft)
Ombres élevées
Ombres élevées (Crédit image : Ubisoft)
Ombres très élevées
Ombres très élevées (Crédit image : Ubisoft)
Ombres ultra
Ombres ultra (Crédit image : Ubisoft)

Ray-Tracing

Ray Tracing
Ray Tracing OFF/ON (Crédit image : adrenaline.uol.com.br)

Filtrage des textures

Pas de filtrage des textures
Pas de filtrage des textures (Crédit image : Ubisoft)
Filtre anisotrope X2
Filtre Anisotrope x2 (Crédit image : Ubisoft)
Filtre anisotrope X4
Filtre Anisotrope x4 (Crédit image : Ubisoft)
Filtre anisotrope X8
Filtre Anisotrope x8 (Crédit image : Ubisoft)
Filtre anisotrope X16
Filtre Anisotrope x16 (Crédit image : Ubisoft)